Logo

Structures de contrôle: de «goto» aux effets algébriques

Xavier Leroy

Collège de France, chaire Sciences du logiciel, 2023-2024

Résumé

Un programme informatique décrit non seulement les calculs élémentaires à effectuer sur les données d'entrée, mais aussi dans quel ordre et sous quelles conditions effectuer ces calculs. Pour exprimer cet enchaînement des calculs, les langages de programmation fournissent des mécanismes appelés structures de contrôle. Depuis les branchements « goto » des premiers langages de programmation, de nombreuses structures de contrôle ont été mises en œuvre : conditionnelles, boucles, procédures et fonctions, exceptions, itérateurs, coroutines, … Après des rappels sur ces structures classiques et sur leur contexte historique d'apparition, le cours développe une approche plus moderne du contrôle vu comme un objet manipulable par le programme, permettant ainsi au programmeur de définir ses propres structures de contrôles. Initiée au siècle dernier par les travaux sur les continuations et leurs opérateurs de contrôle, cette approche est en plein renouvellement avec la théorie des effets algébriques et sa déclinaison sous forme d'effets et de gestionnaires d'effets définis par le programmeur dans des langages comme OCaml 5.

Cours

Les enregistrement vidéo sont disponibles sur le site du Collège de France.

  1. Introduction et plan du cours.
  2. Naissance des structures de contrôle: du «goto» à la programmation structurée.
  3. Le contrôle non local: des subroutines aux fonctions et aux coroutines.
  4. Chassez le contrôle...: la programmation déclarative.
  5. Programmer ses structures de contrôle: continuations et opérateurs de contrôle.
  6. Pratique des effets: des exceptions aux gestionnaires d’effets.
  7. Théorie des effets: des monades aux effets algébriques.
  8. Typage statique des effets.
  9. Logiques de programmes pour le contrôle et les effets.

Séminaire

Certains exposés étaient en français, d'autres en anglais. Les enregistrements vidéo et les présentations sont disponibles sur le site du Collège de France.


Xavier.Leroy@college-de-france.fr