[Home] [Syllabus] [Project assignments] [Resources]
All reading is from Randy M. Kaplan "Constructing Language Processors for Little Languages", unless specified otherwise.
Tuesday | Thursday | |
---|---|---|
|
||
Overview of the course, the project timeline. Concept of little languages. Reading: Ch. 0, 1. |
Examples of little languages. Ideas for the project. | |
|
||
Designing a little language. Reading: Ch. 2. |
Overview of XML. Reading: XML links. Project assignment 0 due: Deciding on your project group. |
|
|
||
Formal grammars Reading: Ch. 3. |
Formal grammars (cont.). Project assignment 1 due: Project description, sketch of a language. |
|
|
||
Lexical analysis and parsing. Reading: Ch. 4. |
Lexical analysis and parsing (cont.). |
|
|
||
Structure of lexical analyzer and parser. Reading: Ch. 5, 6. |
Data structures for lexical analysis and parsing. Overview of C data
structures. Project assignment 2 due: Grammar for the language. |
|
|
||
Data structures (cont.). Reading: 6, 7, 8 (related to lexical analyzer and lex). |
Implementation of lexical analyzer. lex |
|
|
||
Implementation of parser. Reading: 6, 7, 8 (related to parser and yacc). |
Implementation of parser (cont.) yacc Project assignment 3 due: Lexical analyzer. |
|
|
||
FALL BREAK -- no classes |
Abstract machine. Review for the exam Reading: Ch. 8.4 |
|
|
||
Midterm exam |
Putting it all together. Reading: Ch. 8 to the end. |
|
|
||
Interpretation and compilation Reading: Ch. 9 Project assignment 4 due: Parser. |
Interpretation and compilation: differences from "large" languages. | |
Week 11: Nov. 3 - Nov. 7 | ||
Error reporting in a language. |
Grammars in more detail. Reading: handout. |
|
Week 12: Nov. 10 - Nov. 14 | ||
Grammars in more detail. |
Project-related material. Possibly: types in little languages (reading TBA). | |
Week 13: Nov. 17 - Nov. 21 | ||
Language documentation. |
Discussion of project testing. Adding extra features to a language. Reading: Ch. 10 Project assignment 5 due: Implementation, draft of documentation. |
|
Week 14: Nov. 24 - Nov. 28 | ||
Adding extra features to a language (cont.). |
THANKSGIVING -- no class | |
Week 15: Dec. 1 - Dec. 5 | ||
Language extensibility, adaptability. |
Discussion of the final product: lessons learned. Project assignment 6 due: Testing. |
|
Week 16: Dec. 8 - Dec. 11 | ||
Work on the project. |
Discussion of presentation, wrap up. Project assignment 7 due: Final version, documentation. |