BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

D.NET编译器源码发布了

| 作者 Jonathan Allen 关注 530 他的粉丝 ,译者 张龙 关注 12 他的粉丝 发布于 2009年5月19日. 估计阅读时间: 1 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

D语言是一门相对来说比较新的语言,就像ObjectiveC一样,它试图解决C++中的一些严重问题。下面的内容来自于对Cristian Vlasceanu的采访

D语言在很多方面都鼓励采取“正确”的行为。比方说在C和C++中,如果你写“"int i;”,那么i这个变量就是没有初始化的,这时程序员就需要敲入额外的代码“int i = 0;”来实现“正确”的行为,但D语言却与之不同:“int i;”会安全地将变量i设为其默认值(也就是0)。要想不对i进行初始化,你需要额外的输入“int i = void;”来表示你是有意不对i进行初始化而不是因为疏忽大意。

D.NET是D语言到CLR的移植,目前还处在试验阶段。其包含两部分,一个前端组件及一个后端组件。前端组件用来解析源码并生成抽象语法树。后端编译器接收生成的抽象语法树并生成实际的机器码或IL代码。虽然前端及后端组件的代码都在CodePlex上,但其只维护后端组件。前端组件已经超出了D 2.0语言编译器的范围之外了。

需要注意的是:

后端组件代码的质量还不足以用在产品中,目前只是用作研究及学习目的。D语言是一门相当复杂的语言,一些非凡的特性比如TLS和闭包是如何生成IL代码的呢?这些都很值得我们去研究。

查看英文原文:Source for the D.NET Compiler is Now Available

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT