CSci 4607 Computer Language Processing

[Home] [Syllabus] [Project assignments] [Resources]

Syllabus

This is a topics course centered around a project. The syllabus below is approximate, actual dates, topics, etc. will depend on how fast or slow we will cover the material, what material we might need for the project, etc. This web page may not always reflect the recent changes. All changes will be announced in class.

All reading is from Randy M. Kaplan "Constructing Language Processors for Little Languages", unless specified otherwise.

Tuesday Thursday
Week 1: August 25 -- August 29
Overview of the course, the project timeline.
Concept of little languages.
Reading: Ch. 0, 1.
Examples of little languages. Ideas for the project.
Week 2: Sept. 1 -- Sept 5
Designing a little language.
Reading: Ch. 2.
Overview of XML.
Reading: XML links.
Project assignment 0 due: Deciding on your project group.
Week 3: Sept. 8 - Sept. 12
Formal grammars
Reading: Ch. 3.
Formal grammars (cont.).
Project assignment 1 due: Project description, sketch of a language.
Week 4: Sept. 15 - Sept. 19
Lexical analysis and parsing.
Reading: Ch. 4.
Lexical analysis and parsing (cont.).
Week 5: Sept. 22 - Sept. 26
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.
Week 6: Sept. 29 - Oct. 3
Data structures (cont.).
Reading: 6, 7, 8 (related to lexical analyzer and lex).
Implementation of lexical analyzer.
lex
Week 7: Oct. 6 - Oct. 10
Implementation of parser.
Reading: 6, 7, 8 (related to parser and yacc).
Implementation of parser (cont.)
yacc
Project assignment 3 due: Lexical analyzer.
Week 8: Oct. 13 - Oct. 17
FALL BREAK -- no classes Abstract machine.
Review for the exam
Reading: Ch. 8.4
Week 9: Oct. 20 - Oct. 24
Midterm exam Putting it all together.
Reading: Ch. 8 to the end.
Week 10: Oct. 27 - Oct. 31
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.

Project presentation during the week of finals