News
- Project 3 has been posted, due March 11
- Midterm scores have been posted on Moodle
- The midterm will be on Thursday, Feb 5
- Project 2 has been posted, due Feb 18
- Project 1 has been posted, due Jan 28
- The first lecture will be on Tuesday, January 6
Overview
Professor | Dr. Iulian Neamtiu |
Office hours: TR 9:40 a.m. - 10:40 a.m., Engineering BU2 (ENGR2) room 412 | |
TA's | Marc Soriano |
Office hours: MW 9:30 a.m. - 11:00 a.m., ENGR2 room 110 | |
Marcos Vieira | |
Office hours: TR 4:30 p.m. - 6:00 p.m, ENGR2 room 363 | |
Lectures | TR 8:10 a.m. - 9:30 a.m., Sproul Hall (SPR) room 2339 |
Lab (section 021) | R 12:40 p.m. - 03:30 p.m., ENGR2 room 226 |
Lab (section 022) | F 11:10 a.m. - 02:00 p.m., ENGR2 room 127 |
Grading | Project (35%) + Final exam (35%) + Midterm (25%) + Quizzes (5%) |
Textbook | Compiler Construction: Principles and Practice by Kenneth C. Louden |
Midterm | Feb 5 |
Final exam | March 20 (subject to change) |
Prerequisites | CS 061 and CS 141 and CS 150 |
Moodle page |
Catalog description: Covers the fundamentals of compiler design, including lexical analysis, parsing, semantic analysis, compile-time memory organization, run-time memory organization, code generation, and compiler portability issues. Laboratory work involves exercises covering various aspects of compilers.
Schedule
Day | Date | Topic | Reading | Slides | Notes |
Tue | Jan 6 | Introduction | Chapter 1 |   | |
Thu | Jan 8 | Lexical Analysis | Chapter 2 |   | |
Lab | Jan 8/9 | Project 1 handed out, due 1/28 |   | Lab 1 outline |   |
Tue | Jan 13 | Lexical analysis (contd.); Syntax Analysis: Grammars | Chapter 3 |   | |
Thu | Jan 15 | Top Down Parsing | Chapter 4 |   | |
Tue | Jan 20 | Top Down Parsing | . | . |   |
Thu | Jan 22 | Bottom Up Parsing | Chapter 5 |   | |
Tue | Jan 27 | Bottom Up Parsing | . | . |   |
Thu | Jan 29 | Bottom Up Parsing | . | . |   |
Lab | Jan 29/30 | Project 2 handed out, due 2/18 |   | Lab 2 outline |   |
Tue | Feb 3 | Review |   |   |   |
Thu | Feb 5 | Midterm |   |   |   |
Tue | Feb 10 | Semantic Analysis | Chapter 6 |   | |
Thu | Feb 12 | Semantic Analysis | . | . |   |
Tue | Feb 17 | Code Generation | Chapter 8 |   | |
Thu | Feb 19 | Code Generation | . | . |   |
Lab | Feb 19/20 | Project 3 handed out, due 3/11 |   |   |   |
Tue | Feb 24 | Data types and type checking | Section 6.4 |   | |
Tue | Feb 26 | Runtime Environments | Chapter 7 |   | |
Thu | Mar 3 | Runtime Environments | . | . |   |
Tue | Mar 5 | Compiler Backend/Code Optimization |   | ||
Thu | Mar 10 | Code Optimization/Register Allocation | . | . |   |
Thu | Mar 12 | Review |   |   |   |
Projects
- Lexical Analyzer (1/8 -- 1/28)
- Parser (1/29 -- 2/18)
- Code Generator (2/19 -- 3/11)
Quizzes
There will be several unannounced quizzes at the beginning of class. Quizzes are designed to test students' understanding of the material assigned in advance for that class (section or chapter in the textbook) or to reinforce material studied in previous lectures. When computing the student's final score, the lowest quiz score will be dropped.Resources
Optional books:- Crafting A Compiler With C by Fischer and LeBlanc.
- Compilers: Principles, Techniques, and Tools (2nd Edition) by Aho, Lam, Sethi, and Ullman.