速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

深入 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:023114
用户头像

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

关注

评论

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

模块九作业

天琪实刚亮

TOGAF认证自学宝典V2.0

涛哥 数字产品和业务架构

企业架构 TOGAF

架构实战营 - 第 6 期 毕业总结

乐邦

「架构实战营」

TCP拥塞控制详解 | 3. 设计空间

俞凡

算法 网络 TCP拥塞控制

疫情常态化大背景下,关于远程办公的思考|社区征文

如浴春风

初夏征文

毕业总结

天琪实刚亮

聊聊Flink框架中的状态管理机制

百思不得小赵

大数据 flink 状态 7月月更

rxjs Observable filter Operator 的实现原理介绍

汪子熙

typescript 响应式编程 angular RXJS 7月月更

「Docker 那些事儿」还不会安装Docker?建议看这篇就够了

Albert Edison

7月月更

cgroup简介

总想做点什么

Cgroups

自动渗透测试工具核心功能简述

穿过生命散发芬芳

渗透测试 7月月更

远程办公之如何推进跨部门项目协作 | 社区征文

Tech技术攻关

远程办公 7月日更 项目协调 初夏征文 工作协调

毕业总结

大眼喵

「架构实战营」

一入“远程”终不悔,几人欢喜几人愁。| 社区征文

法医

初夏征文

Vuex(二)

小恺

7月月更

项目协作的进度如何推进| 社区征文

卢卡多多

初夏征文

x86汇编语言-从实模式到保护模式 笔记

贾献华

7月月更

OpenHarmony应用开发之ETS开发方式中的Image组件

坚果

HarmonyOS Open Harmony OpenHarmony 3.1 Release 7月月更 harmony

深入理解 SQL 中的 Grouping Sets 语句

元闰子

sql spark spark SQL

远程办公工具分享|社区征文

如浴春风

初夏征文

NFT新的契机,多媒体NFT聚合平台OKALEIDO即将上线

小哈区块

聊聊支付流程的设计与实现逻辑

Java 架构

Python 入门指南之开胃菜

海拥(haiyong.site)

7月月更

设计电商秒杀系统

大眼喵

「架构实战营」

SpingCloud集成zookeeper实现服务注册并访问

AI乔治

【LeetCode】在每个树行中找最大值Java题解

Albert

LeetCode 7月月更

Python|函数和模块

AXYZdong

7月月更

NFT新的契机,多媒体NFT聚合平台OKALEIDO即将上线

西柚子

远程办公之大家一同实现合作编辑资料和开发文档 | 社区征文

Tech技术攻关

远程办公 协同办公 7月日更 初夏征文

ORACLE进阶(一) 通过EXPDP IMPDP命令实现导dmp

No Silver Bullet

oracle DMP 7月月更

Jenkins抛弃Java 8拥抱Java 11

FunTester

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