COP5621: Compiler Construction


This course is an introductory course to compiler construction. It introduces the elements of compilation, including language theory, syntax-directed translation, lexical analysis, symbol tables, bottom-up LR(k) parsing, top-down LL(k) parsing, intermediate code generation, data-flow analysis, the Java virtual machine, (byte)code generation, code optimization, error detection, and error recovery.


Course Web Site
Professor Robert van Engelen
engelen at cs dot fsu dot edu
475DSL (School of Computational Science at 4th floor in Dirac)
Office Hours
Mondays 12:30 PM to 1:30 PM and upon request.
COP4020 Programming Languages.
( or )  and   
1. "Compilers: Principles, Techniques, and Tools" 1st edition by Aho, Sethi, and Ullman (ISBN: 0201100886).
2. Or the new 2nd edition (ISBN-10: 0321486811 and ISBN-13: 9780321486813).
3. And "The JavaTM Virtual Machine Specification" 2nd edition (click here for instructions on how to download this text).
Other Material
Class handouts.
When and Where?
103 LOV on Mondays and Wednesdays from 11:00 AM to 12:15 PM.
Teaching Assistant
Yixin Shou
Exams and Grading
There will be four exams (three midterm exams and one final exam) and a set of laboratory projects. Details on the grading policy, grade breakdown, and exam material can be found on the COP5621 exam page. Exam dates are scheduled in advance. A grade of zero will be recorded for missed exams unless prior arrangements have been made.
Homework and programming projects will be assigned on a regular basis. All assignments are mandatory and part of the final grade. The assignments, when turned in before or at the due date before midnight will be graded. When turned in late, 5% will be deducted from the homework grade per day until the homework has been received, with a maximum extension of five days.
Roll is not taken, but you are responsible for all material delivered in class.
All exams and assignments must be completed individually, unless stated otherwise. Copying solutions is considered cheating. Submitted source code listings will be compared. Keep a copy of the listings to provide evidence of creative work. Students are expected to uphold the Honor Code. Any student involved in cheating is in violation of the Honor code. Consult the "Student Handbook" for more details on the Honor code.

Computer Accounts

You will need an account to log on to the Computer Science department machines. If you don’t have one, visit the system info site:

You will also need an ACNS account (i.e., for receiving class emails. If you want, you can forward your garnet email to other accounts (visit for more details).

Schedule, Lecture Notes, and Assignments

The tentative schedule with PPT and PDF lecture notes is shown below (refresh this page if necessary). You are encouraged to download and print the PDF notes as handouts to take to class. Links will be active when new notes have been added. The schedule will be updated when needed and significant changes will be announced on Blackboard.

Project and homework assignments can be downloaded by selecting the links in the "Assignments due" column.

Date Lecture notes Reading material
(chapters in 1st ed.)
Reading Material
(chapters in 2nd ed.)
Other useful resources Assignments due
1/8 Chapter1 [PDF] Ch.1 Ch.1 - -
1/10 Chapter2 [PDF] Ch.2 (2.1-2.6) Ch.2 - -
1/15 MLK day: no class - - - -
1/17 Chapter2 (cont'd) Ch.2 (2.7-2.9) and JVM spec (1.1,1.2,3.1-3.6,3.11,4.1-4.9,6.1-6.4) + handouts - -
1/22 Chapter3 [PDF] Ch.3 (3.1-3.4) 3.1-3.4 - -
1/24 Ch.3 (3.6-3.9) 3.6-3.9 - -
1/29 Ch.3 (3.5) 3.5 - -
1/31 Exam 1 - - - Project1
2/5 Chapter4-I [PDF]
Chapter4-II [PDF]
Chapter4-III [PDF]
Ch.4 (4.1-4.3) 4.1-4.3 - -
2/7 Ch.4 (4.4) 4.4 - -
2/12 Ch.4 (4.5) 4.5 - -
2/14 Ch.4 (4.7) 4.6 - -
2/19 Ch.4 (4.8-4.9) 4.7-4.9 - Project2
2/21 Exam 2 - - - -
2/26 Chapter5-I [PDF]
Chapter5-II [PDF]
Ch.5 (5.1-5.3) 5.1-5.3 - -
2/28 Ch.5 (5.4-5.5) 5.4-5.5 - -
3/5 Spring break: no class - - - -
3/7 - - - -
3/12 Chapter6 [PDF] Ch.6 (6.1-6.3) 6.3-6.3.2 - -
3/14 Ch.6 (6.4) 6.5 - -
3/19 Chapter8-I [PDF]
Chapter8-II [PDF]
Ch.8 (8.1-8.2) 6.1-6.2, 6.3.3-6.3.6 - -
3/21 Ch.8 (8.3-8.4) 6.4, 6.6 - Project3
3/26 Ch.8 (8.6-8.7) 6.7, 6.9 - -
3/28 Exam 3 - - - -
4/2 Chapter7 [PDF] Ch.7 (7.1-7.6) 7.1-7.3 - -
4/4 Chapter9-I [PDF]
Chapter9-II [PDF]
Chapter9-III [PDF]
Ch.9 (9.1-9.3) 8.1-8.3 - -
4/9 Ch.9 (9.4-9.6) 8.4, 8.6 - -
4/11 Ch.9 (9.7-9.9), Ch.10 (10.1-10.3) 8.8, 8.7, 9.1 - -
4/16 Chapter10 [PDF] Ch.10 (10.4) 9.6 - -
4/18 Ch.10 (10.5) 9.2 - Project4
4/26 Final exam 12:30-2:30PM - - - -

Assignment Submissions

Submit your assignments to the instructor by email. Please send only one email message that includes all sources of your programming assignment, the input and output files (when applicable), and a Makefile. Use the zip utility to compress and archive the material for inclusion as an attachment in the email message. Use the email subject line "HOMEWORK #", where # is the homework/assignment number. Also, please include your name and the assignment number in the program source code

The assignments must be turned in before or at the due date before midnight. When turned in late, 5% will be deducted from the homework grade per day until the homework has been received, with a maximum extension of five days.


This syllabus and other class materials are available in alternative formats on request.

Please advice the instructor of this class at your earliest convenience (minimum of five working days) if you have a disability that will require a reasonable accomodation for any of the activities in the course schedule.

Students with disabilities needing academic accommodations should: (1) register with and provide documentation to the Student Disability Resource Center, and (2) bring a letter to the instructor indicating the need for accommodations within the first week of class.

For more information about services available to FSU students with disabilities, please contact:
Student Disability Resource Center
08 Kellum Hall
Florida State University
Tallahassee, FL 32306-4066
Email: sdrc at admin dot fsu dot edu
Phone: (850) 644-9566

Copyright: Robert van Engelen, Florida State University, 2007.
Last modified: Monday, April 16, 2007