Python 发表于 2016-3-6 20:36:30

D 语言 ── C/C++ 改进语言

D 语言 ── C/C++ 改进语言

D 语言,一种通用计算机程序语言,威力强大、功能丰富,支持多种编程范式,例如面向对象。
D 语言最初由 Digital Mars 公司就职的 Walter Bright 于 2001 年发布,意图改进 C++ 语言。目前最新 D 语言被简称为 D2。最主要的 D 语言的实现是 DMD。
D 语言源自 C/C++,借鉴了众多编程语言的特色和现代编译器技术,融会贯通了设计者丰富的实践经验,使之具备了非凡的威力 ── 既有 C/C++ 语言的强大威力,又有 Python 和 Ruby 的开发效率。它集众多系统级编程所需的功能于一身,例如垃圾回收、手工内存操作、契约式设计、高级模板技术、内嵌汇编、内置单元测试、Mixin 风格多继承、类 Java 包管理机制、内置同步机制、内建基本运行时信息。
D语言它与 C 二进制兼容(不完全),可编译为本地码,有 GC 也可手动管理内存,语法上借鉴多种语言,模板则在 C++ 的基础上做了相当大的扩充。它是一种集垃圾回收、手工内存操作、契约式设计、高级模板技术、内嵌汇编、内置单元测试、Mixin 风格多继承、类 Java 包管理机制、内置同步机制、内建基本运行时信息的系统级编程语言。
自从 C++ 语言被发明以来,许多新的概念加入了 C++ ,但同时维护 C 的兼容性,包括兼容原始设计中的所有弱点。有很多修正这些弱点的尝试,但是兼容性是最大的困扰。同时,C 和 C++ 都在不断引入新特性。这些新特性必须被小心加入到现有结构中,以免重写旧代码。最终导致了十分复杂的语言规范 —— C 标准近 500 页,C++ 标准超过750 页!C++ 实现起来既困难又代价高昂,导致各种实现之间都有差别,因此很难写出完全在不同实现之间可移植的 C++ 代码。
C++ 程序员倾向于使用语言中的孤岛来编程,也就是说,他们倾向于十分精通语言中的某个特性而避免使用其他特性。尽管代码通常在编译器之间是可移植的,但在程序员之间移植就不那么容易了。C++ 的一个长处是它支持很多根本上不同的编程风格 —— 但从长远来看,互相重复和互相冲突的风格会给开发带来妨碍。
C++ 在标准库而不是语言核心中,实现了可改变大小的数组和字符串拼接等。不在语言核心中实现这些功能造成了几种不太理想的结果。是否能把 C++ 的能力释放、重新设计并重新设计一门简单、比较实用的语言呢? 这种语言是否能做到易于正确实现,并使编译器能有效生成高度优化代码呢?
现代编译器技术已取得了很大进步,有些原来用作原始编译技术补充的语言特性已可忽略(一个这样的例子是 C 语言中的 ‘register’ 关键字,一个更为微妙的例子是 C 中的宏预处理程序)。我们可依赖现代编译器的优化技术而不是使用语言特性(如同原始的编译器所做的那样)来获得可以接受的代码质量。
D 语言是比 C++ 更高级的语言,同时,还保持生成高效代码及直接访问操作系统 API 和硬件的能力。

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

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

D 语言不是脚本语言,也不是一种解释型语言。它不需要虚拟机。它是给实际编程者使用的实用计算机程序语言,帮助程序员快速、可靠的完成易于维护、易于理解的代码。
D 语言是数十年来实现多种语言编译器的经验的积累,是用那些语言构造大型工程的尝试积累。D 从那些语言(主要是 C++ )那里获得了灵感,并使用经验和现实世界中的实用性来驯服它。

版权声明:
本文为独家原创稿件,版权归 德云社区,未经许可不得转载;否则,将追究其法律责任。

页: [1]
查看完整版本: D 语言 ── C/C++ 改进语言