支持并行化的VM for Scheme

时间:2010-12-08 08:24:37

标签: compiler-construction parallel-processing scheme interpreter vm-implementation

我在Java中编写了一个Scheme evaluator来做一些并行化技巧。除了我之外,它暂时无法使用,但我得到了一些结果。

前端和中端对我来说是好的,是我想要专注的部分,但我的后端很糟糕。它没有经过优化,速度很慢或缺乏正确的尾调优化。

所以我想要定位现有的VM。有谁知道这个候选人?它不一定是企业级虚拟机,但至少它应该

  • (相对)容易从Scheme
  • 定位
  • (合理)便携
  • 支持开箱即用的并行构造

4 个答案:

答案 0 :(得分:2)

Microsoft CLR / .NET VM支持并行性并具有尾调用指令。 Mono实现是免费软件,非常便携。

或者,您可以定位支持Racketparallel constructs,并且可以很容易地从您的Scheme系统中定位。

答案 1 :(得分:2)

如果您可以让您的Scheme在Erlang VM上编译并运行,那将会非常棒。人们已经thinking seriously about this并且a project that does the reverse

答案 2 :(得分:1)

Dybvig的Three Implementation Models For Scheme提供了一个非常简单的基于堆的编译器/ vm实现,具有适当的延续和尾部调用优化支持。代码在Scheme中,但它很容易翻译。我用它来实现Scheme in Javascript

答案 3 :(得分:0)

目标的另一个明显的VM是Java VM,它为您带来了Hotspot JITter的额外优势以及与其他Java程序的互操作性。

Bigloo将Scheme编译为Java VM字节码或者编译.NET cil。