The textbook is: Watt, David A. and Deryck F. Brown Programming Language Processors in Java. Prentice-Hall, 2000 (required text). Supplementary materials from the author, including an errata list, are available.
The last day to withdraw without failure is Monday, February 23, 2010. The final exam for the course will take place on Wednesday, May 5, 2010, at 9am in the classroom (300 Main B101). This is the regularly scheduled time for courses taught from 1100 to 1215 on Tuesdays and Thursdays. ( See the university exam schedule.) The syllabus is subject to change: this is especially true of homework.
Week Begins | Topic | Lecture #1 | Lecture #2 | Homework |
---|---|---|---|---|
(1) January 11 | Introduction; Syntax, Semantics, and Language Processors | (1) Ch.1 | (2) Chs. 1 and 2 | Exercises 1.2, 1.4-1.6 |
(2) January 18 | Syntax, Semantics, and Language Processors | (3) Ch.2 | (4) Ch.2 | TBA |
(3) January 25 | Compilation (Overview) | (5) Ch.3 | (6) Ch.3 | Exercises 2.2, 2.3, 2.4, 2.5, 2.6, 2.8, 2.9 |
(4) February 1 | Syntactic Analysis | (7) Ch.4 | (8) Ch.4 | Exercises 3.1, 3.2, 3.3, 3.5 |
(5) February 8 | Syntactic Analysis | (9) Ch.4 | (10) Ch.4 | lex (or Jlex) and yacc (or Cup or javacc) exercises. Exercises 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9, 4.11, 4.12, 4.13. |
(6) February 15 | Test | (11) Lexical Analysis, ctd. | (12) Test | Programming exercises: 4.10, 4.14, 4.20, 4.22. |
(7) February 22 | Contextual Analysis | (13) Test post-mortem and student presentation on the development of Wirth's Pascal compiler | (14) Student presentation on the Treetop compiler compiler and on lexical analysis using an NFA, and Ch.5 | See following week. |
(8) March 1 | Contextual Analysis | (15) Ch.5 | (16) Ch.5 | Exercises: 5.1, 5.5, 5.6, 5.7, 5.9. Programming exercises: 5.3, 5.4. |
(9) March 8 | Spring Break | No Class | No Class | NA |
(10) March 15 | Run-Time Organization | (17) Ch.6 | (18) Ch.6 | Exercises: 6.1, 6.2, 6.4, 6.5, 6.6, 6.7, 6.10, 6.11, 6.16, 6.18, 6.19, 6.21, 6.32, 6.33. |
(11) March 22 | Code Generation | (19) Ch.7 | (20) Ch.7 | Exercises: 7.1, 7.2, 7.3, 7.4, 7.5, 7.6. |
(12) March 29 | Code Generation and Projects | (21) Ch.7 | (22) Assignment of Projects | (Subset of) 9.6--9.18 |
(13) April 5 | Interpretation | (23) Ch.8 | (24) Ch.8 | 8.5, 8.6 (TBC) |
(14) April 12 | Conclusion and Advanced Topics | (25) Project Discussion | (26) Ch.9 | TBD |
(15) April 19 | Conclusion and Advanced Topics | (27) Ch.9 | (28) Open | TBD |