Compiler Design [CSE Department]
LEXICAL ANALYSIS
1. Algorithms for Solving Nonlinear Equations
2. Introduction to Compiling Compilers
3. Analysis of the source program
4. The Phases of a Compiler
5. Cousins of Compiler
6. Grouping of the Phases
7. Compiler Construction Tools
8. Lexical Analysis
9. Input Buffering
10. Specification of Tokens
11. Recognition of Tokens
12. A Language For Specifying Lexical Analyzer
13. Important Short Questions and Answers : Principles of Compiler Design - Lexical Analysis
SYNTAX ANALYSIS and RUN TIME ENVIRONMENTS
1. Syntax Analysis
2. The Role of Parser
3. Context-Free Grammars
4. Writing a Grammar
5. Top down parsing and Bottom up Parsing
6. Constructing SLR(1) Parsing Table
7. Type Checking
8. Specification of a Simple Type Checker
9. Run-Time Environments - Source Language Issues
10. Storage Organization
11. Storage Allocation Strategies
12. Important Short Questions and Answers: Syntax Analysis and Run-Time Environments
INTERMEDIATE CODE GENERATION
1. Intermediate Languages
2. Declarations
3. Assignment Statements
4. Boolean Expressions
5. Case Statements
6. Backpatching
7. Procedure Calls
8. Important Short Questions and Answers: Principles of Compiler Design - Intermediate Code Generation
CODE GENERATION
1. Issues in the design of a code generator
2. Target Machine
3. Run-Time Storage Management
4. Basic Blocks and Flow Graphs of Code Generation
5. A Simple Code Generator
6. Register Allocation and Assignment
7. The Dag Representation For Basic Blocks
8. Generating Code From DAGs
9. Important Short Questions and Answers: Compiler Design - Code Generation
CODE OPTIMIZATION
1. Code Optimization
2. Principal Sources of Optimisation
3. Peephole Optimization
4. Optimization of Basic Blocks
5. Loops in Flow Graph
6. Introduction to Global Dataflow Analysis
7. Code Improvig Transformations
8. Glossary - Principles of Compiler Design
9. Tutorial problems and worked out examples - Principles of Compiler Design
10. Important Short Questions and Answers: Code optimization
Compilers Principles Techniques and Tools by Alfred V Aho Monica S Lam Ravi Sethi Jeffrey D Ullman
Chapter 1 : Introduction
1. Compilers - Principles, Techniques, & Tools
2. Language Processors
3. The Structure of a Compiler
4. The Evolution of Programming Languages
5. The Science of Building a Compiler
6. Applications of Compiler Technology
7. Programming Language Basics
Chapter 2 : Simple Syntax Directed Translator
1. A Simple Syntax-Directed Translator
2. Syntax Definition
3. Syntax-Directed Translation
4. Parsing
5. A Translator for Simple Expressions
6. Lexical Analysis
7. Symbol Table Per Scope and Use of Symbol Tables
8. Intermediate Code Generation
Chapter 3 : Lexical Analysis
1. Lexical Analysis
2. The Role of the Lexical Analyzer
3. Input Buffering: Buffer Pairs, Sentinels
4. Specification of Tokens
5. Recognition of Tokens
6. The Lexical-Analyzer Generator Lex
7. Finite Automata
8. From Regular Expressions to Automata
9. Design of a Lexical-Analyzer Generator
10. Optimization of DFA-Based Pattern Matchers
Chapter 4 : Syntax Analysis
1. Syntax Analysis
2. Context-Free Grammars
3. Writing a Grammar
4. Top-Down Parsing
5. Bottom-Up Parsing
6. Introduction to LR Parsing: Simple LR
7. More Powerful LR Parsers
8. Using Ambiguous Grammars
9. Parser Generators
Chapter 5 : Syntax Directed Translation
1. Syntax-Directed Translation
2. Syntax-Directed Definitions
3. Evaluation Orders for SDD's
4. Applications of Syntax-Directed Translation
5. Syntax-Directed Translation Schemes
6. Implementing L-Attributed SDD's
Chapter 6 : Intermediate Code Generation
1. Intermediate-Code Generation
2. Variants of Syntax Trees
3. Three-Address Code
4. Types and Declarations
5. Translation of Expressions
6. Type Checking
7. Control Flow
8. Backpatching
9. Switch-Statements
10. Intermediate Code for Procedures
Chapter 7 : Run Time Environments
1. Run-Time Environments
2. Storage Organization
3. Stack Allocation of Space
4. Access to Nonlocal Data on the Stack
5. Heap Management
6. Introduction to Garbage Collection
7. Introduction to Trace-Based Collection
8. Short-Pause Garbage Collection
9. Advanced Topics in Garbage Collection
Chapter 8 : Code Generation
1. Code Generation
2. Issues in the Design of a Code Generator
3. The Target Language
4. Addresses in the Target Code
5. Basic Blocks and Flow Graphs
6. Optimization of Basic Blocks
7. A Simple Code Generator
8. Peephole Optimization
9. Register Allocation and Assignment
10. Instruction Selection by Tree Rewriting
11. Optimal Code Generation for Expressions
12. Dynamic Programming Code-Generation
Chapter 9 : Machine Independent Optimizations
1. Machine-Independent Optimizations
2. The Principal Sources of Optimization
3. Introduction to Data-Flow Analysis
4. Foundations of Data-Flow Analysis
5. Constant Propagation
6. Partial-Redundancy Elimination
7. Loops in Flow Graphs
8. Region-Based Analysis
9. Symbolic Analysis
Chapter 10 : Instruction Level Parallelism
1. Instruction-Level Parallelism
2. Processor Architectures
3. Code-Scheduling Constraints
4. Basic-Block Scheduling
5. Global Code Scheduling
6. Software Pipelining Algorithm
7. Scheduling Acyclic Data-Dependence and Cyclic Dependence Graphs
8. Improvements to the Pipelining Algorithms
Chapter 11 : Optimizing for Parallelism and Locality
1. Optimizing for Parallelism and Locality
2. Basic Concepts of Optimizing for Parallelism and Locality
3. Matrix Multiply: An In-Depth Example
4. Iteration Spaces
5. Affine Array Indexes
6. Data Reuse
7. Array Data-Dependence Analysis
8. Finding Synchronization-Free Parallelism
9. Synchronization Between Parallel Loops
10. Pipelining
11. Locality Optimizations
12. Other Uses of Affine Transforms
Chapter 12 : Interprocedural Analysis
1. Interprocedural Analysis
2. Basic Concepts of Interprocedural Analysis
3. Why Interprocedural Analysis?
4. A Logical Representation of Data Flow
5. A Simple Pointer-Analysis Algorithm
6. Context-Insensitive Interprocedural Analysis
7. Context-Sensitive Pointer Analysis
8. Datalog Implementation by BDD's
Comments
Post a Comment