Course FormatCourse Goals
Textbooks and References
Prerequisites by Topic
Major Topics Covered in Course
Implements lexical analyzers and parsers as specified by regular expressions and context-free grammars. Emphasizes the use of LALR(1) or LL(1) parser generators. Covers basic code generation. Uses a hands-on approach including either a sequence of programming assignments or a project.
4 QH credit
Prerequisite: COM 1350, COM 1130.
Course is offered only during the Winter quarter. CS majors are guaranteed a place in class.
Winter 2001 (one section)
This is a BS CS elective and a 'focused elective' for BA CS majors.
Professor William Clinger
Demystify compilers and understand them well enough to become a better programmer. Review programming languages, automata theory, computer architecture, and software design. [COM 1355 is likely to become a capstone course in the new curriculum.]
COM 1201 (Algorithms and Data Structures 2) COM 1350 (Automata and Formal Languages) sufficient programming experience [This is probably the most programming-intensive course in our undergraduate curriculum.]
[2 weeks] Implement certain abstract data types (e.g. compile-time environment) that will be used in the compiler. [2 weeks] Implement an attribute evaluator for a specific attribute grammar that specifies such things as tail calls, leaf procedures, and whether a procedure escapes. [2 weeks] Implement a code generator. [Extra credit; 1 week] Modify the source language in ways that require minor changes to the lexical analyzer, parser, and type checker.