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.