Strategies avancees pour la gestion de blocs de controle
Institution:
Paris 6Disciplines:
Directors:
Abstract EN:
Pas de résumé disponible.
Abstract FR:
Un bloc de controle est une structure permettant de sauvegarder, entre autres, les variables locales des procedures et l'adresse de retour vers l'appelant. Pour des raisons d'efficacite, la plupart des langages restreignent les appels et les retours des procedures a un ordre lifo afin que les blocs de controle puissent etre geres en pile. Par consequent, les continuations de premiere classe, les coroutines ou les processus legers (threads) ne sont procures qu'a titre exceptionnel, car les blocs de controle ne peuvent plus etre geres en une seule pile. Et l'utilisation meme de piles multiples serait trop consommatrice en espace memoire pour une utilisation massive. Cette these est consacree a la conception et a la realisation de strategies de gestion de blocs de controle pour les continuations de premiere classe, les coroutines et les threads. Nos strategies sont efficaces simultanement en espace memoire, car les blocs de controle sont alloues dans un tas, et en temps cpu, car nous utilisons deux techniques qui rendent le recyclage des blocs de controle aussi rapide que leur recyclage par desempilement dans un langage classique. Premierement, pour les continuations de premiere classe, nous allouons les blocs de controle dans une pile fantome qui peut s'evanouir, s'il en est besoin, pour devenir une partie du tas. Et deuxiemement, pour les coroutines et les threads, nous utilisons un gc a generations ou les deux premieres generations sont reservees aux blocs de controle. Nous presentons aussi une implantation et des mesures qui attestent l'efficacite de notre approche