2008-09-13 10 views
8

Ich baue einen Compiler, der auf .NET abzielt und ich habe CIL direkt generiert, aber das Erzeugen von DLR-Bäumen wird mein Leben erheblich erleichtern. Ich unterstütze ein paar dynamische Funktionen, nämlich die Erstellung von Runtime-Funktionen und das Ducktyping, aber der Großteil des Codes ist komplett statisch.Verwendung der DLR für (in erster Linie) statische Sprachkompilierung

So, jetzt, dass erklärt worden ist, ich habe folgende Fragen:

  • Hat das DLR für statische Kompilierung verwendet wurden, außerhalb der kleinen Beispiele auf MSDN Blogs?
  • Wenn ja, welche Art von Leistung wurde erreicht?
  • Wenn nicht, gibt es etwas, das das grundlegend verhindert?
  • Gibt es bessere Mechanismen zum Generieren 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.

Antwort

7

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

Ein ordentlicher Aspekt der DLR als Open-Source-Freigabe ist, dass wir mit ihm keine Ahnung, welche Art von interessanten Dingen, die Menschen außerhalb des Unternehmens :) tun könnten haben.

+0

Vielen Dank für Ihre Antwort, ich habe begonnen, einige statische Kompilierung Prototypen zu bauen, so werden wir sehen, wie die Dinge gehen :) Ich werde sagen, ich habe nicht erwartet eine Antwort von jemandem bei MS auf einer ziemlich obskuren Website -- gut zu sehen :) –