1/31
A set of vocabulary flashcards covering the key concepts, evaluation criteria, and implementation methods of programming languages as presented in Robert W. Sebesta's lecture notes.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai |
|---|
No analytics yet
Send a link to your students to track their progress
Readability
The ease with which programs can be read and understood.
Writability
The ease with which a language can be used to create programs.
Reliability
The conformance of a program to its specifications; i.e., it performs as intended.
Cost
The ultimate total cost of a language, including programmer training, program writing, execution, maintenance, and the consequences of poor reliability.
Orthogonality
A criteria for readability and writability where a relatively small set of primitive constructs can be combined in a relatively small number of ways, and every possible combination is legal.
Abstraction
The ability to define and use complex structures or operations in ways that allow details to be ignored.
Expressivity
A set of relatively convenient ways of specifying operations, including the strength and number of operators and predefined functions.
Type checking
The process of testing for type errors to improve reliability.
Exception handling
The ability of a language to intercept run-time errors and take corrective measures.
Aliasing
The presence of two or more distinct referencing methods for the same memory location.
Portability
The ease with which programs can be moved from one implementation to another.
Generality
The applicability of a programming language to a wide range of applications.
Well-definedness
The completeness and precision of the official definition of a language.
von Neumann architecture
An architecture where data and programs are stored in memory; the memory is separate from the CPU, and instructions and data are piped from memory to the CPU.
Fetch-execute-cycle
The process of initializing the program counter, fetching an instruction, incrementing the counter, decoding the instruction, and executing it.
Imperative languages
Languages whose central features are variables, assignment statements, and iteration, modeled after von Neumann architecture.
Functional languages
Languages in which the main means of making computations is by applying functions to given parameters.
Logic languages
Rule-based languages where rules are specified in no particular order, such as Prolog.
Markup/programming hybrid
Markup languages extended to support programming, such as JSTL or XSLT.
Compilation
An implementation method where high-level program code is translated into machine language for fast execution.
Pure Interpretation
An implementation method where programs are interpreted by an interpreter program without translation, often executing 10 to 100 times slower than compiled programs.
Hybrid Implementation Systems
A compromise between compilers and pure interpreters where a high-level language is translated to an intermediate language to allow easy interpretation.
Lexical analysis
The compilation phase that converts characters in the source program into lexical units.
Syntax analysis
The compilation phase that transforms lexical units into parse trees representing the syntactic structure of the program.
Semantics analysis
The compilation phase that involves generating intermediate code.
Code generation
The compilation phase where machine code is actually generated.
Load module
The combination of the user code and system code in an executable image.
Linking and loading
The process of collecting system program units and linking them to a user program.
von Neumann bottleneck
The primary limiting factor in computer speed caused by the connection speed between a computer's memory and its processor.
Just-in-Time (JIT) Implementation Systems
Systems that initially translate programs to intermediate language and then compile subprograms into machine code only when they are called.
Preprocessor
A system that processes a program immediately before compilation to expand embedded macros like #include and #define.
Programming Environments
A collection of tools used in software development, such as Microsoft Visual Studio .NET or NetBeans.