Boston University
College of Arts and Sciences
Computer Science Department
111 Cummington Street
Boston, MA 02215
Phone: (617)-353-8919 / Fax: 353-6457
Web: www.cs.bu.edu

 

CS 525 -- Compiler Design Theory

Summer I, 2007

Course Coordinates
      Time: MTW 10-12
      Room: GCB 204
      Webwww.cs.bu.edu/fac/snyder/cs525/Home.html
      Email: cs525@cs.bu.edu (use Unix command
        csmail -a cs525 to add
        yourself to the mailing list)

Instructor: Wayne Snyder
      Email: snyder@cs.bu.edu
      Office: MCS 283 and CAS 102
      Office Hours: TBA
      Phone: 358-2739

 

Prerequisites

This course has a prerequisite of CS 320 (or equivalent). CS 210 or some experience with assembly language is strongly recommended, and strong programming skills in C/C++ are a must.

Course Description

This course develops the mathematical basis for syntax specification and translation and shows how this basis can be used to design and implement compilers for imperative languages. It builds on CS 210 and CS 320, and leads to further study in programming language theory (CS 520). Topics include: regular languages and finite-state automata, lexical analysis, context-free grammars, and push-down automata, parsing using LR and LALR acceptors, syntax-directed translation using attribute grammars, symbol table maintenance, run-time environments, type systems and type-checking, intermediate code generation, code optimization, target code generation, register allocation, and data-flow analysis. If time allows (hope springs eternal!) I will cover advanced topics such as garbage collection, memory hierarchy optimizations, and compilation for pipelined and superscalar architectures. Students will write a complete compiler from a subset of C to MIPS assembly language, using the Unix compiler tools lex and yacc.

Books and Resources

The main course textbook is:

Basics of Compiler Design, by Toben Mogensen

The project will make use of the following handy reference:

Lex & Yacc, Levine, Mason, and Brown (O'Reilly).

The first is a free text which is provided on the course website in pdf form; the second is available in the bookstore.

All materials other than the textbooks will be posted on the class web site: www.cs.bu.edu/fac/snyder/cs525/Home.html.

Course Policies

Lectures

Homework Assignments

Tests

Grades

These percentages are tentative and may be changed at my discretion at any time.

Miscellaneous

Homework Policies

 

Policy on Academic Misconduct

Whenever you submit a piece of academic work and sign your name to it, you are verifying that this work is the result of your own intellectual efforts; it is Plagiarism to submit work solely under your own name in which:

In this course, I will not allow you to submit any joint work, although in other courses and in other contexts you may be permitted to do this. In general, you must always provide proper attribution of authorship by naming all persons, books, or resources that provided intellectual content towards the final result. In some cases, you will need to describe the extend of the contribution, particularly when literally copying the words or artistic artifacts of another. To fail to provide proper attribution is plagiarism. Plagiarism demeans the seriousness of what we do in class, and does not allow you as a student to obtain a fair grade for the results you worked hard for.

I will discuss the issue of plagiarism with the grader, and use, when appropriate, automated tools to check submitted programs and files for copying. I don't like to be involved in this, but it is necessary in order to provide a fair environment for your work. In cases of suspected plagiarism, I will discuss the matter with the student(s) involved and, when warrented, submit the case to the Academic Conduct Committee (of which I was chairman for three years). Unfortunately, students in my classes violate these policies several times a year on average; it is my hope that by being completely clear and straight-forward about my policy that I can reduce this number. Please take this issue serious and talk to me if you have any concerns or questions.