Université Lyon 1
Arqus
Accueil  >>  Théorie des langages et compilation
  • Unité d'enseignement : Théorie des langages et compilation
Nombre de crédits de l'UE : 2
Code APOGEE : PL5044IF
    Responsabilité de l'UE :
PIERRON THEO
 theo.pierronuniv-lyon1.fr
    Type d'enseignement
Nb heures *
Cours Magistraux (CM)
7.5 h
Travaux Dirigés (TD)
9 h
Travaux Pratiques (TP)
9 h
Activité tuteurée personnelle (étudiant)
3 h
Activité tuteurée encadrée (enseignant)
3 h
Heures de Tutorat étudiant
3 h

* Ces horaires sont donnés à titre indicatif.

    Pré-requis :
Connaissance de base en algorithmique, structures de données, et programmation impérative en Java.
    Compétences attestées (transversales, spécifiques) :
  • Comprendre les principes fondamentaux des langages réguliers, des automates et des grammaires formelles.
  • Acquérir des compétences pratiques dans le développement de compilateurs.
  • Appliquer les techniques d'analyse lexicale et syntaxique.
  • Comprendre les différentes phases du processus de compilation.
  • Gagner une expérience pratique dans la conception et la mise en œuvre d'un compilateur.
    Programme de l'UE / Thématiques abordées :

Description : L'Unité d'Enseignement de Théorie des Langages et Compilation offre une compréhension approfondie des fondements théoriques des langages de programmation, des automates, des grammaires et du processus de compilation. Ce cours combine la théorie avec une application pratique à travers un projet majeur consistant à développer un compilateur d'un langage de programmation similaire à C vers le langage d'assemblage.

Contenu du cours :

  1. Introduction aux langages formels :

    • Langages réguliers
    • Expressions régulières
    • Automates finis déterministes et non déterministes
  2. Grammaires formelles :

    • Grammaires formelles context-free
    • Analyse syntaxique ascendante et descendante
    • Notions de récursivité et de factorisation
  3. Théorie de la compilation :

    • Phases de la compilation
    • Analyse lexicale
    • Analyse syntaxique
    • Analyse sémantique et typage
    • Génération de code intermédiaire
    • Génération de code final
    • Gestion de la mémoire
  4. Projet pratique : Les étudiants seront amenés à concevoir et à mettre en œuvre un compilateur pour un langage de programmation inspiré de C. Le projet inclura les différentes phases de la compilation, de l'analyse lexicale à la génération de code d'assemblage. Les étudiants auront l'occasion de mettre en pratique les concepts théoriques abordés en cours.

    Parcours / Spécialité / Filière / Option utilisant cette UE :
Date de la dernière mise-à-jour : 02/02/2024
SELECT MEN_ID, `MEN_DIP_ABREVIATION`, `MEN_TITLE`, `PAR_TITLE`, `PAR_ID` FROM parcours INNER JOIN ue_parcours ON PAR_ID_FK=PAR_ID INNER JOIN mention ON MEN_ID = PAR_MENTION_FK WHERE PAR_ACTIVATE = 0 AND UE_ID_FK='30557' ORDER BY `MEN_DIP_ABREVIATION`, `MEN_TITLE`, `PAR_TITLE`