UsefulLinks
Computer Science
Programming
Compiler Design
1. Introduction to Compilation
2. Programming Language Foundations
3. Formal Language Theory
4. Lexical Analysis
5. Syntax Analysis
6. Semantic Analysis
7. Intermediate Code Generation
8. Code Optimization
9. Code Generation
10. Runtime Environment
11. Advanced Compilation Topics
12. Compiler Construction Tools and Techniques
6.
Semantic Analysis
6.1.
Semantic Analysis Overview
6.1.1.
Context-Sensitive Checking
6.1.2.
Type System Enforcement
6.1.3.
Scope Rule Implementation
6.1.4.
Declaration Processing
6.2.
Attribute Grammar Framework
6.2.1.
Attribute Types
6.2.1.1.
Synthesized Attributes
6.2.1.2.
Inherited Attributes
6.2.2.
Attribute Evaluation
6.2.2.1.
Dependency Graphs
6.2.2.2.
Evaluation Orders
6.2.2.3.
Circular Dependencies
6.2.3.
S-Attributed Grammars
6.2.4.
L-Attributed Grammars
6.3.
Symbol Table Management
6.3.1.
Symbol Table Organization
6.3.2.
Data Structures for Symbol Tables
6.3.2.1.
Hash Tables
6.3.2.2.
Binary Search Trees
6.3.2.3.
Linked Lists
6.3.3.
Scope Handling
6.3.3.1.
Block-Structured Scopes
6.3.3.2.
Nested Scope Management
6.3.3.3.
Scope Stack Implementation
6.3.4.
Symbol Table Operations
6.3.4.1.
Declaration Processing
6.3.4.2.
Name Lookup
6.3.4.3.
Scope Entry and Exit
6.4.
Type Systems and Checking
6.4.1.
Type Expression Representation
6.4.1.1.
Basic Types
6.4.1.2.
Array Types
6.4.1.3.
Record Types
6.4.1.4.
Function Types
6.4.1.5.
Pointer Types
6.4.2.
Type Equivalence
6.4.2.1.
Name Equivalence
6.4.2.2.
Structural Equivalence
6.4.2.3.
Equivalence Algorithms
6.4.3.
Type Checking Rules
6.4.3.1.
Expression Type Checking
6.4.3.2.
Statement Type Checking
6.4.3.3.
Function Call Type Checking
6.4.4.
Type Coercion and Conversion
6.4.4.1.
Implicit Conversions
6.4.4.2.
Explicit Conversions
6.4.4.3.
Conversion Rules
6.4.5.
Polymorphism Support
6.4.5.1.
Parametric Polymorphism
6.4.5.2.
Subtype Polymorphism
6.4.5.3.
Ad-hoc Polymorphism
6.5.
Declaration Processing
6.5.1.
Variable Declarations
6.5.2.
Function Declarations
6.5.3.
Type Declarations
6.5.4.
Forward Declarations
6.6.
Advanced Semantic Features
6.6.1.
Overloading Resolution
6.6.2.
Generic Type Instantiation
6.6.3.
Module System Support
6.6.4.
Interface Checking
Previous
5. Syntax Analysis
Go to top
Next
7. Intermediate Code Generation