ESIROI · Maquettes Connexion
AccueilITS7 · UE7-DEV
ESI-SPI-CI-IN4-S7-UE3-EC2

Théorie des langages

FR EN ⬇ PDF
RéférentCe cours introduit les fondements formels des langages de programmation : comment décrire, reconnaître et transformer un langage et quelles sont les limites intrinsèques du calcul. Il vise à comprendre les mécanismes sous-jacents à la conception de compilateurs et d'interprètes, à évaluer l'expressivité des différents formalismes (automates, grammaires, machines de Turing) et à estimer la complexité algorithmique des problèmes.
ECTS1
CM / TD / TP4 / 10 / 10
Typematiere

Viable
Viable100%
Complète86%
Manque pour « complète »
  • But du cours
  • Version EN relue

Acquis d'apprentissage visés

  • Maîtriser les paradigmes fondamentaux de la programmation, des langages et des algorithmes pour concevoir et développer des applications sur tout type d’environnement.
  • Identifier, classer les problèmes selon leur complexité (P, NP, NP-complet) et choisir des stratégies algorithmiques adaptées.

Prérequis

Modules Systèmes et réseaux et Développement des semestres précédents.

Programme

  • Fondements (Alphabet, mot, langage, Hiérarchie de Chomsky, Automates finis, ...) et langages réguliers
  • Langages hors contexte (Grammaires hors contexte, automates à pile, ...), analyse lexicale et syntaxique
  • Calculabilité et complexité (Machines de Turing, indécidabilité et complexité, ...)

Modalités d'évaluation

Deux contrôles continus au minimum, les TPs et un projet.

Bibliographie

"Michael Sipser — Introduction to the Theory of Computation — Cengage Learning John Hopcroft — Introduction to Automata Theory, Languages, and Computation — Pearson"

Supports

Diaporamas, fiches de travaux dirigés et de travaux pratiques.