D语言产生背景

D语言产生背景D 语言

它在C++的基础上有一定的扩展,同时还保持了生成高效代码以及直接访问操作系统API和硬件的能力

D 很适合于编写从中等规模到团队合作完成、数百万行代码规模的各种程序

D 易于学习,为编程者提供了各种便利,采用了各种野心勃勃的编译器优化技术

D 不是一种解释型语言,所以不需要虚拟机

它是给实际的编程者使用的实用的计算机程序语言,帮助程序员快速、可靠地完成易于维护、易于理解的代码

D 是数十年来实现多种语言编译器的经验的积累,是用那些语言构造大型工程的尝试的积累

D 从那些语言(主要是 C++ )那里获得了灵感,并使用经验和现实世界中的实用性来驯服它

自从 C++ 语言被发明以来,许多新的概念加入了 C++ ,但同时维护了于C 的兼容性,包括兼容了原始设计中的所有的弱点

有很多修正这些弱点的尝试,但是兼容性是最大的困扰

同时,C 和 C++ 都在不断引入新的特性

这些新特性必须被小心的加入到现有的结构中,以免重写旧的代码

最终导致了十分复杂的语言规范—— C 标准近 500 页,C++ 标准超过750 页!C++ 实现起来既困难又代价高昂,导致各种实现之间都有差别,因此很难写出完全在不同实现之间可以移植的 C++ 代码

C++程序员倾向于使用语言中的孤岛来编程,也就是说,他们倾向于十分精通语言中的某个特性而避免使用其他特性

尽管代码通常在编译器之间是可移植的,但在程序员之间移植就不那么容易了

C++ 的一个长处是它支持很多根本上不同的编程风格——但从长远来看,互相重复和互相冲突的风格会给开发带来妨碍

C++ 在标准库而不是语言核心中实现了可改变大小的数组和字符串拼接等

不在语言核心中实现这些功能造成了几种不太理想的结果

是否能把 C++ 的能力释放、重新设计并重铸到一门简单、正交并实用的语言中呢? 这种语言是否能做到易于正确实现,并使编译器有能力有效地生成高度优化的代码呢?现代编译器技术已经取得了很大的进步,有些原来用作原始编译技术的补充的语言特性已经可以被忽略了(一个这样的例子是 C 语言中的‘register’关键字)

我们可以依赖现代编译器的优化技术而不是使用语言特性(如同原始的编译器所做的那样)来获得可以接受的代码质量

以上内容由大学时代综合整理自互联网,实际情况请以官方资料为准。

相关