程序设计语言的发展

摘自互联网


计算机语言也称程序设计语言(Program Language),即编写计算机程序所用的语言。计算机语言是人和计算机交流信息的工具,它是软件的重要组成部分。粗略地,计算机语言分为机器语言、汇编语言和高级语言。高级语言是接近人类习惯使用的自然语言和数学语言的计算机程序设计语言。它独立于计算机,用户可以不了解机器指令,也可以不必了解机器的内部结构和工作原理,就能用高级语言编程序。高级语言通用性好、易学习、易使用、不受机器型号的限制,而且易于交流和推广。

早期电脑都直接采用机器语言,即用“0”和“1”为指令代码来编写程序,读写困难,编程效率极低。为了方便编程,随即出现了汇编语言,虽然提高了效率,但仍然不够直观简便。从1954年起,电脑界逐步开发了一批“高级语言”,采用英文词汇、符号和数字,遵照一定的规则来编写程序。高级语言诞生后,软件业得到突飞猛进的发展。

1953年12月, IBM公司程序师约翰·巴科斯(J. Backus) 写了一份备忘录,建议为IBM 704设计一种全新的程序设计语言。巴科斯曾在“选择顺序控制计算机”(SSEC) 上工作过3年, 深深体会到编写程序的困难性。他说:“每个人都看到程序设计有多昂贵,租借机器要花去好几百万,而程序设计的费用却只会多不会少。”巴科斯的目标是设计一种用于科学计算的“公式翻译语言”(FORmula TRANslator) 。他带领一个13人小组,包括有经验的程序员和刚从学校毕业的青年人,在IBM 704电脑上设计出编译器软件, 于1954年完成了第一个电脑高级语言——FORTRAN语言。1957年,西屋电气公司幸运地成为FORTRAN的第一个商业用户, 巴科斯给了他们一套存储着语言编译器的穿孔卡片。 以后,不同版本的FORTRAN纷纷面世,1966年,美国统一了它的标准,称为FORTRAN 66语言。 40多年过去,FORTRAN仍然是科学计算选用的语言之一,巴科斯因此摘取了1977年度“图林奖”。

FORTRAN广泛运用的时候, 还没有一种可以用于商业计算的语言。美国国防部注意到这种情况, 1959年5月,五角大楼委托格雷斯·霍波博士领导一个委员会,开始设计面向商业的通用语言(COmmon Business Oriented Language) ,即COBOL语言。COBOL最重要的特征是语法与英文很接近, 可以让不懂电脑的人也能看懂程序;编译器只需做少许修改,就能运行于任何类型的电脑。委员会一个成员害怕这种语言的命运不会太长久, 特地为它制作了一个小小的墓碑。然而,COBOL语言却幸存下来。1963年,美国国家标准局将它进行了标准化。用COBOL写作的软件,要比其他语言多得多。

1958年,一个国际商业和学术计算机科学家组成的委员会在瑞士苏黎世开会,探讨如何改进FORTRAN,并且设计一种标准化的电脑语言,巴科斯也参加了这个委员会。1960年,该委员会在1958年设计的基础上,定义了一种新的语言版本——国际代数语言ALGOL 60,首次引进了局部变量和递归的概念。 ALGOL语言没有被广泛运用,但它演变为其他程序语言的概念基础。

20世纪60年代中期, 美国达特默斯学院约翰·凯梅尼 (J. Kemeny) 和托马斯·卡茨(T.Kurtz) 认为,像FORTRAN那样的语言都是为专业人员设计,而他们希望能为无经验的人提供一种简单的语言,特别希望那些非计算机专业的学生也能通过这种语言学会使用电脑。于是, 他们在简化FORTRAN的基础上, 研制出一种“初学者通用符号指令代码”(Beginner’s All purpose Symbolic Intruction Code) ,简称BASIC。由于BASIC语言易学易用, 它很快就成为最流行的电脑语言之一,几乎所有小型电脑和个人电脑都在使用它。经过不断改进后,它一直沿用至今,出现了象QBASIC、VB等新一代BASIC版本。

1967年,麻省理工学院人工智能实验室希摩尔·帕伯特(S.Papert) ,为孩子设计出一种叫LOGO的电脑语言。帕伯特曾与著名瑞士心理学家皮亚杰一起学习。他发明的LOGO最初是个绘图程序,能控制一个“海龟”图标,在屏幕上描绘爬行路径的轨迹,从而完成各种图形的绘制。帕伯特希望孩子不要机械地记忆事实,强调创造性的探索。他说:“人们总喜欢讲学习,但是,你可以看到,学校的多数课程是记忆一些数据和科学事实,却很少着眼于真正意义上的学习与思考。”他用LOGO语言启发孩子们学会学习,在马萨诸塞州列克星敦,一些孩子用LOGO语言设计出了真正的程序,使LOGO成为一种热门的电脑教学语言。

1971年,瑞士联邦技术学院尼克劳斯·沃尔斯(N. Wirth) 教授发明了另一种简单明晰的电脑语言,这就是以帕斯卡的名字命名的PASCAL语言。PASCAL语言语法严谨,层次分明,程序易写,具有很强的可读性,是第一个结构化的编程语言。它一出世就受到广泛欢迎,迅速地从欧洲传到美国。沃尔斯一生还写作了大量有关程序设计、算法和数据结构的著作,因此,他获得了1984年度图林奖。Pascal语言不仅用作教学语言,而且也用作系统程序设计语言和某些应用。所谓系统程序设计语言,就是用这种语言可以编写系统软件,如操作系统、编译程序等。Pascal语言是一种安全可靠的语言。不过它的后继者Delphi已经成为最有生命力的编程语言之一,同时具有VB和C语言的优点,成为聪明的编程者的必然选择。

1983年度的图林奖则授予了AT&T贝尔实验室的两位科学家邓尼斯·里奇 (D.Ritchie) 和他的协作者肯·汤姆森(K. Thompson) ,以表彰他们共同发明著名的电脑语言C。C语言的设计哲学是“Keep It Simple,Stupid”,因而程序员可以轻易掌握整个C语言的逻辑结构而不用一天到晚翻手册写代码。于是,众多的Programmer倒向了C语言怀抱,C语言迅速并广泛地传播开来。C语言现在是当今软件工程师最宠爱的语言之一。

里奇最初的贡献是开发了Unix操作系统软件。他说,这里有一个小故事:他们答应为贝尔实验室开发一个字处理软件,要求购买一台小型电脑PDP-11/20,从而争取到10万美元经费。可是当机器购回来后,他俩却把它用来编写Unix系统软件。Unix很快有了大量追随者,特别是在工程师和科学家中间引起巨大反响,推动了工作站电脑和网络的成长。1970年,作为Unix的一项“副产品”,里奇和汤姆森合作完成了C语言的开发,这是因为研制C语言的初衷是为了用它编写Unix。这种语言结合了汇编语言和高级语言的优点,大受程序设计师的青睐。1983年,贝尔实验室另一研究人员比加尼·斯楚士舒普(B.Stroustrup) ,把C语言扩展成一种面向对象的程序设计语言C++。如今,数以百万计的程序员用它来编写各种数据处理、实时控制、系统仿真和网络通讯等软件。斯楚士舒普说:“过去所有的编程语言对网络编程实在太慢,所以我开发C++,以便快速实现自己的想法,也容易写出更好的软件。”1995年,《BYTE》杂志将他列入计算机工业20个最有影响力的人的行列。