Time and place
Monday and Wednesday, 4:30pm - 5:45pm in Halligan 102
[PDF] Knuth's original LR
parsing paper. Not only does this seminal paper describe the LR algorithm, it
also introduces many of key ideas and terms in the field.
These notes are from a few years ago, but still useful. I no longer use PowerPoint for lectures, but the slides make a useful resource.
News and Important Dates
- September 23 : Project 1, write the lexer, is due.
- October 11 : Project 2, write the parser, is due.
- October 28 : Project 3, semantic checker, is due.
- November 16 : Project 4, code lowering, is due.
- Lexical analysis -- regular expressions, DFAs and NFAs, scanner construction
- Parsing -- context-free grammars, BNF, top-down parsing, bottom-up parsing
- Semantic analysis -- types and type checking, static analysis
- Procedures -- activation records, stacks, procedure linkage
- Lowering -- dismantling expressions and control structures
- Analysis -- basic blocks, control-flow graph, liveness analysis
- Register allocation
- Code generation -- instruction selection
- Extra topics -- optimization, runtime systems, compiling other languages
Your grade in this course will be based on a series of programming assignments and on your class participation. My goal is to spend a substantial amount of lecture time doing in-class problems, so class participation is very important.
20% Class participation
Academic misconduct (also known as "cheating") is a very serious issue at Tufts. As a member of the University community, I am obligated to report any incidents. The consequences are painful for everyone involved. For more details, see the Tufts brochure on academic conduct: http://uss.tufts.edu/dosa/publications/documents/integrity.pdf
The most common reason for cheating is becoming overwhelmed by the work. Every one of us has been in this situation, and we're more than willing to help you if you feel like you're in trouble. Please, please come to us before you get into a situation where you're tempted to take someone elses solution.