2008-09-13 44 views
8

我建立一個編譯器,面向.NET和我以前直接生成CIL的DLR,但生成DLR樹將讓我的生活了相當數量的更容易。我支持一些動態特性,即創建運行時函數和鴨子類型,但絕大多數代碼是完全靜態的。使用的(主要)靜態語言編寫

所以,現在一個已經解釋,我有以下問題:

  • 一直在DLR被用於靜態編譯,小例以外的MSDN博客?
  • 如果是這樣,達到了什麼樣的表現?
  • 如果沒有,是否有什麼從根本上防止這種情況?
  • 有沒有比使用DLR或直接發射IL更好的代碼生成機制?

任何洞察到這個或博客/代碼/談話的引用將不勝感激。

回答

7

我還沒有意識到任何人都以這種方式使用DLR,儘管這絕對是其預期用例之一。考慮一個有趣的事情是,DLR的表達式樹已被合併與LINQ表達式樹,因此所生產的IL對LINQ在Visual Studio中的一些的尚未未經宣佈的未來版本將使用DLR代碼。

釋放DLR作爲開源的一個整潔的方面是,我們不知道公司以外的人可能會用它做什麼樣的有趣的事情:)。

+0

感謝您的迴應,我已經開始構建一些靜態編譯原型,所以我們將看看事情是如何發生的:) 我會說,我並不期待MS在某個相當模糊的站點上的回覆 - 很高興看到:) – 2008-09-13 18:54:51