1

Ich habe eine Scheme evaluator in Java geschrieben, die einige Parallelisierungstricks durchführt. Es ist für niemanden außer mir für den Moment verwendbar, aber ich bekomme einige Ergebnisse.VM für Scheme mit Unterstützung für die Parallelisierung

Das Frontend und Middle-End sind für meine Zwecke in Ordnung und sind die Teile, auf die ich mich konzentrieren möchte, aber mein Backend saugt. Es ist nicht optimiert und ist langsam oder es fehlt die richtige Tail-Call-Optimierung.

Also stattdessen möchte ich eine vorhandene VM zielen. Kennt jemand einen Kandidaten dafür? Es muss nicht ein Enterprise-Ready-VM, aber zumindest sollte es

  • sein (relativ) leicht aus Schema
  • seine (vernünftigerweise) tragbare
  • Unterstützung parallel Konstrukte aus dem Kasten zielen

Antwort

2

Die Microsoft CLR/.NET-VM unterstützt Parallelität und verfügt über eine Tail-Call-Anweisung. Die Mono-Implementierung ist freie Software und ziemlich portabel.

Alternativ können Sie auch auf Racket zielen, was parallel constructs unterstützt und es sehr einfach machen würde, von Ihrem Scheme-System aus zu zielen.

1

Dybvig Three Implementation Models For Scheme bietet eine sehr einfache Heap-basierte Compiler/VM-Implementierung mit der richtigen Fortsetzung und Tail-Call-Optimierung-Unterstützung. Der Code ist in Schema, aber es ist leicht zu übersetzen. Ich habe es verwendet, um Scheme in Javascript zu implementieren.

0

Die andere offensichtliche VM zum Ziel ist die Java VM, die Ihnen die zusätzlichen Vorteile des Hotspot JITter und die Interoperabilität mit anderen Java-Programmen bietet.

Bigloo kompiliert Scheme zu Java VM Bytecode oder auch .NET cil.

Verwandte Themen