Résumé
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.
À propos de ce résultat
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.