8 Stimmen

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

Ich baue einen Compiler, der auf .NET abzielt, und ich habe bisher CIL direkt generiert, aber die Generierung von DLR-Bäumen wird mein Leben um einiges einfacher machen. Ich unterstütze ein paar dynamische Funktionen, nämlich die Erstellung von Laufzeitfunktionen und Ducktyping, aber der größte Teil des Codes ist komplett statisch.

Nachdem das nun geklärt ist, habe ich folgende Fragen:

  • Wurde das DLR für die statische Kompilierung verwendet, abgesehen von kleinen Beispielen in MSDN-Blogs?
  • Wenn ja, welche Leistung wurde erzielt?
  • Wenn nicht, gibt es etwas, das dies grundsätzlich verhindert?
  • Gibt es bessere Mechanismen zur Codegenerierung als die Verwendung des DLR oder die direkte Ausgabe von AWL?

Jeder Einblick in dieses Thema oder Hinweise auf Blogs/Codes/Vorträge wären sehr willkommen.

7voto

Curt Hagenlocher Punkte 20150

Mir ist noch nicht bekannt, dass jemand das DLR auf diese Art und Weise verwendet, obwohl dies definitiv einer der vorgesehenen Anwendungsfälle ist. Eine interessante Sache ist, dass die Ausdrucksbäume des DLR mit den LINQ-Ausdrucksbäumen zusammengeführt wurden, so dass die für LINQ in einer noch nicht angekündigten zukünftigen Version von Visual Studio erzeugte AWL den DLR-Code verwenden wird.

Ein netter Aspekt der Veröffentlichung des DLR als Open Source ist, dass wir keine Ahnung haben, was für interessante Dinge Leute außerhalb des Unternehmens damit machen könnten :).

0 Stimmen

Vielen Dank für Ihre Antwort, ich habe begonnen, einige statische Kompilierung Prototypen zu bauen, so werden wir sehen, wie die Dinge gehen :) Ich muss sagen, dass ich keine Antwort von jemandem von MS auf einer ziemlich obskuren Seite erwartet habe - gut zu sehen :)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X