Compiler Design Theory
CS 360
Fall 1996

Instructor:
Professor Dan Hyde

Office:
324 Dana. 524-1281.

Office Hours:
Mondays and Wednesday 11:00 AM - Noon; Thursday 11:00 AM - Noon.

Electronic Address:
hyde@bucknell.edu. This is a good way to reach me.

Lectures:
MWF 2:00 - 3:00 PM in room 239 Dana

Web Page:
The course has a Web page at http://www.eg.bucknell.edu/~cs360/
Resources for the course as well as copies of the handouts will be available on the Web page.

Texts:
You are required to have a copy of each of the following two texts. Both are available in the bookstore under CS360.

  1. Alfred V. Aho, Ravi Sethi and Jeffrey D. Ullman, Compilers: Principles, Techniques, and Tools, Addison-Wesley, 1986. The standard text in the field nicknamed ``The Dragon Book.''
  2. John R. Levine, Tony Mason and Doug Brown, lex & yacc, O'Reilly & Associates, 2nd edition, 1992.

1996/97 Catalog Description:
CS 360 (I; 3, 0; K)
Principles of compiler design including lexical, syntax and semantic analysis, code optimization and code generation. Relationship of automata theory to language translators. Design and construction of a small compiler. Prerequisites: CS208 or permission of instructor.

Goals of Course:
Students study the techniques and issues in construction of language processors. Students learn that the study of theory is important in the design of complex software. Students design and construct a small compiler.

Prerequisite:
CS 208 or permission of instructor.

Attendance:
Students are required to attend all classes.

Reading:
Students should complete the reading assignments by the date indicated in the assignments handout. Students should be prepared to discuss and raise questions concerning the reading material.

Homework:
Written assignments will be assigned about once a week to allow the students to practice the material. Also, I will assign several programming tasks to prepare you for the project. These will be graded by the instructor.

Project:
Each student will design and construct a small compiler as a semester long project. The project will be performed in four stages each with its own due date. Each stage will be graded individually by the instructor. The project will be written in the programming language C and will use the compiler construction tools lex and yacc. The compiler will generate code for the Java Virtual Machine.

Late Assignment Policy:
No late assignments will be accepted without prior permission of the instructor. And you must have a very good reason. Being busy is not enough.

Quizzes:
Every Friday we will have a 5 to 10 minute quiz. The quizzes cover important material of the previous week which I think you should have learned. The main purposes of the quizzes are to force you to keep up with the material and to provide me with feedback on how the class is learning. Quizzes count 10% of your grade.

Exams:
There will be a midterm exam and a comprehensive final. The final examination will be given only at the date and time scheduled by the University. If you are unable to attend any of the exams, you must notify me at least one week in advance. If a grade needs to be adjusted, you must see me no later than two weeks after the return of the assignment or exam.

Grades:
The course grade will be distributed as follows:

Homework 10%
Quizzes 10%
Project 40%
Class participation 5%
Midterm Exam 15%
Final Exam 20%


Dr. Daniel C. Hyde
Mon Sep 16 17:14:11 EDT 1996