Structure of Compilers - Spring 2006
CS 43111 (Call Number 11739) & CS 53111 (Call Number 11756)

Tuesday & Thursday - 11:00 AM to 12:15 PM in Room 228 MSB.

Instructor: Kenneth E. Batcher - Room 266 MSB
Phone: (330) 672-9064
Home Page:

Office Hours: 10:45 AM to 12:00 Noon on Monday & Wednesday.

Course Web Site:

Text Book: Aho, Sethi, and Ullman, Compilers: Principles, Techniques, and Tools, Addison-Wesley (there's a red dragon on the cover.)

Course Notes: The course notes are on the Web. Clicking on any topic in the following table will retrieve the course notes for that topic.

TopicSections in the text
1. Introduction 1.1, 1.3, 1.5
2. Lexical Analysis 3.1, 7.6, 3.3, 3.4, 3.5, 3.6, 3.7
3. A Simple Compiler 2.2, 2.3, 2.4, 2.5
4. Syntax Analysis 4.1, 4.2, 4.3
5. Top-Down Translation 4.4, 5.1, 5.2, 5.4, 5.5
6. Type Checking 6.1, 6.2
7. Intermediate Code Generation 8.1, 8.3, 8.4
8. Bottom-Up Translation 4.5, 4.6, 5.3, 4.7
9. Run-Time Environments 7.1, 7.2, 7.3, 7.4, 7.5

Projects: During the semester you will use C or C++ to develop a compiler that can read any program written in a subset of Pascal and produce intermediate code for that program. The work is divided into three coding projects:

1. Symbol Table Package & Lexical Analyzer Due Thursday, February 23
2. Recursive-Descent Predictive-Parser Due Tuesday, April 4
3. Operator-Precedence Parser Due Thursday, April 27
Projects will be penalized for: late submissions; code that does not compile; code that does not run; errors in output files; poor organization; poor use of system libraries; excessive length; and poor documentation. Click here for the guidelines your projects should follow.

Don't let other students copy any part of your code. If the same code segment appears in the projects of two or more students then all are penalized because the real author is unknown. Don't copy projects from previous semesters - they are different this semester.

Final Exam: Monday, May 8, 12:45 PM to 3:00 PM in Room 228 MSB. Bring your textbook, course notes, and extra paper.

Grading: Each project is worth 25% and the final exam is worth another 25%. To get a good grade in this course start working on the projects early so you have enough time to write and de-bug your code.

Students with Disabilities: In accordance with University policy, if you have a documented disability and require accommodations to obtain equal access in this course, please contact the instructor at the beginning of the semester or when given an assignment for which an accommodation is required. Students with disabilities must verify their eligibility through the Office of Student Disability Services (SDS) in the Michael Schwartz Student Services Center: (330) 672-3391.

Kenneth E. Batcher - 3/23/2006