CS 6110-01 Design and Implementation of Compilers
Fall 2005
10:40--11:50 a.m.
Sc N 112
Instructor: William R. Nico
Office: WA 775
Phone: (510)885-3386 (or leave messages at dept. office: (510)885-3414)
E-mail: nico@csueastbay.edu
(from any mcs machine just ``nico'' will do)
Web:www.mcs.csueastbay.edu/~nico
Office hours: MW 1:00 -- 3:00 p.m. or by appointment.
Text: Keith D. Cooper and Linda Torczon, Engineering a Compiler,
Morgan Kaufmann, 2004.
Recommended: J. Levine, T. Mason, D. Brown, lex & yacc,
O'Reilly & Associates, Inc.
This course will cover the fundamentals of compiler design. Successful completion of an undergraduate course in compiler design is a prerequisite for this course. This course will attempt to emphasize more advanced topics not usually covered in the undergraduate course.
The central activity of the course will be a large programming project involving the writing of a compiler for a small language. This project will written in C (or C++) using the standard Unix compiler writing tools lex and yacc (or, equivalently, the Gnu utilities flex and bison). The final result must run correctly on the departmental Unix systems. (Students are expected to be familiar with creating, compiling, and running programs in a Unix environment.)
The project will be broken into several parts, each with its own due date. Penalties will be assessed for late submissions. The student is responsible not only for constructing and documenting the actual project code but also for developing necessary code for testing and demonstrating the correctness of intermediate phases. A suite of test programs which your compiler will be expected to compile correctly will be provided, but its coverage may not be comprehensive.
Late penalties:There will be a penalty of 25% on late programs turned in within one week of the due date. No credit will be offered for programs later than that. No programs will be accepted after the last class meeting. Advice and Consultation: The project will be an individual effort! This means that there can be no sharing of code among students!! Consultation with the instructor and reference to standard published sources---provided that use of the published material is appropriately credited by means of citations---is, of course, permissible. Plagiarism will be subject to appropriate penalties.Test policy: Students should be prepared to display a current photo id at test times, if asked.
Grading: The course grade will be computed roughly as follows. (The date of the midterm is subject to change, if necessary. Any changes will be announced in class.)
| Programming project | various, as assigned | 30% |
| Midterm | Friday, October 28 | 30% |
| Final Exam | Monday, December 5, 11:00 a.m.--12:50 p.m. | 40% |
Written work: Any written work submitted for the course, including in-class tests, must be done in ink!
Make-up policy: Make-up tests will be considered only in unusual circumstances, and then only if arrangements have been made in advance.