1

私は、いくつかの並列化のトリックを行うJavaでSchemeエバリュエーターを作成しました。今のところ私以外は使えませんが、結果は出ています。

フロントエンドとミドルエンドは私の目的には問題がなく、集中したい部分ですが、バックエンドは最悪です。最適化されておらず、低速であるか、適切な末尾呼び出しの最適化が不足しています。

その代わりに、既存のVMをターゲットにします。誰かがこれの候補を知っていますか?エンタープライズ対応のVMである必要はありませんが、少なくとも

  • スキームから(比較的)簡単にターゲットにできます
  • (合理的に)ポータブルであること
  • 箱から出して並列構造をサポート
4

4 に答える 4

2

Microsoft CLR / .NET VMは並列処理をサポートし、末尾呼び出し命令を備えています。Monoの実装は自由ソフトウェアであり、非常に移植性があります。

または、並列構造をサポートし、Schemeシステムからのターゲット設定を非常に簡単にするRacketをターゲットにすることもできます。

于 2010-12-08T13:31:20.313 に答える
2

スキームをErlangVMでコンパイルして実行できるとしたら、それは素晴らしいことです。すでに人々はこれについて真剣に考えており、その逆を行うプロジェクトがあります

于 2010-12-08T17:02:35.113 に答える
1

DybvigのSchemeの3つの実装モデルは、適切な継続と末尾呼び出しの最適化をサポートする、非常に単純なヒープベースのコンパイラ/VM実装を提供します。コードはSchemeにありますが、簡単に翻訳できます。これを使用して、JavascriptでSchemeを実装しました。

于 2010-12-08T19:21:51.153 に答える
0

ターゲットとするもう1つの明らかなVMはJavaVMです。これにより、HotspotJITterの追加の利点と他のJavaプログラムとの相互運用性がもたらされます。

Biglooは、SchemeをJavaVMバイトコードまたはthr.NETcilにコンパイルします。

于 2010-12-08T20:22:22.157 に答える