关于作者

 一个毕业于北京大学数学力学系,在中国科学院计算所、计算中心和网络中心工作过,在澳大利亚科工组织DMS、香港浸会学院数学系和中国21世纪议程管理中心等处工作过,多次获国家和中科院科技奖并享受政府特殊津贴的退休老头。现在在【中国科普博览】网“科学新语林”栏目里开设一个《数学与计算机》的个人专栏,愿和爱好数学与计算机的各界网友和青少年朋友,谈谈对数学与计算机的看法、想法。

灵活多样的C/C++语言

张建中
2014年06月05日

7. 灵活多样语言C/C++?

C语言
C语言最早是由丹尼斯?里奇(Dennis Ritchie)为了在PDP-11计算机上运行的UNIX系统设计出来的编程语言,首次发表于1969年到1973年之间。之所以被称为“C”是因为C语言的很多特性是由一种更早的被称为B语言的BCPL(Basic Combined Programming Language)编程语言中发展而来,在B语言之前还有A语言,名字取自世界上第一位女程序员Ada(艾达)。
[caption id="attachment_1069" align="aligncenter" width="220"]C语言研发者 肯?汤普逊和丹尼斯?里奇 C语言研发者 肯?汤普逊和丹尼斯?里奇[/caption]
C语言是世界上最流行、使用最广泛的高级程序设计语言之一。早期操作系统的核心大多由汇编语言组成,随着C语言的发展,C语言已经可以用来编写操作系统的核心。1973年,Unix操作系统的核心正式用C语言改写,这是C语言第一次应用在操作系统的核心编写上。 C语言是一种结构化语言,层次清晰,便于按模块化方式组织程序,易于调试和维护。
C语言的表现能力和处理能力极强。它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构,还可以直接访问内存的物理地址,可进行到位(bit)一级的操作。由于C语言实现了对硬件的编程操作,因此C语言集高级语言和低级语言的功能于一体,既可用于系统软件的开发,也适合于应用软件的开发。
C语言设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言也很适合搭配汇编语言来使用。尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多计算机平台上进行编译,甚至包含一些嵌入式处理器以及超级计算机等作业平台。
C语言具有效率高,可移植性强等特点。因此广泛地移植到了各类各型计算机上,从而形成了多种版本的C语言。
C语言的特色
C语言运算符丰富。运算符包含的范围很广泛,共有34种。C语言把括号、赋值、强制类型转换等都作为运算符处理,从而使C语言的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。
C语言数据类型丰富。数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据结构的运算,并引入了指针概念,使程序效率更高。
C语言表达方式灵活实用。提供多种运算符和表达式值的方法,对问题的表达可通过多种途径获得,其程序设计更主动、灵活。它语法限制不太严格,程序设计自由度大,如对整型量与字符型数据及逻辑型数据可以通用等。
由于C语言允许直接访问物理地址,可以直接对硬件进行操作,因此它既具有高级语言的功能,又具有低级语言的许多功能,能够像汇编语言一样对位(bit)、字节和地址进行操作,而这三者是计算机最基本的工作单元,可用来编写系统软件。
C语言简洁紧凑、灵活方便。C语言一共只有32个关键字,9种控制语句,程序书写形式自由,区分大小写。把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。
C语言是一种面向过程的计算机程序设计语言,它是目前众多计算机语言中举世公认的优秀的结构程序设计语言之一。C语言又是一种通用的高级编程语言,由于该语言具有灵活性和模块性等诸多特点,应用广泛。现在,从微机到巨型机,几乎都配备有C语言的编译系统。 C语言规模小,相对简单,表示方法简洁、灵活,特别是语言和运行支撑环境分离,具有很好的可移植性。在此基础上,又发展出了面向对象的C++ 语言和可视化C语言VC,使得C语言处处可见。
C语言应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维、二维图形和动画,具体应用比如单片机以及嵌入式系统的开发。
C语言适用范围大。适合于多种操作系统,如Windows、Unix等等;也适用于多种机型。 C语言生成目标代码质量高,程序执行效率高。描述问题比汇编语言迅速,工作量小、可读性好,易于调试、修改和移植,而代码质量与汇编语言相当。
C++ 语言及其标准化
什么是C++?C++ 是基于C语言发展起来的一种新的程序设计语言。20世纪80年代,美国贝尔实验室的Bjarne Stroustrup博士及其同事在C语言的基础上引入了面向对象的编程思想和一个class关键字,形成了最早的C++ 语言原型。后来,C++ 语言被融入了越来越多的语言特性,其中最具有意义、影响最深远的莫过于template(模板)的引入,最终美国国家标准化协会ANSI和国际标准化组织ISO一起对C++ 语言进行了标准化工作,并于1998年正式发布了C++ 语言的国际标准ISO/IEC:98-14882,使C++ 成为最流行的程序设计语言之一。
C++ 进一步扩充和完善了C语言,成为一种面向对象的程序设计语言,保留了C语言原有的所有优点,增加了面向对象的机制。C++ 提出了一些更为深入的概念,它所支持的这些面向对象的概念容易将问题空间直接地映射到程序空间,为程序员提供了一种与传统结构程序设计不同的思维方式和编程方法。开始,C++ 是作为C语言的增强版出现的,从给C语言增加类开始,不断的增加新特性。
C++ 是一种使用非常广泛的计算机编程语言,一种静态数据类型检查的、支持多重编程范式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、泛型程序设计等多种程序设计风格。
C++ 组织大型程序时比C语言更好,能很好的支持面向对象机制。
C++ 的移植性比C语言好,大多数可移植性用户界面库都使用C++ 对象实现。
C++ 是一种使用非常广泛的、静态数据类型检查的、支持多重编程方式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、泛型程序设计等多种程序设计风格。其编译器比目前其他计算机语言的编译技术更复杂。
C++ 是由C发展而来的,与C兼容。用C语言写的程序基本上可以不加修改地用于C++ 。从C++ 的名字可以看出它是C的超越和集中。C++ 既可用于面向过程的结构化程序设计,又可用于面向对象的程序设计,是一种功能强大的混合型的程序设计语言。
C是C++ 的基础,C++ 语言和C语言在很多方面是兼容的。因此,掌握了C语言,再进一步学习C++ 就能以一种熟悉的语法来学习面向对象的语言,从而达到事半功倍的目的。
C++ 语言的主要应用领域
C++ 的应用集中在如下几个主要方面。
游 戏:C++ 的效率是一个很重要的应用原因。
科学计算:在科学计算领域,Fortran是使用最多的语言之一。但是近年来,C++ 凭借先进的数值计算库、泛型编程等优势在这一领域也应用颇多。
网络软件:C++ 拥有很多成熟的用于网络通信的库,其中最具有代表性的是跨平台的、重量级的ACE库,该库可以说是C++ 语言最重要的成果之一,在许多重要的企业、部门甚至是军方都有应用。
操作系统:在该领域,C语言是主要使用的编程语言。但是C++ 凭借其对C的兼容性,面向对象性质也开始在该领域崭露头角。
设备驱动程序:也是因为效率的原因。
移动(手持)设备。
有关C++ 语言的图书很多,下面是其中较有特点的一种。
[caption id="attachment_1070" align="aligncenter" width="260"]C++ 语言程序设计(第4版)郑莉,董江舟 编著,清华大学出版社</br>2010年7月出版</br>784000字</br>529页 C++ 语言程序设计(第4版)郑莉,董江舟 编著,清华大学出版社 2010年7月出版 784000字 529页[/caption]