写点什么

深入 DLR 语言——IronJS

  • 2012-07-25
  • 本文字数:489 字

    阅读完需:约 2 分钟

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

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

2012-07-25 14:023430
用户头像

发布了 225 篇内容, 共 71.7 次阅读, 收获喜欢 52 次。

关注

评论

发布
暂无评论
发现更多内容

Redis 的持久化机制和AOF文件重写原理

Java 程序员 后端

Redis(二十一):复制

Java 程序员 后端

Redis持久化方式AOF技术原理?一文带你从底层彻底吃透

Java 程序员 后端

Redis(二十六):Sentinel—

Java 程序员 后端

Redis(十六):事件

Java 程序员 后端

RocketMQ一行代码造成大量消息发送失败

Java 程序员 后端

Redis安装与部署新手入门教程

Java 程序员 后端

RocketMQ 千锤百炼--哈啰在分布式消息治理和微服务治理中的实践

Java 程序员 后端

Redis实现feed流

Java 程序员 后端

Serverless 如何在阿里巴巴实现规模化落地?

Java 程序员 后端

Redis哨兵模式原理剖析,监控、选主、通知客户端你真的懂了吗?

Java 程序员 后端

Redis(十一):键的生存时间与过期时间

Java 程序员 后端

SAP为Java 16贡献JEP 387 “弹性元空间”

Java 程序员 后端

Redis哨兵原理,我忍你很久了!

Java 程序员 后端

Redis实现feed流(1)

Java 程序员 后端

Redis小白入门教程

Java 程序员 后端

Redis常用命令总结

Java 程序员 后端

Redis(十八):服务器

Java 程序员 后端

RocketMQ msgId与offsetMsgId释疑(实战篇)

Java 程序员 后端

【Flutter 专题】12 图解圆形与权重/比例小尝试

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 11月日更

Redis(四):整数集合

Java 程序员 后端

redis之单机多节点集群

Java 程序员 后端

RocketMQ消息丢失场景及解决办法(1)

Java 程序员 后端

macOS 环境安装Flutter

坚果

flutter 11月日更 安装部署

redis数据迁移之redis-shake

Java 程序员 后端

Redis的各种用途以及使用场景(1)

Java 程序员 后端

Redis的各种用途以及使用场景

Java 程序员 后端

RocketMQ 主从同步读写分离机制

Java 程序员 后端

RocketMQ消息丢失场景及解决办法

Java 程序员 后端

RocketMQ消息轨迹-设计篇

Java 程序员 后端

RocketMQ源码分析之NameServer

Java 程序员 后端

深入DLR语言——IronJS_语言 & 开发_Roopesh Shenoy_InfoQ精选文章