Introduction
************

One of the first compiler, Fortran: 18 man-years.  Tiger: 6 baby-months.

Compiler Structure
==================

Scanner
     Group characters into tokens.

Parser
     Group tokens into sentences.  Find the structure of the text.

Semantic Actions
     Based on the structured reading, create an abstract syntax tree (AST).

Semantic Analysis
     Link entity definitions to uses.  Check the coherence (type checking, uses of break, escaping variables...).  Heavy use of symbol tables.

Frames, Activation Blocks
     Organisation des entités (variables etc.) sur la pile.  Convention d'appel de fonctions.

Translation
     Translating into an intermediate representation.  End of the front end.

Canonicalization
     Moving from a high level IR to a lower level IR.

Instructions Selection
     First part of the back-end. Passage de la représentation intermédiaire vers un assembleur de haut niveau, mais spécifique à la machine cible (utilisation de (variables) temporaires).

Analyse du flot de contrôle
     Quels sont les exécutions possibles ?

Analyse de la vie des données
     Suivre la vie des temporaires de façon à ne les considérer que là où elles servent.  Dissocier les noms inutilement commun.

Register Allocation
     No temporaries.

Code Production
     Finalisation, et production du code.