Volumes horaires
- CM 36.0
- TD 36.0
Crédits ECTS
Crédits ECTS 6.0
Objectif(s)
Ce cours vise à donner aux élèves les bases de la théorie des langages et de la compilation.
Contact Joëlle THOLLOTContenu(s)
Théorie des langages
- Comment modéliser un langage : automates, grammaires, expressions
- Equivalence des trois modèles
- Algorithmes liés à ces modèles
Analyse syntaxique des langages hors-contexte
- Langages algébriques / définitions de langage par BNF
- Définition de sémantiques formelles des langages algébriques par BNF avec attributs
- Syntaxes abstraites
- Arbres d'analyses, arbres de syntaxe abstraite
- Analyse syntaxique LL(1)
Compilation
- Structure d'un compilateur
- Etudes des étapes successives : analyse lexicale, syntaxique, génération de code
- Mise en lien avec le projet de compilation qui clot l'année.
- Ce cours est donné en Période(s) Académique(s) 1, 2 et 3 **
Prérequis
Néant.
Contrôle des connaissances
3 examens de 2h.
- La note de session 1 est la moyenne pondérée des 3 examens :
N1 = (E1a*6+E1b*4+E1c*6)/16
- La note de session 2 est la note de l'examen de session 2 :
N2 = E2.
Informations complémentaires
Cursus ingénieur->Alternance->Alternance 1ere annee
Bibliographie
- Introduction to automata theory, languages, and computation de Hopcroft, Motwani & Ullman (2007)
- Compilers: Principles, Techniques and Tools de Aho, Lam, Sethi & Ullman (1988/2007)
- The Definitive ANTLR 4 Reference - Terence Parr (2013)