CS 4337 Midterm 1 - Concise Review (Ch. 1-4)

0.0(0)
Studied by 0 people
call kaiCall Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/155

encourage image

There's no tags or description

Looks like no tags are added yet.

Last updated 4:52 AM on 10/12/26
Name
Mastery
Learn
Test
Matching
Spaced
Call with Kai
Chat

No analytics yet

Send a link to your students to track their progress

156 Terms

1
New cards
Language categories
Natural human, constructed human, programming.
2
New cards
Orthogonality
Few constructs combine consistently with few exceptions.
3
New cards
John Backus
Computer scientist behind Fortran and BNF.
4
New cards
Noam Chomsky
Linguist associated with formal and context-free grammars.
5
New cards
Scientific applications
Fortran; floating-point calculations and arrays.
6
New cards
Business applications
COBOL; reports, decimals, and character data.
7
New cards
AI languages
Lisp (lists) and Prolog (logic).
8
New cards
Systems programming
Efficient, continuously used software; commonly C.
9
New cards
Web software
Markup, scripting, and general-purpose languages.
10
New cards
Embedded system
Computer dedicated to one purpose within a device.
11
New cards
Embedded-system examples
Refrigerator and Fitbit.
12
New cards
Embedded languages and architectures
Java, Python, C; MIPS, ARM, x86.
13
New cards
3D graphics languages in the notes
Java and C.
14
New cards
Game programming
Often C++ or C#; input-driven graphics.
15
New cards
Language evaluation criteria
Readability, writability, reliability, cost.
16
New cards
Readability
Ease of reading and understanding code.
17
New cards
Readability benefits
Easier maintenance.
18
New cards
Multiplicity
Multiple ways to express one operation.
19
New cards
Multiplicity's readability effect
More alternatives can reduce readability.
20
New cards
Special words
Keywords whose design affects readability.
21
New cards
Writability
Ease of expressing programs in a language.
22
New cards
Writability factors
Simplicity, orthogonality, abstraction.
23
New cards
Abstraction
Hiding details behind a simpler interface.
24
New cards
Reliability
Conformance to specifications.
25
New cards
Type checking
Detecting type errors before or during execution.
26
New cards
Exception handling
Catching and responding to runtime errors.
27
New cards
Aliasing
Multiple names or references for one storage location.
28
New cards
Aliasing risk
Changes through one name affect the others.
29
New cards
Strong typing (course definition)
Detects all type errors at compile time or runtime.
30
New cards
Dynamic typing
Type checking occurs at runtime.
31
New cards
Language cost
Total expense of development, execution, and maintenance.
32
New cards
Von Neumann architecture
Instructions and data share memory.
33
New cards
Von Neumann bottleneck
CPU-memory transfer limits execution speed.
34
New cards
Imperative programming
Variables, assignments, and iteration change state.
35
New cards
Imperative language examples
C, C++, Java, Python, JavaScript.
36
New cards
Functional programming
Computing by applying functions; minimizes mutable state.
37
New cards
First-class functions
Functions can be stored, passed, and returned.
38
New cards
Functional programming's foundation
Lambda calculus.
39
New cards
Functional language examples
Lisp, Haskell, Racket, Clojure, ML, F#.
40
New cards
Logic programming
Computation from facts and rules.
41
New cards
Logic language examples
Prolog, ASP, Datalog.
42
New cards
Rule order in logic programming
The implementation selects rule-application order.
43
New cards
Declarative paradigms
Functional and logic programming.
44
New cards
Compilation
Translating source code into machine code.
45
New cards
Pure interpretation
Executing source directly without prior compilation.
46
New cards
Hybrid implementation
Translating to intermediate code, then executing it.
47
New cards
Interpreter
Executes high-level instructions at runtime.
48
New cards
High-level language advantage
Easier program development.
49
New cards
Machine language
CPU-executable instructions; architecture-specific.
50
New cards
Assembly language
Low-level symbolic machine instructions.
51
New cards
Early hardware programming
Machine code; poor readability and writability.
52
New cards
Fortran
First widely used high-level language; scientific computing.
53
New cards
Fortran I target
IBM 704; floating point and index registers.
54
New cards
Fortran II addition
Independent compilation.
55
New cards
Fortran IV addition
Explicit type declarations.
56
New cards
Fortran 77 features
IF-THEN-ELSE and improved loop support.
57
New cards
Fortran 90 features
Modules, arrays, pointers, recursion.
58
New cards
Lisp
Functional pioneer for AI and symbolic list processing.
59
New cards
Lisp memory-management innovation
Garbage collection.
60
New cards
Scheme
Small Lisp dialect supporting functional and procedural styles.
61
New cards
Common Lisp
Unified Lisp dialects for larger applications.
62
New cards
ALGOL 60
Machine-independent foundation for later imperative languages.
63
New cards
ALGOL 60 syntax notation
BNF.
64
New cards
ALGOL's historical contribution
Structured programming; influenced Pascal and C.
65
New cards
COBOL
Business-oriented language with decimal data.
66
New cards
BASIC
Beginner-oriented language designed for timesharing.
67
New cards
PL/I
Combined scientific and business programming.
68
New cards
APL
Dynamically typed, array-oriented language.
69
New cards
SNOBOL
Dynamic string-processing language from Bell Labs.
70
New cards
Simula 67
Introduced classes, objects, inheritance, and coroutines.
71
New cards
Pascal
Designed to teach structured programming.
72
New cards
C's original purpose
UNIX systems programming at Bell Labs.
73
New cards
Prolog
Logic programming based on formal logic.
74
New cards
Ada
DoD language for embedded and real-time systems.
75
New cards
Ada features
Packages and exception handling.
76
New cards
Smalltalk
Pioneering pure object-oriented language.
77
New cards
C++
Combines imperative and object-oriented programming.
78
New cards
C++ designer
Bjarne Stroustrup at Bell Labs.
79
New cards
Java
Portable, C++-influenced object-oriented language.
80
New cards
Java memory management
Garbage collection; no explicit pointer arithmetic.
81
New cards
Scripting language uses
Automation and web programming.
82
New cards
Scripting language examples
Perl, JavaScript, PHP, Python, Ruby.
83
New cards
HTML
Defines web-page structure.
84
New cards
JavaScript
Adds web-page interactivity.
85
New cards
XML
Structures and transports data.
86
New cards
Language definition
Syntax plus semantics.
87
New cards
Syntax
Rules governing program form.
88
New cards
Semantics
Meaning of program constructs.
89
New cards
Formal language
Set of sentences over an alphabet.
90
New cards
Sentence
Terminal-only string belonging to a language.
91
New cards
Lexeme
Smallest meaningful syntactic unit, such as an identifier.
92
New cards
Token
Category of lexemes, such as IDENTIFIER.
93
New cards
Terminal
Grammar symbol that cannot be expanded.
94
New cards
Nonterminal
Symbol representing a syntactic category.
95
New cards
Context-free grammar (CFG)
Rules replace one nonterminal with a symbol sequence.
96
New cards
BNF
Backus-Naur Form; notation for context-free grammars.
97
New cards
BNF nonterminal notation
Angle brackets, e.g., <expression>.
98
New cards
Grammar production
Rule mapping a nonterminal to possible replacements.
99
New cards
Start symbol
Nonterminal where derivation begins.
100
New cards
Derivation
Repeated rule applications from the start symbol.