10

純粋に機能的なプログラム用の仮想マシンを開発しています。すでに利用可能なさまざまな Haskell モジュールをテストして使用できるようにしたいと考えています。VM は、本質的に型なしラムダ計算の項を入力として受け取ります。最新の Haskell モジュール (たとえば、MPTC、パターン ガードなど) からそのような表現を抽出する良い方法は何でしょうか。私は少し調査を行いましたが、これを行うツールはまだないようです (間違っていれば幸いです)、それで問題ありません。アプローチを探しています。

特にVMが行うことの1つは評価順序を大幅に変更することであるため、GHCコアは操作に集中しすぎているようです。ラムダ計算により密接に対応するアクセス可能な中間表現はありますか?

4

3 に答える 3

5

GHC の外部コアは、GHC を使用して取得しようとしているラムダ計算とほぼ同じです。すぐにジャンプしたい場合は、式タイプへの直接のリンクを次に示します。

于 2010-12-29T06:45:46.883 に答える
3

EHCは、表現間にこのフローを持っていました。

HS->EH->コア->グリン->愚かな

HSは明らかにHaskellであり、EHは糖分が少なく、タイプチェッカーで使用されます。CoreはGHCのCoreに類似しており、GrinとSillyはそれよりも低レベルです。

Jeroen FokkerによるEHCのアーキテクチャを説明する論文があります。ここでは、上記を引用しましたが、おそらく古くなっています(EHCがまだ愚かな表現を使用していることはわかりません)。EHCは、内部表現ごとにパーサーときれいなプリンターを提供していると思います。これは便利です。

YHCのYork.Coreもありますが、GHC Coreよりも好意的に話されていますが、「モダンな」HaskellをYork.Coreにコンパイルする手段があるかどうかはわかりません。

于 2010-12-29T08:53:53.563 に答える
1

うーん... Haskellカーネルについて聞いたことがありますか? 何が必要なのかわからない。これはある種の脱糖 Haskell であり、基本的に Haskell レポートで定義されています。これが必要かどうかはわかりません。

于 2010-12-29T05:45:59.260 に答える