Intermediate Code Generation


- input - [Annotated Syntax Tree](https://texonom.com/annotated-syntax-tree-2c1dce2d230844cb8b5e7eff52d5fa68) 
- output - [Three-address code](https://texonom.com/three-address-code-8c43d1cc133d4d9ba91a2f3780d7e1ee) 
1. Treat code as a synthesized attribute (Practical issue: code may NOT be a purely synthesized)
2. A linearization of syntax tree
- **name attribute** - is an auxiliary attribute to store the “variable” or “value”
- ****************************code attribute**************************** - a string with instructions separated by newlines
### Intermediate Code Generation Notion
|Title|
|:-:|
|[Intermediate Representation](https://texonom.com/intermediate-representation-195a01acec14481b9e239dff03c87f61)|
|[Optimized IR](https://texonom.com/optimized-ir-7de8d6c34cb8411996205729e586a554)|
|[Address Calculation](https://texonom.com/address-calculation-6d73ba7e3d3144f6852e431b7898a0c0)|
|[Control Statements](https://texonom.com/control-statements-07a456ca19064a29ae28e53c36872797)|








