讲起现代计算机高级编程语言,一般人们的脑海中最先浮现的是Java、C++、C等流行语言,有所了解的人会说起当年的传奇语言Pascal、第一个被正式推广使用的语言FORTRAN;而研究过现代编程语言发展史的,更多的是会和你唠Ada语言,讲这个世界首位程序员——一位女性——Ada的故事。
事实上,人们往往忽略了对于现代高级编程语言的大发展起着不可替代作用的一门编程语言,那就是ALGOL。ALGOL是算法语言(ALGOrithmic Language)的简称,是在计算机发展史上首批清晰定义的高级语言,由欧美计算机学家合力所组成的联席大会于仍是晶体管计算机流行的1950年代所开发。
国际计算机学会(ACM)将ALGOL模式列为算法描述的标准,而ALGOL语言的最大贡献,或者说对IT领域编程语言发展的意义,是启发了后续一大批高级编程语言的出现和发展。比如我们现在所熟知的C语言、Pascal语言、Ada语言,这些语言在编程语言的范畴被统称为ALGOL类语言。
现代编程语言的第一个大发展时期,是上世纪五十年代末。当时随着计算机硬件的快速发展,各类晶体管计算机开始流行与各个行业,比如著名的单个体系结构计算机UNIVAC计算机、IBM700系列计算机等。而大量的新增计算机语言也围绕着这些计算机开始涌现,但此时的计算机语言都是专用于某一型号计算机的语言,不同计算机系统之间是无法交流的。
此时,美国一些主要的计算机用户组于1957年5月向国际计算机学会(ACM)建议,研究开发一种与计算机无关的科学用程序设计语言。此建议与德国的应用数学和力学学会(GAMM)的一个专责开发设计一通用但与计算机无关的算法语言的开发委员会不谋而合。于是在1958年5月,GAMM和ACM联合在苏黎世举行第一次设计会议上为新语言定下目标,亦因应语言特性,后定名为ALGOL,即算法语言。同年12月,ALGOL小组发表了ALGOL58报告,被视程序设计语言思想的集成者。
1962年4月,ALGOL会议在罗马召开,委员会决议将第二次ALGOL会议的成果 ALGOL 60 的维系与支援权利转予成立不久的国际信息处理联合会(IFIP),IFIP为此成立工作组IFIP WG 2.1。同年8月,IFIP WG 2.1在慕尼黑举行首次会议,制定出代码 ALGOL X 程序语言,作为ALGOL 60的临时修正版本。
而ALGOL的下一个版本,即于1966年,由WG 2.1工作小组中的Niklaus Wirth与C. A. R. Hoare以ALGOL X为基础作出修改与完善形成ALGOL W,虽未被委员会批准为为ALGOL 60的後继者,但却使得Niklaus Wirth在后续研究中,于1970年创造出了 Pascal 语言。
而首个ALGOL语言的编译器,出现于1970年4月,被称为ALGOL 68R,运行编译ALGOL 68。1973年9月,IFIP WG 2.1工作小组最终修订的ALGOL 68修正版本出版。而直到1997年5月,ALGOL 68S才通过互联网公开出版。
由此发展过程可以看出,ALGOL更多是以程序设计语言的规范和标准的面目出现。自1968年12月ALGOL 68最终方案(MR 101)被IFIP WG 2.1接受及在IFIP联席大会通过并出版后,该语言标准被翻译成俄语、德语、法语、保加利亚语、日语、中文及盲文等。而且,ALGOL 68在俄罗斯广泛普及,并成为俄罗斯的GOST标准。
ALGOL语言是因应人们为科学应用大规模合作设计而产生的工作语言。在这种语言诞生时,正值字符趋向多元化及迅速蜕变时代, 特别字符的采用亦随著时间推移不断更新。比如程序世界著名的“hello world”程序,在不同版本的ALGOL语言中的写法是大相径庭的。
在ALGOL 60中,没有标准输入/输出设施,全部采用大写来编撰,Hello World程序代码如下:
BEGIN
FILE F(KIND=REMOTE);
EBCDIC ARRAY E[0:11];
REPLACE E BY \"HELLO WORLD!\";
WRITE(F, *, E);
END.
而在ALGOL 68中,以关键字小写作撰写代码的标准,其Hello World程序代码如下:
begin
printf(($gl$,\"Hello, world!\"))
end
ALGOL语言在编程语言的发展过程中,率先加入了复合语句的概念,成为复合语句引入先驱。而允许嵌套选择语句、可行使递归过程、栈动态数组适用等特性,都为后续编程语言的发展提供了很多启发。
ALGOL语言作为科学家们进行科学应用大规模合作而设计的语言,在美国和欧洲被从事计算机研究的科学家们大范围采用。而其设计使用场景的局限,也导致其在商业应用上受阻,然而,ALGOL 60却成为算法语言发布的标准,并对其后所有算法类语言发展影响深远。
文章来源:《电脑编程技巧与维护》 网址: http://www.dnbcjqywh.cn/zonghexinwen/2020/0907/457.html
电脑编程技巧与维护投稿 | 电脑编程技巧与维护编辑部| 电脑编程技巧与维护版面费 | 电脑编程技巧与维护论文发表 | 电脑编程技巧与维护最新目录
Copyright © 2018 《电脑编程技巧与维护》杂志社 版权所有
投稿电话: 投稿邮箱: