Date: Tue, 14 Jan 1997 20:29:20 GMT Server: NCSA/1.5 Content-type: text/html BU CAS CS 525: Compiler Design---Syllabus

Syllabus for CS525

Summer Session I, 1996

Instructor: Wayne Snyder

Prerequisites:

[ (CS320 or CS520) and CS305 ] or Equivalent (see instructor).

Time and Place:

MTWR 11--1, room MCS B33

Textbook:

Compilers: Principles, Techniques, and Tools, by Aho, Sethi, and Ullman is required, and l Lex & Yacc by Levine, Mason, and Brown (O'Reilly & Associates Inc.) is recommended for the project. I shall occasionally hand out notes on topics, such as attribute grammars and attribute evaluation, which are not covered sufficiently formally in the text. I will also occasionally make materials (such as handouts and assignments) available over the World Wide Web.

Assignments and Tests:

There will be approximately 4 problem sets assigned during the course, a midterm, and a cummulative two hour final. There will also be a programming project which you will start by yourself, and finish in groups of 2--3; the project is to implement a small compiler for a subset of Pascal, using the compiler construction tools available in Unix (Lex and Yacc). The project will be broken into 3 -- 4 pieces, due separately. Your final grade will be determined approximately as follows: problem sets -- 25%, project -- 25%, midterm -- 20%, final -- 30%. No makeup tests will be given and there will be a penalty of 10% a day for late assignments and projects. Projects and assignments are due at 5pm on the due date under my office door.

Topics:

This course is an introduction to one side of the rather large field of the implementation of programming languages. We will only cover the theory of compiler design for imperative languages. For the most part we will follow the textbook, covering the major part of chapters 1 -- 9. If time permits, I will cover some material in chapter 10 as well. In the past this course has emphasized theory over practice (since that is my interest), and we have not spent much time on code generation. This time I will try to save some time earlier by covering fewer topics in lexical analysis and parsing, and spending more class time on code generation for a hypothetical machine. The project will reflect the material covered, and we will try to get to the point of actual code generation for Pascal programs (without structured data or procedures).

Note:

You should periodically read your mail, and look at the main cs525 web page to get messages about changes in office hours, corrections to homeworks or projects, etc. I will try to answer mail sent to me in a timely fashion, but this is not always possible; if I haven't responded to a mail message within 24 hours, catch me after class or in office hours instead.