Nicolas Méloni
Maître de conférences en informatique, Université de Toulon

I53 - Compilation et théorie des langages

La compilation est un processus essentiel dans le domaine de l'informatique qui consiste à transformer un programme écrit dans un langage de haut niveau en un programme équivalent en langage machine, compréhensible par un ordinateur. La théorie des langages formels accompagne ce processus en fournissant un cadre mathématique pour décrire et analyser la structure des langages de programmation. Ce cours explore les principes fondamentaux de la compilation et de la théorie des langages via la conception d'un compilateur élémentaire du langage algorithmique utilisé en cours vers la machine RAM déjà étudiée en L2 à l'aide des outils flex et bison.

Prérequis

Objectifs

À la fin de ce cours, les étudiants devraient être en mesure de:

Ressources pédagogique

Évaluation

Sommaire

Chapitre 1: Introduction à la compilation

Chapitre 2: Évaluation des expressions arithmétiques

Chapitre 3: Analyse lexicale

Chapitre 4: Analyse syntaxique

Chapitre 5: Conception d'un compilateur ALGO->RAM

Travaux Pratiques

  1. gcc, interprête Python, Makefile:

  2. Traducteur d'expressions arithmético-booléennes élémentaire:

  3. Compilateur d'expressions régulières en automate fini

  4. Introduction à Flex et *Bison

  5. Compilateur Algo / RAM