Verwendung des DLR für (hauptsächlich) statische Sprachkompilierung

8

Ich erstelle einen Compiler, der auf .NET abzielt, und ich habe CIL vorher direkt generiert, aber das Erzeugen von DLR-Bäumen wird mein Leben erheblich erleichtern. Ich unterstütze ein paar dynamische Features, nämlich die Erstellung von Runtime-Funktionen und das Ducktyping, aber die große Mehrheit des Codes ist komplett statisch.

Nun, da das erklärt wurde, habe ich folgende Fragen:

  • Wurde das DLR außerhalb von kleinen Beispielen in MSDN-Blogs für die statische Kompilierung verwendet?
  • Wenn ja, welche Art von Leistung wurde erreicht?
  • Wenn nicht, gibt es etwas, das das grundlegend verhindert?
  • Gibt es bessere Mechanismen zum Erzeugen von Code als entweder den DLR zu verwenden oder IL direkt zu emittieren?

Jeder Einblick in diese oder Verweise auf Blogs / Code / Gespräche würde sehr geschätzt werden.

    
Cody Brocious 13.09.2008, 10:58
quelle

1 Antwort

7

Ich bin mir nicht bewusst, dass jemand das DLR auf diese Weise benutzt, obwohl dies definitiv einer seiner beabsichtigten Anwendungsfälle ist. Eine interessante Sache ist, dass die Ausdrucksbäume des DLR mit LINQ-Ausdrucksbäumen zusammengelegt wurden, so dass der IL, der für LINQ in einer noch nicht angekündigten zukünftigen Version von Visual Studio erzeugt wird, den DLR-Code verwendet.

Ein guter Aspekt bei der Freigabe des DLR als Open Source ist, dass wir keine Ahnung haben, welche interessanten Dinge die Leute außerhalb des Unternehmens machen könnten:).

    
Curt Hagenlocher 13.09.2008, 13:30
quelle