Sommaire

 

 

 

 

Préface

La compilation couvre l'ensemble des techniques qui permettent de transformer un programme source en un programme objet.

Autrefois, la compilation d’un programme était un mystère, aujourd'hui c'est la science la plus maîtrisée en informatique. Un cours de compilation n'est complet que si l'on traite tous les concepts définis dans tous les langages de programmation aussi bien procéduraux que non procéduraux. Pour fixer les idées, ce livre ne traite que les langages procéduraux et ne traite que les concepts classiques les plus généraux des langages de programmation tels que la sémantique des expressions, la sémantique des déclarations et des appels de procédures et fonctions, les structures de contrôle, la portée des variables, etc.

Comprendre la philosophie d'écriture d'un compilateur pour un simple langage ouvrira sans doute les perspectives pour affronter les notions les plus complexes de compilation. Tel est l’objectif de ce livre.

Ce livre montre les différentes phases de compilation d'un programme en insistant sur le coté pratique. Il utilise les éléments nécessaires et fondamentaux de la théorie des langages.

En Bref, ce livre a pour objectif de dévoiler le fonctionnement interne des compilateurs.

Nous avons opté pour la réalisation d’un compilateur pour le langage Z pour les raisons suivantes :

- Z est un langage pédagogique simple couvrant les notions de base de compilation.

- Il existe un logiciel pédagogique pour expérimenter Z.

- Il existe un logiciel pédagogique qui dévoile le fonctionnement interne du compilateur pour le langage Z.

- Le source du compilateur Z existe.

L'objectif est de montrer comment on peut développer un compilateur partant d'un langage minimal très réduit et en l'étoffant progressivement jusqu'à l'obtention d'un compilateur pour le langage complet.

La compréhension et la réalisation pratique du compilateur est grandement facilitée par l'utilisation du logiciel pédagogique "COMPIL Z" qui montre le fonctionnement interne du compilateur Z.

 

Logiciel pédagogique : Khawarizm

 KHAWARIZM est un environnement d'apprentissage de l'algorithmique offrant la possibilité d'écrire des algorithmes, de les arranger, de les dérouler ou les simuler et de fournir toute la documentation nécessaire pour les traduire vers le langage de programmation PASCAL.

Dans KHAWARIZM, Les algorithmes sont exprimés dans un langage algorithmique ( le langage Z ). La particularité du langage Z réside dans le fait de pouvoir écrire des algorithmes sur des machines abstraites simulant les machines rudimentaires de Turing et les structures élémentaires de données. Les structures de données considérées sont : tableaux, structures (ou enregistrements) et listes linéaires chaînées.

Grace à sa machine abstraite définie sur les fichiers, le langage Z permet aussi l'utilisation des fichiers et la construction de structures simples de fichiers.

 

Logiciel pédagogique : Compil-Z

COMPIL-Z est un outil dont le rôle est de dévoiler le fonctionnement interne des compilateurs.

COMPIL-Z offre la possibilité d'écrire des algorithmes dans un prototype de langage (Z) couvrant plusieurs notions et de les compiler en passant par toutes les étapes de compilation : lexique, syntaxe, sémantique, génération de code (ou interprétation).

COMPIL-Z montre tout le processus de compilation : - l'analyse lexicale, - l'analyse syntaxique, - l'analyse sémantique.  

COMPIL-Z montre également comment l’interprétation est faite.