CSC448: Compiler Design (Winter 2010/2011)
James Riely

News
2010/12/17 16:08
Welcome to the course home page! Useful links are to the left. Lecture slides and reading assignments are to the right. Reading assigments are listed beneath the lecture title; read this material before the lecture.
Local

Examples

Mailing list

Course online

Syllabus

Books

Crafting a Compiler (CAC) [Amazon, AddAll]

(website)
Lexing

JFLex Manual

(PDF)

JFLex

Lex - A Lexical Analyzer Generator

By M. E. Lesk and E. Schmidt
Parsing

CUP Manual

(PDF)

CUP (current versions)

Yacc: Yet Another Compiler-Compiler

By Stephen C. Johnson

GNU Bison manual

Parsing Techniques - A Practical Guide

Cytron's notes

installing eclipse

running ant

intro

scanning

grammars

recursive descent

error repair

ll-parsing

lr-parsing

symbol tables

attribute grammars

ast

types

runtime storage

code generation

optimization

conclusion

Lecture Materials
1. Introduction, Scanners [01/05]
Before class, read CAC (Crafting A Compiler) Chapter 1,2,3
Notes from class
Cytron notes: intro
Cytron notes: scanning
Homework (CAC Lab 3) (due friday after the next class)
Video on doing the homework: pragmatics
Video on doing the homework: the problem
2. Parsing [01/12]
CAC 4,5,6
Cytron notes: grammars
Cytron notes: recursive-descent
Cytron notes: error-repair
Cytron notes: ll-parsing
Cytron notes: lr-parsing
Homework (CAC Lab 6) (due friday after the next class)
Homework (CAC Lab 5) (extra credit: due friday after the next class)
3. ASTs [01/19]
CAC 4,5,6
Cytron notes: symbol-tables
Cytron notes: attribute-grammars
Cytron notes: ast
Homework (CAC Lab 7) (due friday after next class)
Arithmetic example
4. Types [01/26]
CAC 8,9
5. Intermediate code [02/02]
CAC 10,11
6. Runtime Support [02/09]
CAC 12
Cytron javadoc
Homework (CAC Lab 8) (due friday after next class)
7. Midterm; Target code [02/16]
file:notes-clogs.html
Homework (CAC Lab 9) (optional)
8. Memory Management [02/23]
CAC 12

Links: file:class-08

9. Optimization [03/02]
CAC 14

Links: file:class-09

10. Optimization [03/09]
CAC 14
11. Final project due [03/16]
(CAC Lab 10)(optional)
(CAC Lab 11)(optional)
(CAC Project)(optional)

Contact Hours
Class Hours: Wed 5:45-9:00pm in Lewis 1007 [Section 801]
Online, Anytime [Section 810]
Office Hours: Tue 3:00-4:00pm, Wed 1:00-2:00pm in CDM 846


The stylesheets used to create this website are based on Corin Pitcher's XSLT stylesheets for lecture slides.