See
discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/242754716
Text Books
Article
CITATIONS READS
0 2,433
8 authors, including:
Ravi Sethi Xxx Xxx
The University of Arizona University of Wisconsin–Madison
90 PUBLICATIONS 8,080 CITATIONS 56 PUBLICATIONS 905 CITATIONS
SEE PROFILE SEE PROFILE
Richard J. Leblanc
Seattle University
129 PUBLICATIONS 1,923 CITATIONS
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
Aeolus programming language for the Clouds object oriented distributed operating system View project
Computer Science 2013 Curriculum Guidelines View project
All content following this page was uploaded by Richard J. Leblanc on 15 July 2014.
The user has requested enhancement of the downloaded file.
CS383 PRINCIPLES OF COMPILER DESIGN 3003
1. SOURCE PROGRAM ANALYSIS 9
Compilers – Analysis of the Source Program – Phases of a Compiler –
Cousins of Compiler – Grouping of Phases – Compiler Construction Tools
– Lexical Analysis: Role of Lexical Analyzer – Input Buffering –
Specification of Tokens – Recognition of Tokens – A Language for
Specifying Lexical Analyzer – Role of Parser – Context free Grammars –
Writing a Grammar – Predictive Parser – LR Parser.
2. INTERMEDIATE CODE GENERATION 9
Intermediate Languages – Declarations – Assignment Statements –
Boolean Expressions – Case Statements – Back Patching – Procedure
Calls.
3. BASIC OPTIMIZATION 9
Constant-Expression Evaluation – Scalar Replacement of Aggregates –
Algebraic Simplifications and Re-association – Value Numbering – Copy
Propagation – Common Sub-expression Elimination – Loop-Invariant
Code Motion – Partial-Redundancy Elimination – Redundancy Elimination
and Re-association – Code Hoisting – Induction Variable Optimization –
Unnecessary Bounds-Checking Elimination.
4. PROCEDURAL AND LOW-LEVEL OPTIMIZATION 9
Tail-Call Optimization and Tail-Recursion Elimination – Procedure
Integration – Inline Expansion – Leaf Routine Optimization and Shrink
Wrapping – Register Allocation and Assignment – Graph Coloring –
Unreachable Code Elimination – Straightening – If Simplifications – Loop
Simplifications – Loop Inversion – Un-switching – Branch Optimizations –
Tail Merging or Cross Jumping – Conditional Moves – Dead Code
Elimination – Branch Prediction – Machine Idioms and Instruction
Combining.
5. CODE GENERATION 9
Issues in the Design of Code Generator – The Target Machine – Runtime
Storage management – Next-use Information – A simple Code Generator
– DAG Representation of Basic Blocks – Peephole Optimization –
Generating Code from DAGs.
Total = 45
Text Books:
1. Alfred Aho, V. Ravi Sethi, D. Jeffery Ullman, “Compilers Principles,
Techniques and Tools”, Addison Wesley, 1988.
2. Steven S. Muchnick, “Advanced Compiler Design Implementation”,
Morgan Koffman, 1997.
References:
1. Allen Holub “Compiler Design in C”, Prentice Hall of India, 1990.
2. Charles N. Fischer, Richard J. Leblanc, “Crafting a compiler with C”,
Benjamin Cummings, 1991.
View publication stats