Haskellを脱着するための戦略
-
13-10-2019 - |
質問
純粋に機能的なプログラム用の仮想マシンを開発しています。すでに利用可能なさまざまなHaskellモジュールをテストして使用できるようにしたいと考えています。 VMは、本質的に型のないラムダ計算で入力として入力されます。私は、現代のHaskellモジュール(MPTC、パターンガードなど)からこのような表現を抽出する良い方法は何だろうと思っています。私は少し調査しましたが、これをすでに行うツールはないようです(私は間違っていることを嬉しく思います)、それは大丈夫です。アプローチを探しています。
GHC Coreは、特にVMが行うことの1つは評価順序を大幅に変更することであるため、運用上焦点が強すぎるようです。ラムダ計算に近い対応するアクセス可能な中間表現はありますか?
他のヒント
EHCは、以前は表現間にこの流れを持っていました。
hs-> eh-> core->笑う - >愚かな
HSは明らかにHaskellです。EHは砂糖ではなく、タイプチェッカーで使用されています。コアはGHCのコアのアナログであり、笑いと愚かなものはそれよりも低いレベルです。
Jeroen FokkerによるEHCのアーキテクチャを説明する論文があります。ここでは上記のことを書きましたが、おそらく時代遅れです(EHCがまだ愚かな表現を使用していることはわかりません)。 EHCは、それぞれの内部表現にパーサーときれいなプリンターを提供していると思いますが、これは便利です。
YHCのYork.coreもあります。これは、人々がGHC Coreについてより好意的に話すのを見てきましたが、「モダンな」HaskellをYork.coreにコンパイルする手段があるかどうかはわかりません。
うーん...聞いたことがあります Haskell Kernel?何が必要なのかわかりません。それはある種の絶滅したハスケルであり、Haskellレポートで本質的に定義されています。これがあなたが必要とするものであるかどうかはわかりません。