Modern Compiler Implementation in C

©1998 by Andrew W. Appel

Tiger compiler modules for programming exercises

Last updated October 10, 1997
  1. Introduction: main.c makefile prog1.c prog1.h slp.c slp.h util.c util.h
  2. Lexical Analysis: driver.c errormsg.c errormsg.h makefile tiger.lex tokens.h util.c util.h
  3. Parsing: errormsg.c errormsg.h lex.yy.c makefile parsetest.c tiger.grm util.c util.h y.output
  4. Abstract Syntax: absyn.c absyn.h lex.yy.c makefile parse.c parse.h prabsyn.c prabsyn.h symbol.c symbol.h table.c table.h tiger.grm
  5. Type Checking: types.c types.h
  6. Activation Records: temp.c temp.h
  7. Translation to Intermediate Representation: printtree.c printtree.h tree.c tree.h
  8. Canonical Trees: canon.c canon.h
  9. Instruction Selection: assem.c assem.h canon.c canon.h main.c
  10. Dataflow Analysis: flowgraph.h graph.c graph.h
  11. Register Allocation:
    How to use precolored nodes color.h regalloc.h
  12. Putting It All Together: runtime.c
Or get the whole Tiger bundle as a tar file, or as a zip file (please preserve directory structure when unzipping).