Time and place
Monday and Wednesday, 1:30pm -- 3pm in Halligan 111a
News and Important Dates
- Feb 17 : Project 1, write the lexer, is due.
- Mar 9 : Project 2, the parser, is due.
- Mar 27 : Project 3, semantic analysis, is due.
- Apr 15 : Project 4, 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
For the compiler programming projects we will do pair programming, much the same as you have done in comp40 and comp105.
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.
25% 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.