CS 352: Compilers: Principles and Practice
Fall 2008
Instructor: Zhiyuan Li (office: LWSN 3154H)
This page contains only the syllabus accessible to the general public.
Enrolled students please access the rest of the important course
information on Vista, Purdue's eCourse facility.
Textbook
Modern Compiler Implementation in Java
(Second Edition),
A. W. Appel & J. Palsberg,
Cambridge University Press,
0-521-82060-X
List of Topics
- Introduction (Chapter 1)
- Scanning (Chap. 2)
- Top-down Parsing (Sections 3.1, 3.2, 3.4)
- Abstract Syntax (Chap. 4)
- Semantic analysis and symbol tables (Chap. 5)
- Activation records (Section 6.1)
- Translation (Chap 7)
- Basic blocks and traces (Section 8.1)
- Instruction selection (Sections 9.1, 9.2)
- Liveness analysis (Section 10.1)
- Register allocation (Section 11.1)
- Garbage collection (Chap. 13, in part)
- Object-oriented languages (Chap. 14, in part)
- Polymorphic types (Chap 16, in part)
- Examples of code optimizations (from various sections in Chaps. 18,20,21)
Students will have several programming projects building
various modules in a compiler.
Final grades are based on a combination of exams, homeworks and projects.
Until the home page is set up on Purdue's Vista facility, here is a list of
lecture notes.