Mediaspace scheduled maintenance: Aug 25, 2026 07:00 - 12:00 AM. During this time, videos will be temporarily unavailable. Check status updates.
En informatique, la continuation d'un système est son futur, c'est-à-dire la suite des instructions qu'il lui reste à exécuter à un moment précis. C'est un point de vue pour décrire l'état de la machine. Dans certains langages de programmation, les continuations peuvent être manipulées explicitement en tant qu'objets du langage à part entière : on peut stocker la continuation courante dans une variable que l'on peut donc manipuler en tant que telle ; puis plus loin, on peut restaurer la continuation, ce qui a pour effet de dérouter l'exécution du programme actuel vers le futur que l'on avait enregistré. En C, l'instruction setjmp permet de capturer une continuation (en fait, stocker la valeur du compteur ordinal dans une variable), et l'instruction longjmp permet de dérouter le programme vers une continuation enregistrée. En programmation fonctionnelle, une continuation prend la forme d'une fonction qui peut prendre divers arguments (qui influent sur la valeur de retour de l'instruction qui avait « saisi » la continuation courante) et qui n'a pas de valeur de retour (en fait ne finit pas du point de vue de l'appelant, car le programme est dérouté). Exemple en Scheme : (define (f k) (display "toto\n") (k "titi\n") (display "tata\n")) (display (call-with-current-continuation f)) a pour sortie à l'écran : toto titi L'instruction (display "tata\n") a été ignorée. Explication : nous commençons par définir une fonction f, puis nous demandons d'afficher le résultat (display) de (call-with-current-continuation f) ; l'instruction (call-with-current-continuation f) a pour effet de capturer la continuation courante (qui est d'afficher la valeur de retour grâce à la commande display, puis de terminer le programme) et de la passer en argument à la fonction f ; la fonction f est une séquence de trois instructions, dont la deuxième appelle la continuation k passée en argument avec la valeur "titi" donc sort de la fonction puisque la continuation a été capturée à l'extérieur ; après cela, la continuation s'exécute normalement : display s'exécute avec la valeur de retour "titi" de (call-with-current-continuation f) et le programme termine.
Anastasia Ailamaki, Georgios Psaropoulos
Daniel Kressner, Axel Elie Joseph Séguin
Jian Wang, Mingkui Wang, Olivier Schneider, Zhirui Xu, Yiming Li, Yi Zhang, Lei Zhang, Yi Wang, Aurelio Bay, Ho Ling Li, Guido Haefeli, Tatsuya Nakada, Christoph Frei, Mark Tobin, Frédéric Blanc, Maurizio Martinelli, Vladislav Balagura, Donal Patrick Hill, Liang Sun, Lesya Shchutska, François Fleuret, Mirco Dorigo, Liupan An, Renato Quagliani, Hang Yin, Guido Andreassi, Aravindhan Venkateswaran, Elena Graverini, Michel De Cian, Vladimir Macko, Federico Leo Redi, Luis Miguel Garcia Martin, Sebastian Schulte, Tommaso Colombo, Vitalii Lisovskyi, Tara Nanut, Minh Tâm Tran, Violaine Bellée, Guillaume Max Pietrzyk, Pavol Stefko, Pietro Marino, Maria Vieites Diaz, Matthieu Philippe Luther Marinangeli, Serhii Cholak, Veronica Sølund Kirsebom, Maria Elena Stramaglia, Surapat Ek-In, Ana Bárbara Rodrigues Cavalcante, Luca Pescatore, Sara Celani, Preema Rennee Pais, Maxime Schubiger, Plamen Hristov Hopchev, Carina Trippl, Thi Dung Nguyen, Alison Maria Tully, Olivier Göran Girard, Mâu Chung Nguyên, Simone Meloni, Xiaoqing Zhou, Elisabeth Maria Niel, Alexandre Brea Rodriguez