深入DLR語言 - IronJS
查看英文原文: Inside A DLR Language – IronJS
IronJS 是 DLR 上的 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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!