深入DLR语言——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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值