CS712/CS812
Compiler Design
Outline
- Compiler design overview (ASU: 1.1-1.6, 2.1-2.9, 3.1-3.5;
CT: 1.1-1.7, 3.1-3.2)
- Type representation and declaration processing (ASU: 6.1-6.3, 8.2;
CT: 4.2, 4.4)
- Symbol table implementation (ASU: 7.6; CT: 5.7, 6.3)
- Building and processing abstract syntax trees (ASU: 5.1-5.2;
CT: 4.1, 4.4)
- Processing expressions (ASU: 6.1-6.4, 7.4-7.5, 8.3, 8.7;
CT: 4.4, 7.1-7.6)
- Processing control structures (ASU: 8.4-8.5; CT: 7.8)
- LL parsing (ASU: 4.1-4.4; CT: 3.3)
- LR parsing (ASU: 4.7; CT: 3.4-3.5)
- Generating scanners from regular set notation (ASU: 3.5-3.9;
CT: 2.1-2.5)
- Using lex and yacc (Schreiner and Friedman)
- Reading language specifications (ANSI 1989 C Standard,
The Java Language Specification)
- Implementing object-oriented languages (CT: 7.10)
Note: ASU is Compilers: Principles, Techniques and Tools by
Aho, Sethi and Ullman. CT is Engineering a Compiler by
Cooper and Torczon.
All references are on reserve in the Kingsbury Library,
except the The Java Language Specification, which is available on-line.
The readings are not required. They are intended to be supplementary
to the course lectures. ASU is the "classic" reference for compiler
construction, but a bit dated. CT is a new reference, but perhaps
a bit advanced for this course. Use either one of these, or neither,
according to what works best for you.
Last modified on January 18, 2005.
Comments and questions should be directed to
hatcher@unh.edu