言語を設計しています。まず、生成するコードを決定します。この言語には、レキシカル クロージャと、javascript に似たプロトタイプ ベースの継承があります。しかし、私は gc のファンではないので、できる限り避けようとしています。質問: スタック フレームをヒープに割り当ててガベージ コレクターに任せずにクロージャーを実装するエレガントな方法はありますか?
私の最初の考え:
- 参照カウントを使用し、サイクルをガベージ コレクションします (これはあまり好きではありません)。
- スパゲッティ スタックを使用します (非常に非効率に見えます)。
- クロージャの形成を一部のコンテキストに制限して、リターン アドレス スタックとローカル スタックを回避できるようにします。
高級言語を使用したり、呼び出し規約に従ったりしないので、好きなだけスタックを粉砕できます。
(編集:参照カウントがガベージコレクションの一種であることは知っていますが、より一般的な意味でgcを使用しています)