Interprétation et compilation
Cours du semestre 5 de la Licence informatique & vidéoludisme.
Les langages de programmation sont les outils des informaticien·nes. Pour résoudre un problème, il est nécessaire d'utiliser un outil adapté. Être capable de créer son propre langage de programmation est donc l'abstraction ultime. L'objectif de ce cours est justement d'apprendre à implémenter soi-même un langage de programmation, de la lecture du code source jusqu'à sa traduction en assembleur.
Introduction
- Introduction et présentation du cours (fichiers).
- Chapitre 1 : Introduction à OCaml (fichiers).
- TP 1 : Calculatrice.
Assembleur
- Chapitre 2 : Introduction à l'assembleur MIPS avec SPIM.
- TP 2 : Premiers pas en MIPS avec SPIM (fichiers).
- Chapitre 3 : Production d'assembleur MIPS depuis OCaml (fichiers).
- TP 3 : Programmation MIPS (fichiers).
Interprétation
- Chapitre 4 : Représentation intermédiaire (fichiers).
- TP 4 : Un premier interpréteur + mini-projet.
Compilation
- Chapitre 5 : Compilation de langages imperatifs (fichiers).
- TP 5 : Compilation de langages impératifs.
- Chapitre 6 : Gestion de la mémoire.
- TP 6 : Gestion des chaînes de caractères constantes (fichiers).
Sémantique
- Chapitre 7 : Analyse sémantique.
- TP 7 : Typage (fichiers).
Syntaxe
- Chapitre 8 : Analyse lexicale (fichiers).
- Chapitre 9 : Analyse syntaxique (fichiers).
- TP 8 : Analyses lexicale et syntaxique (fichiers).
Projet
- TP 9 : Démarrage et méthodologie (fichiers).
Ancienne version du cours
Une ancienne version de ce cours, donnée avant 2021, est encore disponible ci-dessous.
Analyse de code source
- Chapitre 1 : Analyse lexicale (fichiers).
- TP 1 : Analyse lexicale avec Racket.
- Chapitre 2 : Analyse syntaxique (fichiers).
- TP 2 : Analyse syntaxique avec Racket.
- Chapitre 3 : Analyse sémantique (fichiers).
- TP 3 : Analyse sémantique (fichiers).
Interprétation
- Chapitre 4 : Écriture d'un interpréteur (fichiers).
- TP 4 : Calculatrice.
Programmation assembleur
- Chapitre 5 : MIPS et SPIM.
- TP 5 : Premiers pas en MIPS avec SPIM (fichiers).
Compilation
- Chapitre 6 : Compilation de langages impératifs (fichiers).
- TP 6 : Aide au démarrage du projet (fichiers).
- Chapitre 7 : La mémoire (fichiers).
- TP 7 : Programmation MIPS (fichiers).
- Chapitre 8 : Représentations intermédiaires.
- Chapitre 9 : Compilation vers le λ-calcul (fichiers).