CS450/550 Tentative Schedule

 

Tentative Schedule – see the class notes on the website for text readings corresponding to these topics.

 

Week 1

overview, compiler phases, infix to postfix expression translator

 

Lab: install environment, type in program on p. 55, compile and execute.

Week 2

regular expressions and flex, RE to NFA (Thompson’s construction);

 

Lab: lexer for C- using flex

Week 3

symbol tables and their implementation, NFA to DFA (subset construction), minimizing states in a DFA

 

Lab: Add symbol table to lexer, and print symbol table.

Week 4

grammars, derivations, parse trees, ambiguity, synthesized attributes, post-order tree walks, yacc, non-context free languages

 

Lab: Integration of existing lexer and write parser to evaluate expressions.

Week 5

Shift-reduce parsing overview, creation of syntax trees

 

Lab: emit syntax trees for C- expressions.

Week 6

Parsing using LR tables, LR(0) sets of items, constructing SLR parse tables, semantic attributes

 

Lab: Semantic checking

Week 7

pp. 396-397, 463-471, 478-481: stack-based memory organization, 3-address code, assignment

 

Lab: Generate code for assignment and arithmetic operators for TM

Week 8

pp. 488-497: Boolean expressions and flow of control

 

Lab: Generate code for if-then-else statements

Week 9

pp. 389-396, 398-400, 404-408: activation records

 

Lab: Code generator for function calls

Week 10

pp. 585-598: Code optimization topics

 

 

Finals schedule