我正在开发用于纯粹功能程序的虚拟机,我希望能够测试和使用已经可用的各种Haskell模块。 VM在未型lambda演算中基本上将输入作为输入。我想知道从现代Haskell模块中提取这种表示的好方法(例如,使用MPTC,图案后卫等)。我做了一些研究,似乎没有一个已经这样做的工具(我很高兴被误解了),没关系。我正在寻找一种方法。

GHC Core似乎过于运营,尤其是因为VM所做的一件事是显着更改评估顺序。是否有任何与Lambda演算更紧密对应的可访问中间表示?

有帮助吗?

解决方案

GHC的外部核心与使用GHC一样靠近Lambda演算。 这里 如果您想直接跳入,则是直接指向表达式类型的链接。

  • 图书馆 用于处理外部核心文件
  • 如何 产生 GHC的外核
  • 学术 关于它的使用

其他提示

EHC曾经在表示之间具有这种流程:

HS-> EH->核心 - > grin->愚蠢

HS显然是Haskell,EH不太含糖,被类型检查器使用,Core是GHC核心的类似物,而Grin和愚蠢的水平远低于此。

有一篇论文描述了Jeroen Fokker的EHC架构,我在这里撰写了上述内容,但可能已经过时了(我不知道EHC仍然使用愚蠢的表示)。我认为EHC为其每个内部表示形式提供了解析器和漂亮的打印机,这将非常方便。

还有YHC的约克(YHC),我看到人们对当时的GHC核心更加受欢迎,但我不知道是否有一种将“现代” Haskell汇编成约克的方法。

嗯...听说过 Haskell内核?我不确定您需要什么。这是某种Desugared Haskell,在Haskell报告中基本上是定义的。我不确定这是否是您需要的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top