Symbol Table
int a, b;
declares a and b, within current scope, type integer
Basic symbol table
name, type, scope
a, int, “main”
semantic action
1. enter variable declaration into symbol table
2. look up variables in symbol table
3. do binding of looked-up variables (scoping rules, etc.)
4. Do type checking for compatibility
5. keep the semantic context of processing
e.g. a + b + c -> t1 = a + b
t2 = t1 + c