198:415 - Compilers
Spring 1999
Professor Barbara G. Ryder

Syllabus


References:

A. Appel, Modern Compiler Implementation in Java, Cambridge University Press, 1998 (Appel).

Errata page

Aho, Sethi, Ullman Compilers: Principles, Techniques and Tools, Addison-Wesley, 1986, (ASU).

Topics Approximately by Week:

Week 1: Introduction to compilers
What is the compilation process?
(Appel Ch. 1, ASU Chs. 1-2.)

Weeks 2,3: Lexical Analysis
Tokens, regular expressions, finite automata, scanners, JLex.
(Appel Ch 2; for reference ASU Ch. 3)

Week 2: distribute Java treewalk project; due in 1 week

Weeks 3-5: Parsing
Context-free grammars (review), LR parsing, abstract syntax trees, using CUP(a Yacc-like program), handling errors.
( Appel Ch. 3.1,3.3-3.5, 4.; for reference ASU Ch. 4.5, 4.8-4.9)

Week 3: Java treewalk project due; Scanner project distributed; due in 2 weeks.

Week 5: Scanner project due; Parser project distributed; due in 2 weeks.

Week 6: Semantic Analysis
Attribute grammars, type checking through attributes, symbol tables, hashing.
(Appel Ch. 5; for reference ASU Ch. 5.1-5.2)

Week 7:Intermediate representations
Translating into abstract syntax trees, 3 address code.
(Appel Ch. 7)

Week 7: Parser project due; Semantics analyzer project distributed. due in 2 weeks.

Week 8,9: Runtime System
Name scoping and activation records (frames), display, lexical scope, handling procedures, storage organization.
(Appel Ch. 6)

Week 8: MIDTERM, Wednesday, March 10, 1999.

Week 9: Semantics analyzer project due; Type checker project distributed. due in 2 weeks.

Weeks 10,11: Code Generation
Instruction selection using maximal munch, UMd's abstract assembly language, RISC machines (MIPS 2000 architecture).
(Appel Ch. 8,9)

Week 11: Type checking project due; Initial code generator project distributed; due in 2 weeks.

Weeks 12,13:Optimization
Data flow analysis, register allocation, instruction secheduling.
(Appel Ch. 10,11,12)

Week 13: Initial code generator project due; Final code generator project distributed; due in 2 weeks.

Week 13,14: Predictive Parsing
Top down parsing, FIRST and FOLLOW sets, operator precedence parsing.
(Appel Ch. 3.2, for reference ASU 4.4,4.6)

Week 15(before finals): Final code generator project due

last updated by Barbara Ryder at 11:00pm on February 14, 1999.