Contextual analysis:
•Scope checking:
verify that all applied occurrences of identifiers are declared
•Type checking:
verify that all operations in the program are used according to
their type rules.
Annotate AST:
•Applied identifier
occurrences => declaration
•Expressions => Type