代码说

code is poetry

代码说    
碎碎念:自从你去到一个很远地方流浪,不知道现在已经变得怎么样。  换一换

50、高级的语言

作者:coderzheng 发布于:2016-8-23 20:19 Tuesday 分类:大话星程  阅读模式

电脑语言也叫程序设计语言,是人与电脑交流和沟通的工具。 
早期电脑都直接采用机器语言,即用"0"和"1"为指令代码来编写程序,难写难读,编程效率极低。为了方便编程,随即出现了汇编语言,虽然提高了效率,但仍然不够直观简便。从1954年起,电脑界逐步开发了一批"高级语言",采用英文词汇、符号和数字,遵照一定的规则来编写程序。高级语言诞生后,软件业得到突飞猛进的发展。 
1953年12月, IBM公司程序师约翰·巴科斯(J. Backus) 写了一份备忘录,建议为IBM704设计一种全新的程序设计语言。 
巴科斯出身于一位化学家家庭,少年时就学于一所有名望的学校。但是,他几乎年年考试不及格,在弗吉利亚大学也只读了一年书就参了军。一次能力测验的成绩居然使他脱颖而出, 被陆军保送到匹茨堡大学学习医学。他的医学生涯也只有9个月,凭着兴趣转到了哥仑比亚大学数学系。一次偶然的机会,他参观了老沃森主持研制的"选择顺序控制计算机"(SSEC)——用继电器和电子管混合组装的老式大型机,又是一次能力测试让他加入到IBM公司,为SSEC计算机工作了3年之久。 
巴科斯接受的第一项任务是计算月历,他深深体会到用机器指令编写程序的困难性。他后来回忆说:"每个人都看到程序设计有多昂贵,租借机器要花去好几百万,而程序设计的费用却只会多不会少。" 
巴科斯的目标是设计一种用于科学计算的"公式翻译语言"(FORmula TRANslator),当时仅仅只想让程序编制得更快一点,并没有打算提供给别的机器使用。巴斯科带领一个13人小组,包括几位有经验的程序员和刚从学校毕业的青年人,在IBM704电脑上设计出编译器软件。 1956年,他们完成了第一个电脑高级语言——FORTRAN。1957年,西屋电气公司幸运地成为FORTRAN的第一个商业用户, 巴科斯给了他们一套存储着语言编译器的穿孔卡片。以后,不同版本的FORTRAN纷纷面世,1966年,美国统一了它的标准,称为FORTRAN66语言。 40多年过去,FORTRAN仍然是科学计算选用的语言之一,巴科斯因此摘取了1977年度"图林奖"。 
1958年夏天,麻省理工学院青年助教麦卡锡(J.McCarthy)在发起达特默斯人工智能(AI)奠基会议之后,试图为AI创建一种新的电脑语言。与巴斯科的青年时代截然相反,麦卡锡在上初中时就自学了大学微积分课程,这使得他在加州理工大学获得了免修两年数学的荣誉。 作为普林斯顿大学的数学博士,1958年他也被聘在IBM工作过一段时间。他非常想把FORTRAN改造成支持递归运算, 然而,改造显然太复杂,复杂得还不如另起炉灶,重新设计一种新的语言。 
于是,麦卡锡不再去修补FORTRAN,而是自行发明了一个表处理语言  (ListProcedding),简称LISP。1959年,他又在LISP里加进了求值和条件表达式的特性。麦卡锡希望他的LISP成为"制造一台像人一样有智慧的机器"的工具,LISP以后变成了人工智能的标准语言之一。 
FORTRAN广泛运用的时候, 还没有一种可以用于商业计算的语言。美国国防部注意到这种情况,1959年5月,五角大楼委托格雷斯·霍波(G. Hopper)博士领导一个委员会,开始设计面向商业的通用语言(Common Business Oriented Langauge),即COBOL语言。 COBOL最重要的特征是语法与英文很接近, 可以让不懂电脑的人也能看懂程序;编译器只需做少许修改,就能运行于任何类型的电脑。委员会一个成员害怕这种语言的命运不会太长久,特地为它制作了一个小小的墓碑,霍波等人还在这个墓碑前合影留念。然而,COBOL语言却"幸存"下来。1963年,美国国家标准局将它进行了标准化;用COBOL写作的软件,要比其他语言多得多。但它对今天电脑界最大的影响,却是那条暗藏杀机的"千年虫"(Y2K),这当然是霍波博士始料不及的。 
1958年,一个国际商业和学术界计算机科学家组成的委员会在瑞士苏黎世开会,探讨如何改进FORTRAN, 并且设计一种标准化的电脑语言,巴科斯、麦卡锡都参加了这个委员会。1960年,该委员会在1958年设计基础上,定义了一种新的语言版本——国际代数语言ALGOL 60, 首次引进了麦卡锡提出的递归和条件表达式的思想。ALGOL语言虽然没有被广泛运用,但它演变为其他程序语言的概念基础。

你可以发表评论、引用到你的网站或博客,或通过RSS 2.0订阅这个博客的所有文章。
上一篇: 49、硬盘与软盘  |  下一篇:51、语言的革命