Licence Informatique

Enseignement d'analyses

Objectifs

S'appuyant sur les aspects théoriques des automates vus en L3I2, ce cours a pour objectif de comprendre comment se passe la partie avant d'un compilateur : analyse lexicale (automates d'états finis), analyse syntaxique (automates à pile), analyse sémantique (gestion d'une table des symboles, analyse des types et compatibilité) et enfin génération d'un arbre abstrait ou alors traduction vers un langage de haut niveau.

Cette UE est découpée en deux :

  • Construction d'une partie avant
  • Analyse syntaxique ascendante
semaines 1 à 5 :
Introduction à la compilation
Analyse lexicale
Grammaires algébriques et automates à pile
Analyse syntaxique descendante par descente récursive
semaines 6 à 9 :
Grammaires LR, SLR et LALR
Générateurs d'analyseurs syntaxiques
semaines 10 à 12 :
Table des symboles
Grammaires attribuées
Analyse sémantique

Intervenants

Cours
Olivier Lecarme
TD
Carine Fédèle, Olivier Lecarme
TP
Carine Fédèle, Lionel Nicolas

Évaluation

Première session
1 interrogation de 2h, 40% de la note
1 interrogation de 2h, 40% de la note
1 TP noté, 20% de la note
Deuxième session
1 examen de 2h, 100% de la note

Documents

Mémento
Un petit historique des langages de programmation
Annales des contrôles
semaine TD TP
28 janvier 2008 TD 1
Annexes sur Ada et Icon
TP 1
Exemples de grammaires bien formées
4 février 2008 TD 2 TP 2
11 février 2008 TD 3 TP 3
Utilisation de Flex: page de man + manuel d'utilisation
25 février 2008 TD 4 TP 4&5
Archive à récupérer
3 mars 2008 TD 5 TP de la semaine précédente à terminer
10 mars 2008 TD 6 TP 6
Makefile + fichier d'entrée modèle
Utilisation de LLgen
Traitement des erreurs dans LLgen
17, 24 et 31 mars 2008 TD 7
TD 8
TD 9
TP 7, fichier d'en-tête arbre.h
TP 8
Sources de Blivet
Utilisation de Bison: page de man + manuel d'utilisation
TP 9&10
Programmes en langage Simple
7 avril 2008 TD 10 TP de la semaine précédente à terminer
14 avril 2008 TD 11 TP 11&12
23 avril 2008 TD 12 TP de la semaine précédente à terminer
 
17/01/2006  Valid XHTML 1.0 Strict   Valid CSS !