Cours 2018-2019

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 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

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

Table des matières

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

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

Cours ex-cathedra. Travaux pratiques mettant ceux-ci en oeuvre. Un travail de plus grande ampleur en groupes, la réalisation d'un petit compilateur.

Mode d'évaluation

Examen écrit (2/3 de la cote). Cotation du projet pratique (1/3 de la cote) par tests, évaluation du rapport et présentation individuelle.

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. B. W. Kernighan & D. M. Ritchie « Le langage C », Masson
  5. La programmation en C, Byron S. Gottfried, Série Schaum, McGraw-Hill, ISBN : 2704212309
  6. M. Hennessy: "The semantics of programming languages: an elementary introduction using structural operational semantics", Wiley, 1990.
  7. G. Winskel: "The Formal Semantics of Programming Languages: An Introduction.", MIT Press, 1993.

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