COP5621: Compiler Construction


This course is an introductory course to compiler construction. In this course you will learn the important basic elements of compilation and use the material effectively to design and build a working compiler. Topics include language theory, syntax-directed translation, lexical analysis, symbol tables, bottom-up LR(k) parsing, top-down LL(k) parsing, Yacc/Bison and Lex/Flex specifications, 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
Office: 259LOV
Phone: 645-0309.
Office Hours
Tuesdays and Thursdays 3:30 PM to 4:30 PM and upon request.
COP4020 Programming Languages or equivalent.
1. "Compilers: Principles, Techniques, and Tools" by Aho, Sethi, and Ullman 2nd edition (ISBN-10: 0321486811 and ISBN-13: 9780321486813).
2. "The JavaTM Virtual Machine Specification" 2nd edition updated, SE 5.0 / SE 6 (click here to obtain this text).
Other Material
Class handouts.
When and Where?
103 LOV on Tuesdays and Thursdays from 2:00 PM to 3:15 PM.
Teaching Assistant
Jiefei Cai (jc09aa at fsu edu)
Office hours: Mondays 11AM-noon in 165LOV.
Exams and Grading
There are four exams (three midterm and one final exam) and a set of laboratory project assignments. Details on the grading policy, grade breakdown, and exam material can be found on the COP5621 online exam page. Exam dates are scheduled in advance. A grade of zero will be recorded for missed exams unless prior arrangements have been made.
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, see also below. 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:

Schedule, Lecture Notes, and Assignments

The tentative schedule with PPT and PDF lecture notes is shown below (refresh this page to view the lates changes). You are encouraged to download and print the PDF notes and take them as handouts 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.

When project and homework assignments are available, you can be download them by selecting the download links under the "Assignments due" column.

Date Lecture notes Reading Material
(Textbook 2nd edition)
Useful resources Assignments due Date
8/27 Chapter1 [PDF] Ch.1 - - 8/27
8/29 Chapter2 [PDF] Ch.1 and Ch.2 - - 8/29
9/3 Ch.2
JVM spec 2nd ed 1.1,1.2,3.1-3.6,3.11,4.1-4.9,6.1-6.4
JVM spec 2nd ed (upd) - 9/3
9/5 Chapter3 [PDF] 3.1-3.4 Flex manual - 9/5
9/10 3.6-3.9 - HW 1 9/10
9/12 3.5 - - 9/12
9/17 - - - 9/17
9/19 Exam 1 n/a - - 9/19
9/24 Chapter4-I [PDF] 4.1-4.3 - PR 1 9/24
9/26 Chapter4-II [PDF] 4.4 - - 9/26
10/1 4.5 - - 10/1
10/3 Chapter4-III [PDF] 4.6-4.9 Using lex/flex & yacc/bison - 10/3
10/8 Chapter5-I [PDF] 5.1-5.2 - HW 2 10/8
10/10 5.3 - - 10/10
10/15 Exam 2 n/a - - 10/15
10/17 Chapter5-II [PDF] 5.4 - PR 2 10/17
10/22 Chapter6-0 [PDF] 6.3-6.3.2, 6.5 - - 10/22
10/24 Chapter7 [PDF] 7.1-7.3 (note: moved up) - 10/24
10/29 Chapter6-I [PDF] 6.1-6.2, 6.3.3-6.3.6 - - 10/29
10/31 6.4, 6.6 - - 10/31
11/5 Chapter6-II [PDF] 6.7, 6.9 - HW 3 11/5
11/7 - - - 11/7
11/12 Exam 3 n/a - - 11/12
11/14 Chapter8-I [PDF] 8.1-8.3 - - 11/14
11/19 Chapter8-II [PDF] 8.4, 8.6 - PR 3 11/19
11/21 Chapter8-III [PDF] 8.8, 8.7, 9.1 - - 11/21
11/26   - - 11/26
11/28 Thanksgiving n/a - - 11/28
12/3 Chapter9 [PDF] 9.6 - - 12/3
12/5 9.2 - HW 4 12/5
12/13 Final exam 3:00-5:00PM n/a - PR 4 12/13

Submissions of Assignments

Programming projects will be assigned on a regular basis. Extra credit can be earned by submitting homework. 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 project grade per day until the submission has been received, with a maximum extension of five days.

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 tar utility to compress and archive the material for inclusion as an attachment in the email message (preferably use tar to avoid zipped files from being filtered). Use the email subject line "PROJECT #" for projects and "HOMEWORK #" for homework, where # is the homework/assignment number. Also, please include your name and the assignment number in the program source code


First class attendance is mandatory. Attendance during exams is also mandatory. For the remaining duration of the course roll is not taken, but you are responsible for obtaining all material delivered in class, including verbal communications.

Excused absences include documented illness, deaths in the immediate family and other documented crises, call to active military duty or jury duty, religious holy days, and official University activities. Accommodations for these excused absences will be made and will do so in a way that does not penalize students who have a valid excuse. Consideration will also be given to students whose dependent children experience serious illness.

Academic Honor Policy

The Florida State University Academic Honor Policy outlines the University’s expectations for the integrity of students’ academic work, the procedures for resolving alleged violations of those expectations, and the rights and responsibilities of students and faculty members throughout the process.  Students are responsible for reading the Academic Honor Policy and for living up to their pledge to “. . . be honest and truthful and . . . [to] strive for personal and institutional integrity at Florida State University.”  (Florida State University Academic Honor Policy, found at


Students with disabilities needing academic accommodation 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 accommodation and what type. This should be done during the first week of class.

This syllabus and other class materials are available in alternative format upon request.

For more information about services available to FSU students with disabilities, contact the:

Student Disability Resource Center
97 Woodward Avenue, South
108 Student Services Building
Florida State University
Tallahassee, FL 32306-4167
(850) 644-9566 (voice)
(850) 644-8504 (TDD)

Copyright: Robert van Engelen, Florida State University, 2013.
Last modified: October 29, 2013