Day
|
Compilation
Concepts Covered
|
Lab
exercises
|
1
|
- Structure of compilers and interpreters
- Introduction to scanning and parsing though lex and yacc
|
- Assembly language programming using spim.
- Evaluation (i.e. interpretation) of constant expressions
involving arithmetic operations.
|
2
|
- Scanning theory
- Introduction to attribute evaluation and symbol tables
- Introduction to name and scope analysis, intermediate code
generation, abstract syntax trees, three address codes, instruction
selection through iburg, local register allocation, activation records
and stack allocation for local variables, emitting assembly code for
spim.
|
Evaluation (i.e. interpretation) of
- Expressions with variables and assignments to variables.
- Conditional expressions involving relational and
boolean
operations.
|
3
|
- Parsing theory.
- Introduction to declaration processing and type analysis.
|
Compilation of
- Constant expressions involving arithmetic operations.
- Expressions with variables and assignments to variables.
- Boolean expressions involving relational operations on
integer expressions.
|
4 |
Run-time
environment support provided by a compiler.
|
Declarations of integer and
boolean data types. |
5
|
Theory of
instruction selection
|
Compilation of
- Control flow constructs if-then, if-then-else, while-do etc.
- Conditional expressions using control flow constructs.
|
6
|
Theory of
instruction selection
|
Compilation of arrays |
7
|
Introduction to
gcc
|
Compilation of function
declarations and calls, parameter passing. |