Compilation

  • Cours (CM) 24h
  • Cours intégrés (CI) -
  • Travaux dirigés (TD) 24h
  • Travaux pratiques (TP) 12h
  • Travail étudiant (TE) -

Langue de l'enseignement : Français

Niveau de l'enseignement : B2-Avancé - Utilisateur indépendant

Description du contenu de l'enseignement

Cette UE présente les principes et techniques permettant de spécifier, de manipuler et de traduire les langages informatiques. Les différentes phases de traduction d'un programme par un compilateur y sont étudiées : analyse lexicale (expressions régulières, utilisation de l'outil Lex), analyse syntaxique (analyse ascendante et descendante, grammaires LL/SLR/LALR, utilisation de l'outil Yacc), génération de code intermédiaire (utilisation de grammaires attribuées), génération de code final (assembleur) et optimisation. Durant cette UE, les étudiants réalisent un mini-compilateur dans le cadre d'un projet.

Compétences à acquérir

À l'issue de cette UE un étudiant saura :
- Spécifier un langage informatique
- Définir et exploiter des formats d'échange d'information
- Traduire un flux d'information en un format exploitable par un système informatique
- Créer des outils d'analyse et de compréhension de flux de données
- Porter de l'information textuelle vers des structures de données
- Utiliser des outils d'analyse lexicale et syntaxique
- Programmer un compilateur
- Écrire des programmes qu'un compilateur saura optimiser

Bibliographie, lectures recommandées

Références :
- A. Aho, M. Lam, R. Sethi, J. Ullman, Compilateurs : Principes, techniques et outils, Pearson Éducation France, 2007
- A. Appel, Modern Compiler Implementation in C, Cambridge University Press, 2004

Pré-requis obligatoires

À l'entrée de cette UE, un étudiant devrait savoir :
- manipuler les abstractions classiques de théorie des langages (expressions régulières, grammaires, automates)
- utiliser des structures de données avancées (listes, arbres, graphes)
- écrire des programmes simples en assembleur
- écrire des programmes complexes dans un langage impératif (les séances de TP et le projet sont en C)

Contact

UFR de mathématique et d'informatique

7, rue René Descartes
67084 STRASBOURG CEDEX
0368850200

Formulaire de contact