Cours 2020-2021

Théorie des langages : Syntaxe et sémantique [IHDCB332]

  • 10 crédits
  • 30h+30h
  • 1er et 2e quadrimestre
Langue d'enseignement: Français
Enseignant: Schobbens Pierre

Acquis d'apprentissage

L'étudiant sera capable :

  • de reconnaître un problème traitable par une expression régulière, une grammaire hors-contexte, une grammaire attribuée.
  • de formaliser (spécifier) ce problème et d'utiliser des outils pour exécuter cette formalisation.

Objectifs

Aborder les bases nécessaires à la compréhension, la compilation et l'interprétation des langages de programmation. Elles servent aussi pour d'autres types de langages.

Contenu

Syntaxe

  1. Expressions régulières et automates d'états finis
  2. Langages non-contextuels:
  • Grammaires de Backus-Naur (BNF)
  • Analyse syntaxique descendante et ascendante
  • Générateurs d'analyseurs syntaxiques: LL, LR, LALR.

Sémantique

  1. Génération de code (bases)
  2. Sémantique statique:
    1. vérification de types
    2. grammaires attribuées
  3. Sémantique opérationnelle structurée
  4. Sémantique axiomatique (rappels)

 

Table des matières

  1. Expressions régulières; Automates d'états finis
  2. Langages hors contexte et automates à pile:
    • Grammaires de Backus-Naur (BNF)
    • Analyse syntaxique descendante : LL, LL* 
    • Analyse syntaxique ascendante : LR, SLR, LALR
  3. Sémantique statique:
    • vérifications de types
    • grammaires attribuées
  4. Génération de code
  5. Introduction à la sémantique opérationnelle

Description des exercices

On utilise le syllabus d'exercices :

Théorie des Langages de Programmation : Syntaxe et Sémantique
Eléments Théoriques et Exercices - 163 pages
Michaël Marcozzi
(c) Presses universitaires de Namur, 2014, D/2014/1881/3, ISBN 978-2-87037-813-7

Disciplines

Sémantique des langages de programmation

Méthodes d'enseignement

Les modalités d'enseignement et d'évaluation des unités d'enseignement ont été rédigées en fonction de la situation à la rentrée académique 2020-2021. Cependant, ces modalités pourraient faire l'objet de modifications en fonction de l'évolution de la crise sanitaire liée à la covid-19. Les étudiants seront informés de toute modification de la situation générale (passage à l'enseignement à distance partiel ou complet) par les autorités de l'UNamur tandis que les modifications propres à chaque unité d'enseignement leur seront communiquées par les enseignants, via webcampus

  1. Cours ex-cathedra.
  2. Travaux pratiques (exercices) mettant ceux-ci en oeuvre.
  3. Projet: Un travail de plus grande ampleur en groupes, la réalisation d'un petit compilateur, est réalisé au second quadrimestre. Il ne peut pas être repassé en 2nde session.

Mode d'évaluation

Les modalités d'enseignement et d'évaluation des unités d'enseignement ont été rédigées en fonction de la situation à la rentrée académique 2020-2021. Cependant, ces modalités pourraient faire l'objet de modifications en fonction de l'évolution de la crise sanitaire liée à la covid-19. Les étudiants seront informés de toute modification de la situation générale (passage à l'enseignement à distance partiel ou complet) par les autorités de l'UNamur tandis que les modifications propres à chaque unité d'enseignement leur seront communiquées par les enseignants, via webcampus

  1. Examen écrit à livre ouvert (2/3 de la cote).
  2. Exercices récapitulatifs (TP)
  3. Cotation du projet pratique (1/3 de la cote) par tests, évaluation du rapport et présentation individuelle. Le code sera remiis sur GitHub, le rapport sur WebCampus. Il ne peut pas être repassé en 2nde session.

Sources, références et supports éventuels

  1. Aho, Sethi, Ullman: "Compilateurs: principes, techniques et outils", InterEditions/Dunod.
    BUMP #I 412/037.
  2. R. Wilhelm, D. Maurer: "Les compilateurs: théorie, construction, génération", Masson, 1994.
    BUMP #I 412/030, ISBN 2225846154.
  3. John Levine, Tony Mason & Doug Brown « lex & yacc », ISBN 1-56592-000-7, 366 pages.
  4. M. Hennessy: "The semantics of programming languages: an elementary introduction using structural operational semantics", Wiley, 1990.
  5. G. Winskel: "The Formal Semantics of Programming Languages: An Introduction.", MIT Press, 1993.
  6. T. Parr: "The Definitive ANTLR Reference", The Pragmatic Bookshelf, 2013.

Langue d'enseignement

Français

Lieu de l'activité

NAMUR

Faculté organisatrice

Faculté d'informatique
rue Grandgagnage 21
5000 NAMUR
T. 081725252
F. 081724967
secretariat.info@unamur.be

Cycle

Etudes de 1er cycle