CS 447 / CS 545 - Compiler Theory:


University of Western Ontario
Computer Science Department


Date: September 7, 2009


The emphasis of this course is on solving problems universally encountered in designing a language translator. Indeed, few people are likely to build or even maintain a compiler. However, the ideas and techniques of compiler theory apply to many problems in software engineering and in other areas. For example, the string matching techniques for building the lexical analyzer of a compiler are also used by text editors or pattern matching programs. The techniques from graph theory for performing code optimization, such as coloring, are used to organize schedules. Hence, the student should come away from the course with a deeper understanding of what happens when they compile programs but also with an enriching experience with algorithms and computers.

Outlines.
This presents the contents of the course, its assignments, quizzes and exam. outline.html
Lectures.
The lectures introduced the students to the various aspects of compiler design and development.
Assignments of Fall 2004.
The three assignments will lead to the development of a front-end compiler for the ALLCOT language together with an optimizer for the intermediate code.
Quizzes of Fall 2004.
The exercices in these quizzes are generally variations around the course examples.
Quizzes and Final Exam of Winter 2004.
The exercices in these quizzes are generally variations around the course examples.
Assignments of Winter 2004.
The three assignments will lead to the development of a front-end compiler for an extended version of the ALLCOT language.
Quizzes and Final Exam of Winter 2003.
The exercices in these quizzes are generally variations around the course examples.
Assignments of Winter 2003.
The students were supported in these programming assignments by the ressources below ...and the instructor. The last assignment led the students to write a compiler-to-C for a simple object oriented language.
Ressources.
Documentation and source code for the course examples.