`
gk23
  • 浏览: 171474 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

D语言介绍

阅读更多

官方网站:http://www.digitalmars.com/d/2.0/dmd-windows.html

 

D语言是由Digital Mars公司开发的编程语言,起因是为了改进C++。它与C二进制兼容(不完全),可编译为本地码,有GC也可手动管理内存,语法上借鉴多种语言,模板则在C++的基础上做了相当大的扩充。D 语言既有 C 语言的强大威力,又有 PythonRuby 的开发效率。它是一种集垃圾回收、手工内存操作、契约式设计、高级模板技术、内嵌汇编、内置单元测试、Mixin 风格多继承、类 Java 包管理机制、内置同步机制、内建基本运行时信息的系统级编程语言。

 

D 语言是一种通用的系统和应用编程语言。它是比 C++ 更高级的语言,同时还保持了生成高效代码以及直接访问操作系统API和硬件的能力。D 很适合于编写从中等规模到那些由团队合作完成、数百万行代码规模的各种程序。D 易于学习,为编程者提供了很多便利,并且适用各种野心勃勃的编译器优化技术。

  D 不是脚本语言,也不是一种解释型语言。它不需要虚拟机、宗教、或者高于一切的哲学。它是给实际的编程者使用的实际的语言,它帮助编程者快速、可靠的完成易于维护、易于理解的代码。

  D 是数十年来实现多种语言编译器的经验的积累,是用那些语言构造大型工程的尝试的积累。D 从那些语言(主要是 C++ )那里获得了灵感,并使用经验和现实世界中的实用性来驯服它。

  为什么是 D ?

  确实,为什么?有谁需要另一种编程语言?

  自从 C 语言被发明以来,软件工业走过了一段很长的路。许多新的概念被加入了 C++ 中,但同时维护了同 C 的向后兼容性,包括兼容了原始设计中的所有的弱点。有很多修正这些弱点的尝试,但是兼容性是最大的困扰。同时,C 和 C++ 都在不断引入新的特性。这些新特性必须被小心的加入到现有的结构中,以免重写旧的代码。最终的结果十分复杂—— C 标准将近 500 页,C++ 标准大概有 750 页!C++ 实现起来既困难又代价高昂,造成的结果就是各种实现之间都有差别,因此很难写出完全可以移植的 C++ 代码。

D语言详细介绍

  C++ 程序员倾向于使用语言中的孤岛来编程,也就是说,他们倾向于十分精通语言中的某个特性而避免使用其他特性。尽管代码通常在编译器之间是可移植的,但在程序员之间移植就不那么容易了。C++ 的一个长处是它支持很多根本上不同的编程风格——但从长远来看,互相重复和互相冲突的风格会给开发带来妨碍。

  C++ 在标准库而不是语言核心中实现了可改变大小的数组和字符串拼接等。不在语言核心中实现这些功能造成了几种不太理想的结果。

  是否能把 C++ 的能力释放、重新设计并重铸到一门简单、正交并实用的语言中呢? 这种语言是否能做到易于正确实现,并使编译器有能力有效地生成高度优化的代码呢?

  现代编译器技术已经取得了很大的进步,有些原来用作原始编译技术的补充的语言特性已经可以被忽略了(一个这样的例子是 C 语言中的‘register’关键字,一个更为微妙的例子是 C 中的宏预处理程序)。我们可以依赖现代编译器的优化技术而不是使用语言特性(如同原始的编译器所做的那样)来获得可以接受的代码质量。

分享到:
评论

相关推荐

    D程序设计语言.(美)Andrei.Alexandrescu著

    《D程序设计语言》是一本介绍D语言的权威书籍,全面、系统、专业地讲解了D语言相关的内容。书中涵盖了D语言的方方面面,不但介绍了语言的表达式、语句、类型、函数、契约、模块、类和结构等基本内容,还通过常见示例...

    SD大会精品讲座:The D Programming Language(D程序设计语言)(英语授课)

    D语言和并行编程!你还没有听说过?落伍了吧?D语言是新一代的系统编程语言,它的目标是:No.1——C语言的强大威力+No.2——Python和Ruby的开发效率。像是天方夜谭?那就来听Andrei介绍一下这款了不起的程序设计语言...

    C程序设计语言(第二版,中文版,B.W.Kernighan、D.M.Ritchie 著).pdf

    Ritchie编写的一部介绍标准C语言及其程序设计方法的权威性经典著作。全面、系统地讲述了C语言的各个特性及程序设计的基本方法,包括基本概念、类型和表达式、控制流、函数与程序结构、指针与数组、结构、输入与输出...

    第2章分布式程序设计语言

    在这一章里,我们概述通用分布式程序设计语言并介绍类C S P分布式控制描述语言(D C D L)。 这种语言用于描述一些控制结构,如并行的表示、进程间通信和同步、容错设计。用D C D L表示 的控制算法在抽象层上提出,...

    《JavaScript语言精粹[修订版]》高清版_2012.09_【蝴蝶书】_172页完整版

     《JavaScript语言精粹(修订版)》是一本介绍JavaScript 语言本质的专业书籍,值得任何正在或准备从事JavaScript 开发的人阅读,并且需要反复阅读。学习、理解、实践大师的思想,我们才可能站在巨人的肩上,才有...

    C程序设计语言(第二版,中文版,B.W.Kernighan、D.M.Ritchie 著

    本书从实用性、适应性和先进性出发,以培养大学生的C语言程序设计能力为目标,结合大量实例,较全面地介绍了C语言的基本概念和程序设计的基本方法。全书共分13章,主要内容包括:C语言基础、顺序、选择和循环程序...

    IFC文件的一般结构和EXPRESS语言介绍

    ST使用了形式化的数据规范语言D印RE骆来描述产品数据,IF把F}P}语言(Sn于的}'AIT} 1中确定的概念模型用于产品数据纯正文编码交换文件结构的语法,这一文件语法适合于在计算机系统之间进行产品数据的传输,任意D印田...

    统计自然语言处理基础

    自然语言处理方向的基础介绍,由美国学者Christopher D.Manning著

    jsond:JSON 文本的定义语言

    JSOND(JSON 定义)是一种简单但功能强大的 JSON 文本定义语言。 JSOND 的目的是促进 JSON 文本的开发和文档编制。 JSOND 旨在成为 JSON 的最小超集。 本文档中使用的约定 本文档中的关键词“必须”、“不得”、...

    Linux高级语言及管理编程

    命令,它的功能比起D O S的批处理命令更为强大,相对也较为复杂,已经和一般的高级语言不 相上下。这些批处理命令在L i n u x中叫做外壳脚本(外壳Script ) 。 外壳脚本是以文本方式储存的,而非二进制文件。所以...

    Python语言及其应用

    本书介绍Python 编程语言,主要面向编程初学者。不过,如果你是一位有经验的程序员...附录A、B、C介绍Python 在艺术、商业和科学方面的应用,附录D 是Python 3 的安装教程,附录E 和附录F 是每章练习题的答案和速查表。

    shell 语言 语法总结

    表格 B-1. 特殊的shell变量 表格 B-2. 测试操作: 二元比较 表格 B-3....表格 B-4....表格 B-5....表格 B-6....表格 C-1....表格 C-2....表格 D-1. "保留的"退出码 Appendix E. I/O和I/O 重定向的详细介绍 Shell调试 ...

    图书商城 后台语言: Java

    主要功能介绍: 用户注册、登录、个人信息管理、通过邮件找回密码 图书搜索、购买、在线浏览,购物车管理 后台echart图表显示、源代码在线编辑 主要技术: 数据库 : mysql 后台语言: Java 后台框架: Hibernate ...

    RES2DINV汉化版密度电法反演软件.zip

    软件介绍: 瑞典一公司开发的一款高密度电法反演软件RES2DINV, 本版本为中文破解版。能够读取AGI/CAMPUS/IRIS/BGS/OYO MCOHM等格式文件,资料反演可对最小二乘反演、允许模型子块大于数据点数、使用组合反演法、...

    C程序设计语言(第二版,中文版,B.W.Kernighan、D.M.Ritchie 著)

    Kernighan编写的一部介绍标准C语言及其程序设计方法的权威性经典著作。全面、系统地讲述了C语言的各个特性及程序设计的基本方法,包括基本概念、类型和表达式、控制流、函数与程序结构、指针与数组、结构、输入与...

    MMLPlayer-D:D 语言的 MML 播放器

    # MMLPlayer-D ## 介绍 D 语言的 MML(音乐宏语言)播放库。这个库可以播放用 MML(音乐宏语言)编写的歌曲。暂时兼容FlMML,Nico Nico Douga的Pico Kakiko也用到了FlMML(有一个未实现的功能)。 FlMML / 参考 ## ...

    VHDL实用教程,硬件描述语言

    第4 章 VHDL 语言要素......................................................................................................55 § 4.1 VHDL 文字规则..........................................................

    D-YAML:D编程语言的YAML解析器和发射器

    D:YAML是D编程语言的开源YAML解析器和发射器库。 它符合YAML 1.1规范。 D:YAML基于Kirill Simonov创建的 。 D:YAML旨在易于使用,同时支持YAML的全部功能集。 要在项目中开始使用它,请参阅《 。 产品特点 易于...

    Java 3 D TM教程 高清完整doc压缩版

    本教程是一个Java 3 d的介绍。例子使你掌握3 d图像和动画的基本方法。你不需要有任何的3 d图形知识,从本教程中学习Java 3 d。当然如果你对Java编程语言已经有了一个基本的了解,它将是有助于学习Java 3 。 ...

    用VHDL语言实现接键消抖功能

    本文介绍了基于VHDL语言的计数器型消抖电路、D触发器型消抖电路、有限状态机型消抖电路的工作原理、相关程序、波形仿真及结果分析,并将其进行比较,发现其消抖效果良好,性能稳定,可广泛用于FPGA的按键电路中。...

Global site tag (gtag.js) - Google Analytics