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.
You will need an account to log on to the Computer Science department machines. If you dont have one, visit the system info site: http://system.cs.fsu.edu/newusers
You will also need an ACNS account (i.e., @garnet.fsu.edu) for receiving class emails. If you want, you can forward your garnet email to other accounts (visit https://cars.acns.fsu.edu 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.)
(chapters in 2nd ed.)
|Other useful resources||Assignments due|
|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||-||-|
|2/5|| Chapter4-I [PDF]
|3/5||Spring break: no class||-||-||-||-|
|3/12||Chapter6 [PDF]||Ch.6 (6.1-6.3)||6.3-6.3.2||-||-|
|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||-||-|
|4/2||Chapter7 [PDF]||Ch.7 (7.1-7.6)||7.1-7.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/26||Final exam 12:30-2:30PM||-||-||-||-|
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.