Génie Informatique et Statistique

Semestre 6
  UE 6-5 - Calculs et compilation (112950)
    Langages et traducteurs (112300)

Enseignant(s) : Serge PETITON

ECTS : 3.5


Objectifs à atteindre


_Introduire les bases des grammaires contextuelles et de la théorie des langages servant pour comprendre les procédés de traduction dirigée par la syntaxe, qui sont les objectifs principaux de ce cours. Les compilateurs sont introduits et étudiés comme l’exemple le plus connu, mais d’autres exemples sont présentés. Ce procédé étant de plus en plus utilisé comme moteur dans le développement de grands logiciels._


Programme détaillé


1. Introduction au langage, à la traduction, et à la compilation
1. Classe de Langage
2. Interface matériel/logiciel
3. Le modèle analyse-synthèse, les phases d’un compilateur
2. Grammaire
1. Définition des grammaires contextuelles, exemples
2. Arbres syntaxiques, abstraits, attributs et premiers éléments
3. Classe de grammaire, grammaires ambigues, récursion à gauche
3. De l’analyse d’un programme source à la génération de code
1. L’analyse lexicale
2. L’analyse syntaxique
3. L’analyse sémantique
4. Représentations intermédiaires et production de code intermédiaire
4. Un traducteur en une seule passe, exemple d’un compilateur
1. Introduction de la traduction dirigée par la syntaxe
2. Attributs sémantiques synthétisés et hérités
3. Exemple d’un traducteur d’expressions infixées en postfixées
5. Analyses lexicales et syntaxiques revisitées
1. Token, lexèmes et modèles
2. Diagrammes de transitions et reconnaisseurs automatiques, LEX
3. Compilateurs de traducteurs, YACC
6. Traduction dirigée par la syntaxe
1. Définitions dirigées par la syntaxe, S ou L attribuées
2. Graphes de dépendance, schémas de traduction
3. Traduction prédicitive récurssive
7. Génération de code intermédiare et objet
1. Langages intermédiaires, blocs de basse et graphe de contrôle
2. Génération de code simple trois adresses , optimisations
3. Un Algorithme de génération de code simple, allocation de registre
8. Exemple de traducteurs


Pré-requis


Cours de programmation et de structures de données élémentaires. Connaissance de base sur l’architecture des ordinateurs et des systèmes informatiques.


Volume horaire


Total : 50h
Cours : 24h
TD : 10h
TP : 14h
Tutorat : 0h
DS : 2h



Bibliographie


Compilateurs ; principes, techniques et outils, A. Aho, R. Sethi et J. Ullman. InterEdition.