Comment implémenter les continuations ?

Je travaille sur un interpréteur Scheme écrit en C. Actuellement, il utilise la pile d'exécution C comme sa propre pile, ce qui présente un problème mineur avec l'implémentation des continuations. Ma solution actuelle consiste à copier manuellement la pile C dans le tas, puis à la recopier si nécessaire. En plus de ne pas être standard C, cette solution n'est pas idéale.

Quel est le moyen le plus simple d'implémenter des continuations pour Scheme en C ?

请先 登录 后评论

2 réponses

Patrick

Utilisez plutôt une pile explicite.

请先 登录 后评论
olliej

Patrick a raison, la seule façon de le faire est d'utiliser une pile explicite dans votre interpréteur et de hisser le segment de pile approprié dans le tas lorsque vous devez convertir en une continuation.

C'est fondamentalement la même chose que ce qui est nécessaire pour prendre en charge les fermetures dans les langues qui les prennent en charge (les fermetures et les continuations étant quelque peu liées).

请先 登录 后评论