Index Suivant

Introduction

Le but de ce document est l'écriture d'un simple compilateur d'un langage << à la Pascal >>. L'approche n'est pas de traiter des différentes méthodes de compilation, mais de détailler la construction d'un compilateur selon une méthode donnée : l'analyse récursive descendante. Le grand avantage de celle-ci est que le compilateur peut être construit directement à partir de la syntaxe du langage ; l'analyse sémantique et la génération de code sont << ajoutées >> à cette analyse dirigée par la syntaxe.

Pourquoi écrire un compilateur ? Il est à peu près certain que la majorité des informaticiens n'auront jamais à écrire de compilateur. Cependant, mener à bien l'écriture d'un << gros >> programme, le tester, documenter... a déjà un intérêt en soi. De plus, les algorithmes employés dans un compilateur sont repris dans la résolution d'autres problèmes : manipulation de listes de recherche (gestion de la table des symboles), vérification de la correction d'enregistrements (analyse syntaxique), traitement de caractères, de mots (grammaire BNF). Enfin, il semble intéressant pour un programmeur de connaître les dessous des choses ; comprendre comment les programmes se compilent et s'exécutent aide à la compréhension des limitations, obligations... imposées par les langages.

Chacun des chapitres introduit une nouvelle notion, propose des exercices, et amène, à travers une série de travaux pratiques, à la réalisation d'une partie du compilateur. L'ensemble des travaux pratiques doit aboutir à
Index Suivant