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 代码的呢?这些都很值得我们去研究。
评论