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.
Lien utile avant de commencer▲
Ce tutoriel n'est pas évident, et assez théorique. Si c'est votre première expérience en matière d'analyse syntaxique, je vous recommande la partie Application à l'analyse syntaxiqueApplication à l'analyse syntaxique du cours de Damien Guichard, qui est une excellente introduction à l'analyse syntaxique avec du code concret. La compréhension de ce tutoriel en sera grandement facilitée.
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.















