Home Formations et programmes Formation Ingénieur voie classique Paris Module II.3516

Module II.3516

Imprimer

II.3516 Langages et compilation (2,5 crédits)

Prérequis : II.2404
Niveau : Avancé
Responsable du module : Olivier Hermant
Déroulement : 7 * 4 heures de cours-TP
Nbre d'heures : 28 h
Evaluation : Projet (40%) et Examen (60%)

Contexte

Les langages de programmation sont les fondements qui permettent aux programmeurs de contrôler la machine et de lui faire résoudre des problèmes plus ou moins complexes. Suivant le domaine d’application visé, le niveau d’abstraction et d’expressivité du langage varie, ce qui explique la grande diversité de langages disponibles sur le marché. Les compilateurs sont des logiciels qui, à partir d’un programme écrit dans un langage donné, génèrent le code directement exécutable par la machine. La construction d’un langage et de son compilateur associé est un processus complexe qui sera détaillé par la pratique dans ce module.

Objectifs

Compétences

Construction de langages, conception et implémentation d’interpréteurs et de compilateurs.

Connaissances

Concepts

  • Analyseurs lexicaux
  • Syntaxe et grammaire
  • Arbres Abstraits de Syntaxe (AST)
  • Inférence de types
  • Algorithmes de compilation
  • Structure des compilateurs (Visiteurs d’AST)

Savoir-faire

  • Définition d’une grammaire BNF
  • Utilisation de générateurs de parsers en Java (JFlex, CUP, ou équivalents)
  • Implémentation de langages et de compilateurs

Approche pédagogique

Présentation des fondamentaux en cours avec des exercices et études de cas (environ 60% du temps). Implémentation sous forme d’un projets individuel ou en binôme.

Bibliographie