ASSIGNMENTS (2006):

Assignments must be written in the functional programming language Haskell.

  1. Getting going in Haskell (here).  (3%)
  2. Recursive descent parsing, an expression parser and evaluator (here) (NEW ... extensive hints! Example solution. ) . (7%)
  3. Using Lex and Yacc (here).  (10%)
  4. Using a symbol table to generate a semantic tree (here). (10%).
  5. Stack based code generation (here) (10%).

ASSIGNMENTS (2007):

  1. Using lex, here.  (3%)
  2. Recursive descent parsing and generating basic stack code, here. (10%)
  3. Due March 23rd: Using Lex and Yacc (here) (a supplementary document is here).  (7%)
  4. Due April 6th: Using a symbol table in semantic analysis (here).  (Old notes on symbol table here ...) (10%).
  5. Due April 13th: Stack based code generation (here) (10%).
ASSIGNMENTS (2008):
  1. Due January 28: Using lex  here (3%)
  2. Due Febuary 25: Recursive descent parsing and generating basic stack code here (10%)
  3. Due March 17: Using Lex and Yacc  (description of vanilla project here with the extended version here: tests here) (7%)
  4. Due April 7: Symbol table and semantic analysis (the description of the intermediate representation is here: tests here) (10%).
  5. Due April 18: Stack based code generation (the description of the AM machine is here) (10%).
Assignments for 2009:
  1. Due January 29: Using lex  here (3%)
  2. Due Febuary 26: Recursive descent parsing and generating basic stack code here (10%)
  3. Due March 19: Using Lex and Yacc  (description of project here with the extended version here: tests here) (7%)
  4. Due April 9: Symbol table and semantic analysis (the description of the intermediate representation is here: tests here) (10%).
  5. Due April 17: Stack based code generation (the description of the AM machine is here) (10%).