Frage

Ich bin die Entwicklung einer virtuellen Maschine rein funktionale Programme, und ich möchte in der Lage sein, zu testen und zu verwenden, die die große Vielfalt von Haskell-Modulen bereits vorhanden.Die VM nimmt als input im wesentlichen Begriffe, die in der untypisierte lambda-Kalkül.Ich Frage mich, was wäre ein guter Weg, um zu extrahieren, so eine Darstellung von den modernen Haskell-Modulen (zB.mit MPTC s, pattern guards, etc.).Ich habe ein wenig Forschung, und es scheint nicht zu werden ein tool, das dies tut, schon würde ich gerne verwechselt werden), und das ist okay.Ich bin auf der Suche nach einem Ansatz.

GHC Core scheint zu operativ ausgerichtet, vor allem, da eines der Dinge, die VM hat die änderung der Bewertung deutlich.Gibt es irgendwelche zugänglich intermediate Vorstellungen, genauer der lambda-Kalkül?

War es hilfreich?

Lösung

Der Äußere Kern für die GHC ist in etwa so nah an den lambda-Kalkül als Sie dabei sind, mit GHC. Hier ein link ist gerade zu dem Ausdruck geben, wenn Sie wollen, um zu springen rechts in.

  • Bibliothek für die Verarbeitung der externen core-Dateien
  • Wie generieren externer core Prozessor mit GHC
  • Eine Akademische Papier auf seine Verwendung

Andere Tipps

EHC hatte früher diesen Fluss zwischen den Darstellungen:

HS -> EH -> CORE -> Grin -> Dumm

HS ist offensichtlich Haskell, EH ist weniger zuckerhaltig und vom Typ Checker verwendet. Kern ist das Analogon zu GHCs Kern und Grinsen und albern sind niedriger.

Es gibt ein Papier, das die Architektur von EHC von Jeroen Fokker beschreibt, wo ich das oben genannte geschnitten habe, aber es ist wahrscheinlich veraltet (ich weiß nicht, dass EHC die alberne Darstellung immer noch verwendet). Ich denke, dass EHC Parser und hübsche Drucker für jede seiner internen Darstellungen liefert, was praktisch wäre.

Es gibt auch York.core von YHC, von dem ich gesehen habe, dass die Leute von GHC Core günstiger sprechen, aber ich weiß nicht, ob es ein Mittel gibt, um "moderne" Haskell nach York zu kompilieren.

Hm ... jemals von dem gehört Haskell Kernel? Ich bin mir nicht sicher, was Sie brauchen. Es ist eine Art von Deckared Haskell und ist im Wesentlichen im Haskell -Bericht definiert. Ich bin mir nicht sicher, ob Sie das brauchen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top