COM 1355 Compiler Design

Course Description and Catalog Information
Course Information (links to past and current course materials)
Course Format
Course Coordinator
Textbooks and References
Course Goals
Prerequisites by Topic
Major Topics Covered in Course
Laboratory Projects

Course Description

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 Information

Course is offered only during the Winter quarter. CS majors are guaranteed a place in class.
  • Winter 2001 (one section)
  • Course Format

    This is a BS CS elective and a 'focused elective' for BA CS majors.

    Course Coordinators

    Professor William Clinger

    Textbooks and References

    Winter 2000

    Course Goals

  • 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.]
  • Prerequisites by Topic

  • 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.]
  • Major Topics Covered in the Course

    Laboratory projects

  • [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.