选择编程语言先决条件

原创 2005年02月28日 09:43:00
出处:《代码大全》

实现系统的语言对你来说是有重大意义的,因为从创建工作开始到结束你都要沉浸其中。
研究表明,程序语言选择可以通过几方面影响生产率和编码质量。
当程序员使用自己所熟悉的语言时,其工作效率要比使用陌生的语言高得多。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 给出了关于不同语言适用范围的简略参考。它也可以帮你选择应该进一步了解的语
言。但是,不要试图用它来代替对你某一特定计划进行语言选择时的详细评估。以下的排序是
很粗略的,因此阅读时应仔细辨别,因为很可能会有许多例外。

30种编程语言的比较选择问题

本文涉及到的编程语言:C、C++、Java、C#、Prolog、VB、Scala、Clojure、Haskell、Ada、Python、Ruby、Pascal(Delphi)、Fortran、Lisp...

对于机器学习,到底该选择哪种编程语言?

开发者到底应该学习哪种编程语言才能获得机器学习或数据科学这类工作呢?这是一个非常重要的问题。我们在许多论坛上都讨论过这个问题。今天,我将给出我自己的答案并解释其中原因,但我们首先看一些数据。毕竟,这是...

初学者该如何选择编程语言呢?

互联网大热,随之对技术、程序员的需求也是很大,因此,很多大学生或想转行从事计算机编程工作,但市场上编程语言众多,我们该选择哪种语言呢?今天我们大圣众包小编根据网络资源从多个角度分析该选择哪个语言! ...

数据挖掘编程语言选择(Python与R的PK)

数据挖掘技术日趋成熟和复杂,随着互联网发展以及大批海量数据的到来,之前传统的依靠spss、SAS等可视化工具实现数据挖掘建模已经越来越不能满足日常需求,依据美国对数据科学家(datascientist...

干货:实现数据可视化的几个工具选择(工具+编程语言)

非编程篇/可直接上手的工具 1. Excel Excel是最容易上手的图表工具,善于处理快速少量的数据。结合数据透视表,VBA语言,可制作高大上的可视化分析和dashboard仪表盘。 单...
  • c_trek
  • c_trek
  • 2017年02月28日 14:01
  • 2770

如何给项目选择最合适的编程语言?

每次开始一个新项目,无论是一个独立的程序还是现有计划的一个组件,都会面临着一个应该选择什么样的编程语言的问题。只考虑之前用过的编程语言或者现在最流行的语言的话,你很可能会得到一个糟糕的结果。所以你应该...

如何给项目选择最合适的编程语言?

每次开始一个新项目,无论是一个独立的程序还是现有计划的一个组件,都会面临着一个应该选择什么样的编程语言的问题。只考虑之前用过的编程语言或者现在最流行的语言的话,你很可能会得到一个糟糕的结果。所以你应该...

如何选择编程语言?

好吧,你现在是否准备好去学习一个新的编程语言了吗?或许你之前没有接触过这个领域,那欢迎你来到应用开发的新世界。或者你已经在这个应用开发的领域里已经摸爬滚打了好几年了,但是你想开始一个新的领域。选择一种...
  • xkfz008
  • xkfz008
  • 2011年11月29日 12:03
  • 3967

GPU编程语言选择(OpenCL、CUDA 与C++ AMP)

1、CUDA、OpenCL与C++ AMP        其实在C++ AMP之前已经有了两个异构编程框架:CUDA与OpenCL。CUDA(Compute Unified Device Arc...

30种编程语言的比较选择问题

本文涉及到的编程语言:C、C++、Java、C#、Prolog、VB、Scala、Clojure、Haskell、Ada、Python、Ruby、Pascal(Delphi)、Fortran、Lisp...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:选择编程语言先决条件
举报原因:
原因补充:

(最多只允许输入30个字)