-
Pick an intermediate representation: some combination of graphical notation and three-address codes
-
Translate Expressions
-
Check Types
-
Use a Symbol Table: using widths and types
-
Flatten arrays:
-
Jumping Code: for boolean expressions and branching
-
Control Flow: inherit
.nextlabel -
Backpatching: alternative to Jumping Code and Control Flow
-
Variants of Syntax Trees
- AST
- DAG
-
Three-Address Codes
- Quadruples
- Triples
-
Types and Declarations
-
Translation of Expressions
-
Type Checking
-
Control Flow
-
Backpatching
-
Switch Statements
-
Intermediate Code for Procedures