
CS 488/588 – Principles of
Compiler Construction
Syllabus Fall 2007
![]()
|
Name: |
Larry Wilson |
|
Office: |
E & CS 3107 |
|
ODU Phone: |
757-683-3084 * |
|
Fax Number: |
757-683-4900 |
|
Meeting Time: |
TR 11-12:15 Gornto and TTN sites |
|
Office Hours: |
Wed 9:30-10:45am Wed 2:30-4pm |
|
Electronic Mail: |
* If I am not in or the line is busy, you will be transferred to an automated phone system. Enter a 0 at any time to speak to a live person and leave a message.
![]()
Course Text
Second Edition
by
Aho, Lam, Sethi, and Ullman
![]()
Prerequisite: CS 361
![]()
Course Objectives
The successful student will understand and be able to apply the
principles and concepts used in compiler construction. These concepts provide useful tools
for a variety of practical programming situations such as the development of
translators, language processors and user interfaces.
![]()
Grading Issues
|
Grade Percentages |
|
|
Project |
35% |
|
Tests (2) |
40% |
|
Final |
25% |
The honor code will be strictly enforced. For the project you may discuss and confer with others but each of you must
create his/her individual code as well as the originals of all documents
submitted for credit. You may discuss
the project with others, giving and receiving advice about concepts, designs
and debugging. You may collaborate on
homework but each student must create the originals of any submissions for
credit as well as understanding the content of what is submitted.
Attendance: You are not required to attend. You are responsible for the
materials covered in class. In the case of an excused absence, I will attempt
to help you make up the material. You are responsible for the lectures, reading
assignments and homework. If you miss a class without an excuse
please do not ask me what was covered or what assignment was made. If this is a TTN offering you may view
previous lectures on VCR tape at your respective sites.
![]()
Course Topics.
The course will cover the concepts used to develop a compiler. For the front end of a compiler we will be
concerned with lexical, syntactic, and semantic analysis. Lexical analysis involves regular
expressions, syntactic analysis uses context free grammars and semantic
analysis will produce intermediate code for an abstract machine. The back end of a compiler uses the
intermediate code to produce object code for the target system. The materials covered will include chapters 1
and 2 and selected topics from chapters 3-10.
Project: The course involves a
substantial programming project, which will be assigned in three phases during
the semester. You will build a compiler
for a subset of Pascal. Your compiler
will be used to compile several programs that will then be executed to test the
quality of your compiler. This project
requires a final summary paper.
Graduate students: (CS 588) work
will be expected be of higher quality and will be graded against a higher
standard. Also graduate students will
have the additional task of describing what would need to be done in order to
turn their project compiler into a full-blown Pascal compiler as a part of the
project summary.
![]()
Tentative
Schedule— Schedule is partially complete.
Video Stream URLs— The URLs should appear within 48 hours after the class has met. Last spring they actually were available later the same day.
Project—Phase 3 is available for access.