| Introduction | |||
| Programming Language | Special Purpose Programming Language | Imperative Languages | |
| Declarative Languages | Compilation | Interpretation | |
| Preprocessing | Macro | Library | |
| Intermediate Code | Phase of Compilation | ||
| Lexical and Syntax Analyses | |||
| Scanner | Lexical Analysis | Token | |
| Regular expression | Syntax Analysis | Parser | |
| Scripting/Perl | |||
| Scripting Language | Scalar type | Hash/Dictionary | |
| List | Context | Regular Expression Matching | |
| dynamic scope | |||
| Binding, Scope and Storage Allocation | |||
| Naming | Control Abstraction | Data Abstraction | |
| Binding | Binding Time | Object Lifetime | |
| Static Allocation | Stack-based Allocation | Heap-based Allocation | |
| Internal Fragmentation | External Fragmentation | Overloading | |
| Scope | Static Scope | Nested Scope | |
| Dynamic Scope | Symbol Table | ||
| Functional Programming/ML | |||
| von Neumann Style Language | Functional Language | Currying | |
| Applicative Order | Normal Order | Eager Evaluation | |
| Lazy Evaluation | Strict Function | Nonstrict Function | |
| Derived Type | Polymorphic Type | Higher-Order Function | |
| Type Variable | Pattern Matching | ... | |
| Data Types | |||
| Data Type | Type System | Type Checking | |
| Strongly Typed Language | Statically Typed Language | Weakly Typed Language | |
| Enumeration Type | Subrange Type | Structural Equivalence | |
| Nominal Equivalence | Type Compatibility | Type Conversion | |
| Converting Cast | Non-converting Cast | Type Inference | |
| Record | Variant Record | Unicode | |
| Control Abstraction | |||
| Formal Parameter | Actual Parameter | Subroutine Frame | |
| Activation Record | Pass-by-value | Pass-by-result | |
| Pass-by-value-result | Pass-by-reference | Pass-by-name | |
| Thunk | Exception | Exception Handler | |
| Dynamic Chain | Shallow Binding | Deep Binding | |
| Control Flow | ||
| Control Flow | Operator | Precedence |
| Associativity | Side Effect | Expression |
| Statement | Value Model | Reference Model |
| Orthogonality | Short-circuit Evaluation | Enumeration-controlled Loop |
| Logically-controlled Loop | Iterator | Nondeterminacy |
| Logic Programming/Prolog | ||
| Horn Clause | Logic Program | Resolution |
| Unification | Database of Clauses | Cut |
| Principle of Resolution | Unification Rules | Forward Chaining |
| Backward Chaining | Infinite Regression | Closed world Assumption |
| Relations | ||
| Data Abstraction and Object Orientation | ||
| Data Abstraction | Encapsulation | Attribute |
| Message | Inheritance | Polymorphism |
| Method Binding | Module-as-type | Module-as-manager |
| Constructor | Destructor | Garbage Collection |
| Memory Leak | Dangling Reference | Reference Counting |
| Mark-and-sweep Collection | Pointer Reversal | Store-and-Copy Collection |
| Static Method Binding | Dynamic Method Binding | Virtual Method Table |
| Building a Runnable Program | ||
| Front-end | Back-end | Control Flow Graph |
| Intermediate Code Generation | Compilation Pass | Intermediate Form |
| Stack-based Language | Just-in-time Compiler | Adaptive Compiler |
| Native Method | Monolithic Object Representation | Splitted Object Representation |
| Relocatable Object Code | External Symbol | Executable Code |
| Linker | Dynamic Link Library | |
| Code Optimization | ||
| Optimization Rules | Local Optimization | Global Optimization |
| Strength Reduction | Common Subexpression Elimination | Code Motion |
| Loop Unrolling | Peephole Optimization | Constant Folding |
| Constant Propagation | Copy Propagation | In-line Expansion |
| Virtual Register | Value Numbering | |
| Concurrent Programming | ||
| Concurrent Program | Thread | Thread Lifetime |
| Co-begin/Co-end | Parallel Loop | Data Dependency |
| Fork/Join | Process | Coroutine |
| Scheduler | Non-preemptive Multithreading | Preemptive Multithreading |
| Communication | Synchronization | Semaphore |
| Message Passing | ||
| Case Study: C# and .NET | ||
| .NET | Common Language Run-time System | Common Language Interface |
| Property | Delegate | |
| Semantic Analysis | ||
| Semantic Analysis | Attribute Grammar | Attribute Flow |
| Synthetic Attribute | Inherited Attribute | S-Attributed Grammar |
| Action Routine | Dynamic Semantics | |