计算机发展史故事【19】

高级的语言

在这里插入图片描述

早期计算机都直接采用机器语言,即用“0”和“1”为指令代码来编写程序,难写难读,编程效率极低。为了方便编程,随即出现了汇编语言,虽然提高了效率,但仍然不够直观简便。从1954 年起,电脑界逐步开发了一批“高级语言”,采用英文词汇、符号和数字,遵照一定的规则来编写程序。高级语言诞生后,软件业得到突飞猛进的发展。
1953 年12 月,IBM 公司程序师约翰·巴科斯(J.Backus)写了一份备忘录,建议为IBM704 设计一种全新的程序设计语言。巴科斯出身于一位化学家家庭,少年时就学于一所有名望的学校。但是,他几乎年年考试不及格,在弗吉利亚大学也只读了一年书就参了军。一次能力测验的成绩居然使他脱颖而出,被陆军保送到匹茨堡大学学习医学。他的医学生涯也只有9 个月,凭着兴趣转到了哥仑比亚大学数学系。一次偶然的机会,他参观了老沃森主持研制的“选择顺序控制计算机”(SSEC)——用继电器和电子管混合组装的老式大型机,又是一次能力测试让他加入到IBM 公司,为SSEC 计算机工作了3 年之久。
巴科斯接受的第一项任务是计算月历,他深深体会到用机器指令编写程序的困难性。他后来回忆说:“每个人都看到程序设计有多昂贵,租借机器要花去好几百万,而程序设计的费用却只会多不会少。”
巴科斯的目标是设计一种用于科学计算的“公式翻译语言”(FORmulaTRANslator),当时仅仅只想让程序编制得更快一点,并没有打算提供给别的机器使用。巴斯科带领一个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 OrientedLangauge),即COBOL 语言。
COBOL 最重要的特征是语法与英文很接近,可以让不懂电脑的人也能看懂程序;编译器只需做少许修改,就能运行于任何类型的电脑。委员会一个成员害怕这种语言的命运不会太长久,特地为它制作了一个小小的墓碑,霍波等人还在这个墓碑前合影留念。然而,COBOL 语言却“幸存”下来。1963 年,美国国家标准局将它进行了标准化;用COBOL 写作的软件,要比其他语言多得多。但它对今天电脑界最大的影响,却是那条暗藏杀机的“千年虫”(Y2K),这当然是霍波博士始料不及的。
1958 年,一个国际商业和学术界计算机科学家组成的委员会在瑞士苏黎世开会,探讨如何改进FORTRAN,并且设计一种标准化的电脑语言,巴科斯、麦卡锡都参加了这个委员会。1960 年,该委员会在1958 年设计基础上,定义了一种新的语言版本——国际代数语言ALGOL 60,首次引进了麦卡锡提出的递归和条件表达式的思想。ALGOL 语言虽然没有被广泛运用,但它演变为其他程序语言的概念基础。

语言的革命

