3

トランポリンは TCO を実装する効果のない方法だと聞いたことがあります。DrScheme(技術的にはPLAIスキーム)はどのようにそれを行うのですか?それは「正しい」方法で実行されますか (つまり、スタックとトランポリンを通過するのではなく、テール コールに直接分岐するアセンブリ コードを生成します)?

4

3 に答える 3

5

MzScheme (現在の PLT スキーム) の主な実装者である Matthew Flatt は、2008 年 6 月に私に、彼らが仮想マシン コードにコンパイルしたことがあったと語った。ただし、現在、システムは十分に成熟しており、x86 では単純な JIT を使用しています。どちらの場合も、トランポリンはありません--- PLT スキームの人たちは自分たちのビジネスを知っています。

于 2008-12-06T03:28:50.347 に答える
2

PLT スキームの実装者は、Google グループで非常に活発に活動しており、コードを書いている人からすぐに回答を得ることができます。

ただし、彼らがSOを読んでいるかどうかはわかりませんので、おそらくそこで尋ねるのが最善の策でしょう。

于 2008-12-05T17:15:20.227 に答える
1

トランポリンは、Scheme コードを適切なテール呼び出しをサポートしないターゲット言語 X (C、Java など) に変換する実装で使用されます。PLT スキームは JIT コンパイルを採用しているため、トランポリンは必要ありません。使用される正確な実装戦略については、PLT メーリング リストで質問してください。

PS: トランポリンの詳細については、 ReadScheme.orgで入手できるさまざまな「Compile Scheme to C」論文を参照してください。

于 2008-12-07T20:55:30.747 に答える