Analyseurs syntaxiques
Date de publication : 17/04/2006
Par
Sébastien Doeraene (sjrd.developpez.com)
Un travail sur les analyseurs syntaxiques dans les compilateurs, avec un approffondissement de la technique d'analyse
descendante. Notez que c'est un travail de fin d'études, et qu'il n'est pas forcément taillé sur la forme habituelle des
tutoriels. Il a d'ailleurs obtenu une note de 97 %.
Présentation
Qu'est-ce que la compilation ? Voilà une question que la plupart des personnes poseront en entendant parler de cette
notion. Non, ce n'est pas le fait de compiler plusieurs chansons sur un CD ; du moins, ce n'est pas cette compilation-là
que nous étudierons ici.
Qui sont ces personnes ? Ce sont celles qui n'ont jamais programmé. En effet, la compilation est un des fondements de la
programmation.
De même les développeurs, pour la plupart d'entre eux, ne se sont jamais réellement posé la question de savoir ce
qu'étaient les compilateurs, au sens technique du terme.
Nous allons donc voir, au travers de ce document, ce que sont réellement les compilateurs, et comment ils fonctionnent.
Nous nous attarderons plus particulièrement sur une étape de leur fonctionnement qui fait peur à beaucoup de débutants
en la matière, à savoir l'analyse syntaxique.
Au sommaire
-
Introduction à la compilation
- Qu'est-ce qu'un compilateur ?
- Langages source, cible et d'implémentation
- Les différentes parties d'un compilateur
- Architectures des compilateurs
- Grammaires et leurs notations
-
Introduction à l'analyse syntaxique
- Déterminisme de l'analyse
- Descendant ou ascendant ?
-
Analyse descendante
- Principe général
- L'algorithme détaillé
- Pour aller plus loin...
-
Analyse ascendante
- Principe général
- Vous cherchez plus d'informations ?
-
Projet exemple
-
Conclusion
-
Analyseur lexical utilisé
-
Référentiel des fichiers sources
Télécharger
Format PDF, 44 pages, 600 Ko.
Remerciements
Ce travail n'aurait jamais pu voir le jour sans l'aide de certaines personnes. Elles m'ont soit aidé et soutenu, soit
relu, soit été une source d'informations importante.
Tout d'abord, je remercie monsieur Paul Goethals, qui a accepté d'être mon promoteur pour ce travail. Ses conseils m'ont
été très utiles pour cerner le sujet à étudier, ainsi que pour le rendre accessible à des
non-dingues-de-programmation...
Ensuite, je voudrais remercier messieurs Dick Grune, Henri E. Bal, Ceriel J.H. Jacobs et Koen G. Langendoen, pour leur
livre Compilateurs. Cet ouvrage a été ma référence en matière de compilation tout au long de la préparation et de
la rédaction de ce document.
Enfin, je remercie encore monsieur Laurent Dardenne, rédacteur sur
www.developpez.com, pour ses relectures attentives et ses conseils
toujours aussi constructifs.

