选择编程语言先决条件


实现系统的语言对你来说是有重大意义的,因为从创建工作开始到结束你都要沉浸其中。
研究表明,程序语言选择可以通过几方面影响生产率和编码质量。
当程序员使用自己所熟悉的语言时,其工作效率要比使用陌生的语言高得多。TRW 公司的
数据表明,两个水平和经验相当的程序员如果一个用一种他已用了三年的语言编程,而另一个
则用一种他所陌生的语言编程,那么前者的效率要比后者高 30%。IBM 的调查表明,一个在某
种语言上经验丰富的程序员,其效率要比在这种语言上没什么经验的程序员高三倍(Walston
和 Felix 1977)。
使用高级语言编程,其效率和质量要比使用低级语言高得多。Pascal 和 Ada 语言的效率、
可靠性、简单性和可懂性是低级语言,如汇编和机器语言的 5 倍(Brooks 1987)。由于不必每
次都为机器正确地执行了指令而欢呼,你当然可以节省许多时间。同时,高级语言的表达能力
比低级语言要高,这样,它的每一行代码就可以表达更多的内容。表 3-2 给出了在代码量相同
的情况下,高级语言所表达的原指令与低级语言的比值(以汇编语言为代表)。


IBM公司的数据从另一个方面指出了语言特性是如何影响效率的,用解释语言工作的程序
员往往比用编译语言工作的程序员的效率更高(Jones 1986)。许多种语言都有解释和编译两种
形式(如多种版本的 c 语言),你可以用高效率的解释形式,然后再把它们转换成更容易执行的
编译形式。
一些语言比其它语言更擅长解释编程思想。你可以把自然语言(如英语)和程序语言(如
Pascal 和汇编语言)进行对比。在自然语言中,语言学家 Sapir 和 Whorf 提出的假想指出,在一
种语言的表达能力和其所能思考的问题之间存在着联系,你思考某一问题的能力取决于你所懂
得的关于这一问题的词汇。如果你不懂那些词汇,那你也就不能表达那些思想,你甚至根本无
法形成那些思想。
程序员也可能同样受到他所懂得的程序语言限制。在某种程序语言方面你所懂得的词汇,
当然会决定你如何表达你的编程想法,还很可能决定你将表达什么样的思想。
程序语言影响程序员的思想方法。一个典型的故事是这样说的:“我们正用 Pascal 语言开发
一个新的系统,而我们的程序员们却并不熟悉 Pascal 语言,他们都是搞 Fortran 语言出身的。结
果他们写出的是用 Pascal 编译的代码,但是他们真正使用的却是变形的 Fotran 语言。他们用
Fortran 的不好的特性(goto 语句和全局数据)歪曲了 Pascal 语言,而同时又把 Pascal 丰富的控
制和数据结构弃之不用”。这种现象在整个软件业都有报道(Hanson 1984,Yourdon 1986)。
3.5.1 语言描述
某些语言的发展史同其通用功能一样令人感兴趣。以下是关于一些在本书中所举的例程中所
出现的语言的描述。
Ada 语言
是一种在 Pascal 语言基础上发展的通用高级语言,它是在国防部的要求和资助下发展起来
的,特别适用于实时和嵌入式系统。Ada 强调数据抽象和信息隐蔽,迫使你区分模块的公共和
局部部分。
把这种语言命名为“Ada”是为了纪念数学家 Ada lovelace,她被公认为世界上的第一个程
序员,从 1986 年起,北约组织和国防部的所有关键任务嵌入式系统都采用 Ada 语言。
汇编语言
汇编语言,是一种低级语言,每一条语句都与一条机器指令相对应。由于语句使用特定的
机器指令,所以汇编语言是针对特定处理器的,比如 Intel 80x86 或者 Motorala 680x0。汇编是
第二代计算机语言,除非是执行速度或代码空间的需要,绝大多数程序员都避免使用它。
Basic 语言
Basic 是由 Dartmouth 学院的 John Kemeny 和 Thormas Kurtz 开发的一种高级语言。由字首
组成的 BASIC 的意思是初学者的全功能符号指令代码(Beginner’ s All-Purpos Symbolic Instruction Code),Basic 主要用于教学生们编程。由于 IBM-PC 机包含了它而使其在微机中风
行一时,Basic 原来是一种解释性语言,现在则解释性和编译性两种形式都有。
C 语言
C 是一种中级通用语言,本来是和 UNIX 操作系统相关的。C 有某些高级语言的特点,例
如,结构化数据、结构化控制流、对于机器的独立性、丰富的操作指令等。它也被称作“可移
植的汇编语言”,因为它广泛地使用了指针和地址,具有某些低级组成部分,如位操作,而且是
弱类型的。
C 是在七十年代由贝尔实验室 Dennis Ritchie 开发的。C 本来是为 DEC PDP-11 设计的,
它的操作系统、C 编译器和 UNIX 应用程序都是用 C 编写的。1988 年,ANSI 公布了 C 的编码
标准,这成了微机和工作站编程的通用标准。
C++语言
C++,是一种面向对象的语言,与 C 相似,由贝尔实验室的 Bjarne Stroustrup 于 1980 年开
发,除了与 C 兼容之外,C++提供了多态性和函数重载功能,同时,它还提供了比 C 更坚固的
类型检查功能。
Fortran 语言
Fortran 是一种高级语言,引入变量和高级循环的概念。Fortran 代表 Formula Translation,
即公式翻译的意思。 Fortran 最初是在五十年代由 Jim Bckus 开发,并且做过几次重大修订.包
括 1977 所发表的 Fotran-77,其中增加了块结构化的 IF-THEN-ELSE 语句和字符串操作。
Fortran-90 增加由用户定义的数据类型、指针、模块和丰富的数组操作。在写本书的时候(1992
年末)。Fortran 标准是如此引发争议,以致绝大多数语言商都没能最终完成它。本书中所引用
的是 Fortran-77 标准。Fortran 语言主要在科学和工程计算中使用。
Pascal 语言
Pascal 是为了教学目的而开发的高级语言。其主要特征是严格的类型、结构化控制创建和
结构化数据类型。它是在六十年代末由 Niklaus Wirth 开发,到了 1984 年,由于 Borland 国际
公司引入了微机使用的低成本编译程序,Pascal 就流行起来了。
3.5.2 语言选择快速参考表
表 3-3 给出了关于不同语言适用范围的简略参考。它也可以帮你选择应该进一步了解的语
言。但是,不要试图用它来代替对你某一特定计划进行语言选择时的详细评估。以下的排序是
很粗略的,因此阅读时应仔细辨别,因为很可能会有许多例外。
阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