Programmation Avancée

ENS Paris-Saclay, L3, 2021-2022

Les cours sont donnés par Jacques-Henri Jourdan et Armaël Guéneau, et les TPs par Xavier Denis.

Informations pratiques

Les cours et TP se passent le vendredi . Les cours sont de 11h à 13h en salle 1Z53 et les TPs de 14h à 16h en salle 1S53 (cf l'emploi du temps).

Projets

L'évaluation de ce cours se fait avec un examen final et deux projets.

Le premier projet est l'implémentation d'une bibliothèque de BDD en Rust, en suivant les instructions données dans le squelette disponible ici.

Le deuxième projet est l'implémentation d'une procédure de défonctionnalisation en OCaml. Voir le sujet et le squelette de code.

La date de rendu pour les deux projets est le 8 mai à 23h59. Le rendu est à faire par email à jacques-henri.jourdan [at] normalesup [dot] org pour le premier projet, et armael.gueneau [at] inria [dot] fr pour le deuxième.

Cours 0 (21 janvier) : présentation

Cours 1 (4 février) : OCaml : modèle d'exécution et représentation des valeurs

Cours 2 (11 février) : modules

Cours 3 (18 février) : introduction à Rust (types, propriété, emprunts et durées de vie)

Cours 4 (25 février) : gestion mémoire

Cours 5 (11 mars) : GADTs

Cours 6 (18 mars) : surcharge

Cours 7 (25 mars) : fonctions comme valeur de première classe

Cours 8 (8 avril): effets et monades

Cours 9 (15 avril): continuations et effets de contrôle

Cours 10 (22 avril): programmation «avancée» en Rust

Cours 11 (13 mai): parallélisme et concurrence

Cours 12 (20 mai): programmation orientée objet