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 : boucles, procédures et fonctions, exceptions, itérateurs, coroutines, exceptions… Après des rappels sur ces structures classiques et sur leur contexte historique d'apparition, le cours développera 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
Structures de contrôle : de « goto » aux effets algébriques
→