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

Theory of Languages

FR EN ⬇ PDF
RéférentThis course introduces the formal foundations of programming languages: how to describe, recognize, and transform a language, and what the intrinsic limits of computation are. It aims to understand the mechanisms underlying the design of compilers and interpreters, to evaluate the expressiveness of different formalisms (automata, grammars, Turing machines), and to assess the algorithmic complexity of problems.
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

  • Master the fundamental paradigms of programming, languages, and algorithms to design and develop applications for any type of environment.
  • Identify and classify problems according to their complexity (P, NP, NP-complete) and select appropriate algorithmic strategies.

Prérequis

System and Network modules and Development modules from previous semesters.

Programme

  • Foundations (Alphabet, word, language, Chomsky hierarchy, finite automata, etc.) and regular languages
  • Context-free languages (Context-free grammars, pushdown automata, etc.), lexical and syntactic analysis
  • Computability and complexity (Turing machines, undecidability and complexity, etc.)

Modalités d'évaluation

At least two continuous assessments, practical work, and a project.

Bibliographie

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

Supports

Slides, directed work sheets, and practical work sheets.