深入DLR語言 - IronJS

jopen 12年前發布 | 9K 次閱讀 DLR

查看英文原文: Inside A DLR Language – IronJS

IronJSDLR 上的 ECMAScript 3.0 實現。其作者 Fredrik Holmström最近在i-programmer 的訪談上深入討論在 DLR 上做語言實現的各種細節。

Fredrik 特別強調 DLR 為他省下了很大的工作量:

DLR 自帶了很多好東西。

語言互操作是其中之一。DLR 本身代碼的堅實可靠。輸出 IL 等很大比例的設施它都幫你準備好了。

Fredrik 指出 DLR 有兩種用法,一種是通過特殊的 binder 類/對象來關聯操作,另一種是把 DLR 當作 IL 生成器和編譯工具,然后自行做綁定。前一種速度較慢,IronJS 用的是后一種方案。根據去年的基準測試報告,速度已經超過 IE8 的引擎。

自己做 binding 的副作用,是犧牲了與其他 DLR 語言互操作的天然能力。

IronJS 的解析器當前用F#寫成,而核心運行時是用 C# 寫的。為了提升速度,Fredrik 計劃在下一版本中將所有的F#代碼替換為C#。他又在和 Scott Hanselmann 進行的訪談中提到,IronJS 既然建立在 CLR 之上,撞上性能墻只是遲早問題,無法跟原生代碼的 V8相比。

如果你想在 DLR 上實現自己的語言,閱讀文檔是個好的開始。“Iron”系列語言的源代碼也是很好的閱讀材料,如 IronPython 或者 IronRuby

來自: InfoQ

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!