About the Course
This course is an introduction to compiler construction. Students will write an interpreter for a small subset of the SVG (Scalable Vector Graphics) and a full compiler for a subset of Java called MiniJava. Course topics will include the following: scanning, parsing (top-down and bottom-up), abstract syntax trees, semantic analysis, and code generation.
April 29, 2009: The 22-other-language-features.txt notes have been extended to include multidimensional arrays and the terms overloaded and overridden are now being used correctly and consistently.
April 28, 2009: Notes about OOP language features for today's class have been posted.
April 24, 2009: Notes from yesterday about code generation for arrays have been posted.
April 21, 2009: Notes for today have been posted.
April 20, 2009: PA7 has been posted.
April 16, 2009: Updated notes for today's class were posted last night. PA6 and PA7 have been extended to Monday deadlines. Also note that HW6 and the extra credit assignment have both been posted. PA7 will be posted Monday.
April 14, 2009: Notes for today's class are on schedule.
April 9, 2009: Notes for today's class are on schedule.
April 8, 2009: No recitation this week or next.
April 7, 2009: PA6 has been posted on the assignments page. Notes from today's class have been posted on the schedule page.
April 6, 2009: Posted updated schedule and reading assignments.
March 31, 2009: Posted notes for today's lecture. See schedule.
March 27, 2009: MJControlFlowStart.tgz now contains modified ReverseDepthFirstAdapter. The new version of ReverseDepthFirstAdapter.java has also been sent to the mailing list.
March 26, 2009:
- HW5 has been posted on the assignments page.
- Class was canceled today due to snow.
- If CSU is open tomorrow morning, we will have recitation as scheduled.
- We will be doing today's lecture on Tuesday.
- The notes posted on the 24th have undergone minor typo fixes.
- The PA5 writeup now indicates that a lines and positions dot visualization should be generated and indicates that STEs need to know their base register as well as their offset.
- Grades for HW4 have been posted on RamCT.
- Suggested exercises have been posted on the schedule.
March 24, 2009: Class notes from today have been posted on schedule.
March 24, 2009: The recitation schedule has been updated.
March 23, 2009: PA5 has been posted on the assignments page.
March 13, 2009: HW4 is posted on the assignments page. The schedule contains the reading assignments for the two weeks after spring break.
March 10, 2009: Notes from today's review have been posted on schedule.
March 4, 2009: Notes from yesterday and sample midterms have been posted in the schedule.
March 3, 2009: PA4 has been posted. Notes for today's class will be posted tonight.
February 26, 2009: Posted notes for today's lecture on schedule along with some DotVisitor code examples. Fixed notes from Tuesday (depth of expr tree instead of three registers).
February 24, 2009: Posted some additional reading related to synthesized and inherited attributes (Ch. 5 through 5.4.3) and posted notes for today's lecture on schedule.
February 23, 2009: Posted some additional reading related to shift-reduce parsing (Ch. 4.5) and visitors (SableCC thesis Chapter 6).
February 19, 2009: Posted notes for today on schedule page.
February 18, 2009: Posted PA3 on the assignments page.
February 10, 2009: Posted notes for today's class and Thursday's class on schedule page.
February 5, 2009: Posted notes for today's class on schedule page.
February 2, 2009: Posted notes for tomorrow's class on schedule page. Posted PA2 on the assignments page.
February 1, 2009: Posted HW2 on the assignments page.
January 29, 2009: Posted notes for today's class on schedule page.
January 26, 2009: Clarified which regular expressions were tokens and which were helper regular expressions in the PA1 writeup.
January 22, 2009: Posted notes for today's class on schedule page.
January 21, 2009: PA1 has been posted on the assignments page.
January 18, 2009: The first day of class will be in room 109 in the Natural Resources building. At that time, we will announce where the class will be held in the new CS building.
January 18, 2009: The first homework has been posted on the assignments page. HW1 will also be distributed on the first day of class.
December 29, 2009: The course website has been posted! Send me email at firstname.lastname@example.org if you have any questions.