Théorie des Langages et Compilation

Théorie des Langages et Compilation  GIN3209

Enseignant:

Email:

Durée totale du cours: 67,5 H

Semestre : 3

Nombre de crédits : 4.5

Modules

spécialisés

Modules de

base

Sciences et techniques de

l’ingénierie

Préparation à la carrière professionnelle
X

 

Nombre d’heures Activités hors classe
67.5 58

 

Code GIN3209 Théorie des Langages et Compilation

Volume Horaire                                     : 3h cours et 1h 30 de Travaux pratiques (par semaine)

Objectifs d’apprentissage et compétences visées

L’objectif de cette  unité étant  de comprendre les principes de base inhérents à la réalisation d’un compilateur, à savoir :

  • L’analyse lexicale
  • L’analyse Syntaxique
  • L’analyse sémantique et génération de code

L’étudiant touchera dans les travaux pratiques de cette unité deux outils de prototypage (LEX et YACC/BISON) pour construire des analyseurs lexicaux et syntaxiques.

Contenu du  cours

  • Introduction à la compilation
    • Définition de la compilation
    • Compilation vs Interprétation
    • Structure d’un compilateur
  • Analyse Lexicale
    • Lexèmes
    • Mise en œuvre d’un analyseur lexical
    • Erreurs lexicales
  • Analyse Syntaxique
    • Grammaire
    • Mise en œuvre d’un analyseur syntaxique
    • Analyse descendante
    • Analyse ascendante
    • Erreurs syntaxiques
  • Théorie des langages : Les automates
    • Classification des grammaires
    • Automates à états finis
    • Les automates à piles
  • Analyse Sémantique
    • Définition dirigée par la syntaxe
    • Portée des identificateurs
    • Contrôle de type
  • Génération de code
    • Environnement d’exécution
    • Code Intermédiaire
    • Optimisation de code

Méthodes d’enseignement et d’apprentissage

  • Enseignement frontal (magistral) avec des exemples à résoudre en
  • Exercices théoriques et études de cas (présentation et discussion).
  • Travaux pratiques (laboratoire)
  • Travaux à faire à domicile (mini-projet, exposé, compte-rendu, …)

Connaissances et compétences pré-requises

  • Algorithmique & Structures de données
  • Programmation C

Références bibliographiques

  • Un polycopié (Notes du cours) de l’enseignant sera
  • Autres références sous forme de tutoriaux, manuels ou documents à télécharger
  • Les recommandations bibliographiques suivantes doivent être considérées :
  • Alfred Aho, Monica Lam, Ravi Sethi and Jeffrey D. Ullman, « Compilateurs Principes, techniques et outils », Pearson education, 2007, 920 p, EAN13 :
  • Silverio Nino, « Réaliser un compilateur : les outils Lex et Yacc », Eyrolles, 1994, ISBN = 2-212- 08834-5.
  • Gautier, « Compilation des langages de programmation », Ellipses.
  • Grune, « Modern compiler design », Wiley.

Modalité d’évaluation

100% Travaux pratiques (mini-projet avec présentation orale, examen TP, compte-rendu, …)

Résultats d’apprentissage :

A l’issue de ce cours, l’étudiant sera capable de :

  1. analyser les tâches de compilation et appliquer les techniques de compilation standard.
  2. développer, mettre en œuvre et appliquer des modifications aux techniques et algorithmes de compilation standard chaque fois que cela est nécessaire.
  3. comprendre et mettre en œuvre les décisions de conception dans les compilateurs modernes.

Index :

Compiler, identifier, créer, planifier, réviser, analyser, concevoir, sélectionner, utiliser, appliquer, démontrer, préparer, utiliser, calculer, discuter, expliquer, prédire, évaluer, comparer, noter, critiquer, décrire ou évaluer.

 

 

Laisser un commentaire

Défiler vers le haut
Need Help? Chat with us