60 年代中期,美国达特默斯学院约翰·凯梅尼(J.Kemeny)和托马斯·卡茨(T.Kurtz)认为,象FORTRAN 那样的语言都是为专业人员设计,而他们希望能为无经验的人提供一种简单的语言,特别希望那些非计算机专业的学生也能通过这种语言学会使用电脑。他们在简化FORTRAN 语言的基础上,研制出一种“初学者通用符号指令代码”(Beginners All purpose Symbolic Intruction Code),简称BASIC。由于BASIC 语言易学易用,它很快就成为最流行的电脑语言之一,几乎所有小型电脑和个人电脑都在使用它。经过不断改进后, 它一直沿用至今,出现了象QBASIC、VB 等新一代BASIC 版本,甚至在视窗时代仍在发挥着巨大的威力。
1967 年,麻省理工学院人工智能实验室西摩尔·帕伯特(S.Papert),为孩子设计出一种叫LOGO 的电脑语言。
帕伯特曾是著名瑞士心理学家皮亚杰的学生,他发明的LOGO 最初是个绘图程序,能控制一个“海龟”图标,在屏幕上描绘爬行路径的轨迹。用这种语言,儿童也能够用简单指令,以近乎游戏方式指挥海龟画笔画出各种对称的递归图形,而且可以随意组词造句。帕伯特希望孩子不要机械地记忆事实,强调创造性的探索。他说:“人们总喜欢讲学习,但是,你可以看到,学校的多数课程是记忆一些数据和科学事实,却很少着眼于真正意义上的学习与思考。”他用LOGO 语言启发孩子们学会学习,在马萨诸塞州列克星敦,一些孩子用LOGO 语言设计出了真正的程序,使它成为一种热门的电脑教学语言。
虽然LOGO 并没有象帕伯特设想的那样,引起学习上的一场革命,但它已经成为许多学校孩子们学习电脑语言的有用工具。教育研究者指出,帕伯特打开了一个“学习者驱动的学习”方式,儿童更喜欢通过发现和参与来进行学习,而不愿意沉浸于枯燥的记忆和练习之中。
1971 年,瑞士联邦技术学院尼克劳斯·沃尔斯(N.Wirth)教授发明了另一种简单明晰的电脑语言,这就是以电脑先驱帕斯卡的名字命名的PASCAL 语言。PASCAL 语言语法严谨,层次分明,程序易写,具有很强的可读性,是第一个结构化的编程语言。它一出世就受到广泛欢迎,迅速地从欧洲传到美国。沃尔斯一生还写作了大量有关程序设计、算法和数据结构的著作,因此,他获得了1984 年度“图林奖”。
1983 年度的“图林奖”则授予了AT&T 贝尔实验室的两位科学家邓尼斯·里奇(D.Ritchie)和肯·汤姆森(K.Thompson),以表彰他们共同发明著名的电脑语言——C。
里奇和汤姆森最初的贡献是开发UNIX 操作系统软件。里奇对人们说,这里有一个小故事:他们答应为贝尔实验室开发一个文字处理软件,要求购买一台小型电脑PDP-11/20,从而争取到10 万美元经费。可是1970 年机器购回来后,他俩却把它用来编写UNIX 系统软件。UNIX 很快有了大量追随者,首先是贝尔实验室的专利部门,其后在工程师和科学家中间引起巨大反响,推动了工作站电脑和网络的成长。
1970 年,作为UNIX 的一项“副产品”,里奇和汤姆森合作完成了C 语言的开发。由于第一版UNIX 用汇编语言写作,汤姆森打算为它实现一个FORTRAN 编译器,以加快改版速度。与麦卡锡相似,汤姆逊越写越不满意,进而干脆写出了一个被称为B 的新语言。里奇接着把解释型的B 语言加以改进,提出了编译的C语言。
新的C 语言结合了汇编语言和高级语言的优点,里奇用它把UNIX 重新写了一遍,使得UNIX 成为第一个用高级语言写作的操作系统。正因为如此,UNIX 才大为流行,因为用C 语言写作的“文章”要比用机器码易读易懂,更方便地移植到任何机器上去。C 语言从此大受程序设计师的亲睐。1983 年,贝尔实验室另一位研究人员比加尼·斯楚士舒普(B.Stroustrup),把C 语言扩展成一种面向对象的程序设计语言C++。如今,数以百万计的程序员用它来编写各种数据处理、实时控制、系统仿真和网络通讯等软件。斯楚士舒普说:“过去所有的编程语言对网络编程实在太慢,所以我开发C++,以便快速实现自己的想法,也容易写出更好的软件,我和我的朋友都感到十分愉快。”1995 年,《BYTE》杂志将他列入“计算机工业20 个最有影响力的人”的行列。

键盘与鼠标

