Compilateur lexical mini java

Disponible uniquement sur Etudier
  • Pages : 13 (3068 mots )
  • Téléchargement(s) : 0
  • Publié le : 22 décembre 2011
Lire le document complet
Aperçu du document
Table des matière

Introduction :…………………………………………………………………………………… 1

1. Définition d’un compilateur : 3

2. Structure d'un compilateur : 4

3. Les phases de la compilation : 4
3.1 L’analyse lexicale : 6

4. Réalisation d’un analyseur lexical du langage mini-java : 8
4.1 Définition du langage mini-java : 8
4.2 L’automate : 10
4.2 Table de transition : 11
4.3 Lestypes prédéfinis : 12
4.4 Les classes : 13
4.4.1 Les méthodes de la classe Compilateur : 14
4.4.2 Les méthodes de la classe AnalyseurLex: 15

5. Principe de l’Algorithme : 16

Conclusion :……………………………………………………………………………………….16

Table des figures : 17

Introduction

Avant d’exécuter un programme implémenté dans un langage évoluer quelconque il nous faudra tout d’abord vérifier leséventuelles erreurs relatives au langage (lexique, syntaxe, sémantique…) puis le traduire en langage machine et l’outil permettant d’effectuer ce traitement est appelé compilateur.
Notre TP consiste a réaliser un compilateur Mini-Java en utilisant le
langage de programmation C++.


1. Définition d’un compilateur :

Un compilateur est un programme informatique qui traduit un langage, lelangage source, en le un autre, appelé langage cible, en préservant la signification du texte source. Ce schéma général décrit un grand nombre de programmes différents ; et ce que l'on entend par «signification du texte source» dépend du rôle du compilateur. Lorsque l'on parle de compilateur, on suppose aussi en général que le langage source est, pour l'application envisagée, de plus haut niveauque le langage cible, c'est-à-dire qu'il présente ²un niveau d'abstraction supérieur.

En pratique, un compilateur sert le plus souvent à traduire un code source écrit dans un langage de programmation en un autre langage, habituellement un langage d'assemblage ou un langage machine. Le programme en langage machine produit par un compilateur est appelé code objet.
Le premier compilateur a étéécrit par Grace Hopper.

Figure [ 1 ]
Programme source
Programme cible

Message d’erreur

Un compilateur
Compilateur

2. Structure d'uncompilateur :

La tâche principale d'un compilateur est de produire du code objet correct. La plupart des compilateurs permettent d'optimiser le code (le code objet optimisé s'exécutera plus rapidement, ou aura une occupation mémoire moindre).

Un compilateur fonctionne par analyse-synthèse, c'est-à-dire qu'au lieu de remplacer chaque construction du langage source par une suite équivalentede constructions du langage cible, il commence par analyser le texte source pour en construire une représentation intermédiaire qu'il traduit à son tour en langage cible.

Il est donc naturel de séparer au moins conceptuellement, mais aussi en pratique le compilateur en une partie avant (ou frontale), parfois appelée « souche », qui lit le texte source et produit la représentationintermédiaire, et une partie arrière (ou finale), qui parcourt cette représentation pour produire le texte cible. Dans un compilateur idéal, la partie avant est indépendante du langage cible, tandis que la partie arrière est indépendante du langage source. Certains compilateurs effectuent de plus sur la forme intermédiaire des traitements substantiels, que l'on peut regrouper en une partie centrale,indépendante à la fois du langage source et de la machine cible. On peut ainsi écrire des compilateurs pour toute une gamme de langages et d'architectures en partageant la partie centrale, à laquelle on attache une partie avant par langage et une partie arrière par architecture.


3. Les phases de la compilation :

• Le découpage du programme en lexèmes (analyse lexicale) ;

• La...
tracking img