D.NET编译器源码发布了

19. 五月 2009

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

业界动态

评论

2
2
2009-5-26 16:23:07 quote | #
hao

添加评论


(将显示你的Gravatar图标)

  Country flag

biuquote
  • 评论
  • 在线预览
Loading