今天,个人电脑最常用的输入设备是键盘和鼠标器。
通用101 键或102 键键盘根据英文字母的排列方式而命名,称为QWERTY 键盘。无庸置疑,它“脱胎”于英文打字机。
比尔·盖茨曾用这种键盘来说明什么叫“事实上”的标准:“英语打字机和计算机键盘使用了一种键盘字母排列形式,这种键盘的上排字母的顺序是QWERTY,没有一条法律说它们必须这样排列。但它们却行之有效,大多数用户会执着于这种标准。”有趣的是,QWERTY 键盘的排列方式并非一种合理的布局。QWERTY 键盘的发明者叫克里斯托夫·肖尔斯(C.Sholes),生活在19 世纪美国南北战争时期,是《密尔沃基新闻》编辑。肖尔斯在好友索尔协助下,曾研制出页码编号机,并获得发明专利。报社同事格利登建议他在此基础上进一步研制打字机,并给他找来英国人的试验资料。
在倾注了肖尔斯与两位合伙人数年心血后,1860 年,他们制成了打字机原型。然而,肖尔斯懊丧地发现,只要打字速度稍快,他的机器就不能正常工作。按照常规,肖尔斯把26 个英文字母按ABCDEF 的顺序排列在键盘上,为了使打出的字迹一个挨一个,按键不能相距太远。在这种情况下,只要手指的动作稍快,连接按键的金属杆就会相互产生干涉。为了克服干涉现象,肖尔斯重新安排了字母键的位置,把常用字母的间距尽可能排列远一些,延长手指移动的过程。反常思维方法竟然取得了成功。肖尔斯激动地打出了一行字母:“第一个祝福,献给所有的男士,特别地,献给所有的女士。”肖尔斯“特别地”把他的发明奉献给妇女,他想为她们开创一种亘古未有的新职业——“打字员”。1868年6 月23 日,美国专利局正式接受肖尔斯、格利登和索尔共同注册的打字机发明专利。
以现在的目光看,肖尔斯发明的键盘字母排列方式缺点太多。例如,英文中10 个最常用的字母就有8 个离规定的手指位置太远,不利于提高打字速度;此外,键盘上需要用左手打入的字母排放过多,因一般人都是“右撇子”,英语里也只有三千来个单词能用左手打,所以用起来十分别扭。有人曾作过统计,使用QWERTY 键盘,一个熟练的打字员8 小时内手指移动的距离长达25.7 公里。然而,千万人的习惯成自然,QWERTY 键盘今天仍是电脑键盘“事实上”的标准。虽然1932 年华盛顿大学教授奥古斯特·多芙拉克(A.Dvorak)设计出键位排列更科学的DVORAK 键盘,但始终成不了气候。
鼠标器是美国科学家道格拉斯·恩格巴特(D.Engelbart)在1964 年发明。尼葛洛庞帝教授在《数字化生存》里写道:“当初他设计鼠标是为了指点文件,而不是作画。但是这个发明却流传下来,而且今天随处可见。”
恩格巴特是位卓越的思想家、发明家和电脑先驱人物,一生著有25 部著作,拥有20 多项发明专利和无数的荣誉。他在超文本和超媒体系统、人机交互和网络技术等诸多领域都作出了天才的预见并提出理论框架;他穷其一生的精力,想为人类研制出增加智慧的计算机。鼠标器只是他一个附带的小发明。
恩格巴特二战期间曾担任过舰艇雷达技术员,战后获加州大学伯克利分校博士学位。他常常幻想着电脑也能像雷达一样显示图形,并可以通过操纵杆来控制操作。1964 年,在国防部高级规划研究署(ARPA)资助下,恩格巴特建立了一个“扩增研究中心”来实现他的梦想。1968 年,在美国秋季计算机会议上,恩格巴特向与会者展示了他的新发明:用一个键盘、一台显示器和一个粗糙的鼠标器,远程操作25 公里以外的一台简陋的大型计算机,在当时仍然采用穿孔卡输出的人群中间,引起了极大的轰动。
恩格巴特鼠标原型的外壳用木头精致地雕刻而成,仅有一个按键,而不象现代鼠标有三个按键。它的底部安装着金属滚轮,用来控制光标的移动。1970 年获得专利时,这个小装置的名称是“显示系统X-Y 位置指示器”。美国有人开玩笑说,只有男人才会想到把它叫做“鼠标”,因为在美国俚语里,“老鼠”(Mouse)亦有“女朋友”的寓义。
1972 年,施乐公司帕洛阿托研究中心(PARC)研制出图形界面的“阿托”(Alto)微电脑,研制者中间就有从恩格巴特实验室“跳槽”的人,他们把鼠标器配置在这台电脑上,作为一种方便的图形控制装置。1983 年,苹果公司也跟着把他们的第一个鼠标器装备在“丽莎”(Lisa)微电脑上。从此,鼠标器逐渐成为个人电脑必备的输入设备。

  • 16
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值