Amphithéâtre Guillaume Budé, Site Marcelin Berthelot
En libre accès, dans la limite des places disponibles
-

Résumé

Le deuxième cours a étudié les structures de contrôles à une échelle plus grande que celle des commandes (statements) du premier cours : l'échelle des mécanismes de décomposition des programmes en sous-programmes, tels que les subroutines, les procédures, les fonctions et les méthodes. Ces mécanismes linguistiques sont apparus dès Fortran II (1958) et Algol (1960). Nous avons présenté les principaux choix de sémantique (passage d'arguments par valeur, par nom ou par référence) et d'implémentation (avec ou sans pile de blocs d'activation) pour ces sous-programmes. Ensuite, nous avons décrit plusieurs extensions qui compliquent le flux de contrôle engendré par les appels et retours de sous-programmes : les retours multiples de Fortran 77, les « goto » non locaux d'Algol et de Pascal, et les exceptions et les gestionnaires d'exceptions dans les langages contemporains. Enfin, nous avons décrit plusieurs structures de contrôles évoluées qui permettent d'inverser ou de symétriser le contrôle autour des appels de sous-programmes : les itérateurs, les générateurs, les coroutines symétriques, et les threads coopératifs.