《零基础D编程入门》

目录

第二章:概述
2.1:   D是什么语言
2.2:为什么是D?
2.3:D保留的功能
2.4:D的程序案例代码



一、D是什么语言

D是一种用于通用目的的系统和应用编程语言。它是高级语言,但保留了编写高性能代码以及直接编写操作系统API和硬件接口的能力。D很适合于编写从中等规模到那些由团队合作完成、数百行代码规模的各种程序。D很容易学习,它为编程者提供了很多便利,并且非常适合具有挑战性的编译器优化技术。
D不是脚本语言,也不是一种解释型语言。它没有VM、宗教、或至高无上的哲学。它是一种供追求实用的程序员(那些想快速、可靠地完成工作,而又要写出的代码易维护、可读性好的人)使用的实用编程语言。
D是数十年来实现多种语言编译器的经验的积累,是用这些语言构造大型工程的尝试的积累。D从其它语言(主要是C++)那里获得了灵感,并使用经验和现实世界的实用性来实现它。

二、为什么是D

真的是什么原因呢?是谁需要另一种编程语言?
自从C语言被发明以来,软件工业走过了一段漫长的道路。许多新的概念被加入了C++中,但同时维护了同C的向后兼容性,包括兼容了原始设计中的所有的弱点。有很多尝试企图修正这些缺陷,但是兼容性却一直困扰着它。同时,C和C++都在不断引入新的特性。这些新特性必须被小心的加入到现有的结构中,以免重写旧的代码。最终的结果就是它们变得非常的复杂——C标准将近500页,C++标准大概有750页!C++实现起来既困难又代价高昂,造成的结果就是各种实现之间都有差别,因此很难写出完全可以移植的C++代码。
对于象可变大小的数组和字符串连接等这样的功能,C++是在标准库中实现的,而不是在语言核心里面。不在语言核心中实现这些功能造成好些不太理想的后果。是否能把C++的能力释放、重新设计并重铸到一门简单、正交并实用的语言中呢?这种语言是否能做到易于正确实现,并使编译器有能力有效地生成高度优化的代码呢?现代编译器技术已经取得了很大的进步,有些原来用作原始编译技术的补充的语言特性已经可以被忽略。(比如C语言中的关键字‘register’,另一个更为微妙的例子是C中的宏预处理程序。)我们可以依赖现代编译器的优化技术而不是使用语言特性来获得可以接受的代码质量。

三,D保留的功能

粗看上去D就跟C和C++一样。这样一来学习以及将代码移植到D就非常容易。从C/C++转向D也自然很多。程序员不必从头学起。使用D并不意味着程序员会如Java或者Smalltalk那样被严格的限制在某一个运行时vm(虚拟机)上。D没有虚拟机,编译器直接生成可连接的目标文件。D如同C完成的那样被直接跟操作系统打交道。通常那些你熟悉的工具,如make同样适用于D开发。
1:D将很大程度上保留C/C++的外观。它将使用相同的代数语法,绝大多数的相同表达式和语句形式,以及总体的结构。
2:D程序既可以采用C的函数和数据风格来写,也可以采用C++的面向对象、模板元代码风格来写,甚至三者混合使用。
3:编译/链接/调试开发模型被继承下来,但是没有什么能阻止D程序被编译成为字节码然后解释执行。
4:Exceptionhandling.越来越多的使用经验显示,异常处理是比C传统的使用出错代码/全局errn变量模型更为高级的错误处理模型。
5:运行时类型识别.C++部分地实现了这个功能,而D更进一步。对运行时类型识别完全支持,具有更好的垃圾回收、更强的调试器支持、更自动持久等等好处。
6:D维持了同C调用协定的函数连接兼容。这样就能够使D程序直接访问操作系统的API。程序员有关现有API和编程范例的知识和经验可以继续在使用D时使用,而只需付出极少的努力。
7:运算符重载。D支持对运算符的重载,这样就可以用用户定义的类型扩展由基本类型构成的类型系统。
8:模板元码编程。模板是实现范型编程的一种手段。其他的手段包括有使用宏或者采用协变数据类型。使用宏已经过时了。协变类型很直接,但是低效且缺少类型检

四,D的程序代码案例

import arsd.cgi; 
void yourFunction(Cgi cgi) 
{ 
    cgi.write("Hello, world!"); 
} mixin GenericMain!yourFunction;


总结

本章简单介绍了D语言是什么,D的第一个程序,以及D保留下来的内容,下面我们会讲到D放弃的内容与D语言的安装。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

即刻编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值