|
Waite, Goos: "Compiler Construction", Springer, 1995 (?)
Techniques de base
Les exemples commencent à être anciens (PL1, ALGOL, ...)
disponible sur le web à des fins d'enseignement :
(postcript compressé)
(pdf)
transparents et exercices de Goos et Waite (en allemand) |
|
A. Aho, R. Sethi, J. Ullman
"Compilateurs : principes techniques et outils, cours et exercices"
Dunod (1989)
"Le dragon" : grand classique sur la compilation, en traduction française
|
|
|
|
Andrew Appel :
"Modern Compiler Implementation in ML"
(1998)
Suit la construction d'un compilateur depuis l'analyse lexicale
jusqu'à l'optimisation du code généré
Chapitres sur langages fonctionnels, OO, ramasse-miettes, ordonnancement, ...
En suivant les exercices on finit par construire son compilateur !
Versions du livre pour C et Java.
|
|
|
A. Darte, Y. Robert, F. Vivien :
"Scheduling and Automatic Parallelization" (Birkhaüser, 2000)
Reprend en grande partie la thèse de F. Vivien :
PhD97-12.ps.Z
|
|
|
Steven Muchnick :
"Advanced Compiler Design and Implementation" (1997)
Point de vue ``ingénieur'' sur la compilation des langages impératifs (Fortran, C).
Tables de symboles, analyses de flot, optimisations de code,
allocation de registres, pipeline logiciel, transformations de boucles.
Beaucoup d'algorithmes, guère de démonstrations.
À lire si on veut effectivement écrire un compilateur !
|
|
|
D. Grune, H. E. Bal, C. J.H. Jacobs, K. G. Langendoen :
"Modern Compiler Design" (Wiley, 2000)
Peut-être un successeur au dragon ?
Détaille l'analyse lexico-syntaxique, les grammaires attribuées, la génération de code.
chapitres sur la gestion mémoire, langages fonctionnels, parallélisme.
|
|
|
|
Jean-François Collard
"Reasoning About Program Transformations"
(Springer Verlag, 2002. ISBN: 0387953914)
Décrit les analyses de flots de données "par instance" :
Travaux de Bill Pugh, Feautrier, Collard
Nombreux exemples illustrés par l'utilisation de l'omega-test |
|