This is the outline of my notes from the University of Toronto course CSC467: Compilers. This resource should ideally be used to refresh knowledge. I would not recommend using it to learn the material from scratch, since this is a shortened form of my notes I used for review.
- Lexical Analysis. Tokenizing a program.
- Parsing. Creating syntax tree, defining grammar.
- Semantic Analysis. Extracting meaning from syntax tree.
- Optimization. Modify to improve performance.
- Code Generation. Produce assembly or byte code.