世界上第一个编译仪
⑴ 请问,编译软件最早是由谁发明出来的
Grave of Grace
后记
Grace Hopper是个非常amazing的人 (常被称为Amazing Grace),崇拜她的人相当多。虽然她的事迹很多,但是还有很多有类似事迹的人并没有像她这样受到众人的崇拜。由其中一点我们可以看出来:从1947年开始 (二战结束后第二年),她获得了第一个荣誉博士学位 (宾州大学),从那以后,她先后被40多所大学授予荣誉博士学位,其中包括芝加哥大学、华盛顿大学、马里兰大学等知名学府。各种妇女社会团体和学术组织都曾授予Grace各种称号和奖励。1991年,布什总统在白宫授予她的“美国国家技术奖” (National Medal of Technology) 是其中的最高奖项,她也是至今惟一获此殊荣的美国女性。她的名言有很多,她自己最喜欢的,也是她最喜欢对所谓的“年轻人”说的 (在她年老时,她所谓的年轻人就是“年龄不到我的一半的人就叫做年轻人”),这句话是:
“A ship in port is safe, but that is not what ships are built for.”
语录
下面Grace的语录中有几句比较有意思的话。
From then on, when anything went wrong with a computer, we said it had bugs in it.
The most dangerous phrase in the language is, “We’ve always done it this way.”
Humans are allergic to change. They love to say, “We’ve always done it this way.” I try to fight that. That’s why I have a clock on my wall that runs counter-clockwise.
Leadership is a two-way street, loyalty up and loyalty down. Respect for one’s superiors; care for one’s crew.
One accurate measurement is worth a thousand expert opinions.
Someday, on the corporate balance sheet, there will be an entry which reads, “Information”; For in most cases, the information is more valuable than the hardware which processes it.
We’re flooding people with information. We need to feed it through a processor. A human must turn information into intelligence or knowledge. We’ve tended to forget that no computer will ever ask a new question.
To me programming is more than an important practical art. It is also a gigantic undertaking in the foundations of knowledge.
They told me computers could only do arithmetic.
In pioneer days they used oxen for heavy pulling, and when one ox couldn’t budge a log, they didn’t try to grow a larger ox. We shouldn’t be trying for bigger computers, but for more systems of computers.
Life was simple before World War II. After that, we had systems.
We went overboard on management and forgot about leadership. It might help if we ran the MBAs out of Washington.
At any given moment, there is always a line representing what your boss will believe. If you step over it, you will not get your budget. Go as close to that line as you can.
I seem to do a lot of retiring.
I handed my passport to the immigration officer, and he looked at it and looked at me and said, “What are you?”
参考
维基网络:
http://en.wikipedia.org/wiki/Grace_Hopper
国立中央大学数学系:
http://li.math.ncu.e.tw/bcc16/pool/3.06.shtml
耶鲁大学计算机系:
http://cs-www.cs.yale.e/homes/tap/Files/hopper-story.html
计算机先驱:
http://202.207.0.245:9001/jisuanjifazhanshi/xianqu/18.htm
This entry was posted in网络3Cand taggedcompiler,debug,Grace Murray Hopper,传记,发明,编译器,起源. Bookmark thepermalink.Post a commentor leave a trackback:Trackback URL.
⑵ 计算机是什么时候发明的
回顾计算机发展史上的英雄:从帕斯卡到摩尔(1)
计算机发展其实经历了很漫长的时间,也可以分为古代史,代代史。而现在我们所接触的刚大多数是从现代史开始的。电脑的史前史应该从计算工具发端,至少可以追溯到我们祖先用石头或手指帮助计数的远古时代。
古代史
远古时期的结绳纪事,算筹,直至现在还要的算盘,到后面所发明的各种和样的计算机工具。这些都是计算机古代史的成就。而帕斯卡所发明的加法器则第一次确立了计算机器的概念。在电脑史前史里,帕斯卡被公认为制造出机械计算机的第一人。自16岁开始, 帕斯卡就在构思一种计算机。1639年,帕斯卡的父亲受命出任诺曼底省监察官,负责征收税款。他看着年迈的父亲费力地计算税率税款,未来的科学家想到了要为父亲制做一台可以帮助计算的机器。为了这个梦想,帕斯卡日以继夜地埋头苦干,先后做了三个不同的模型,耗费了整整三年的光阴。他不仅需要自己设计图纸,还必须自己动手制造。从机器的外壳,直到齿轮和杠杆,每一个零件都由这位少年亲手完成。为了使机器运转得更加灵敏,帕斯卡选择了各种材料做试验,有硬木,有乌木,也有黄铜和钢铁。终于, 第三个模型在1642年, 帕斯卡19岁那年获得了成功,他称这架小小的机器为“加法器”。帕斯卡加法器是一种系列齿轮组成的装置,外壳用黄铜材料制作,是一个长20英寸、宽4英寸、高3英寸的长方盒子,面板上有一列显示数字的小窗口,旋紧发条后才能转动, 用专用的铁笔来拨动转轮以输入数字。 这种机器开始只能够做6位加法和减法。然而,即使只做加法,也有个“逢十进一”的进位问题。聪明的帕斯卡采用了一种小爪子式的棘轮装置。当定位齿轮朝9转动时,棘爪便逐渐升高;一旦齿轮转到0,棘爪就“咔嚓”一声跌落下来,推动十位数的齿轮前进一档。
父亲的上司、法国财政大臣来到他家,观看帕斯卡表演“新式的计算机器”, 并且鼓励他投入生产,大力推广这种“人类有史以来第一台计算机”。不久,帕斯卡“加法器”在法国引起了轰动,机器展出时,人们成群结队前往卢森堡宫参观。就连大数学家笛卡尔听说后, 也乘回国探亲的机会,亲自上门观看。帕斯卡后来总共制造了50台同样的机器, 有的机器计算范围扩大到8 位,其中有两台,至今还保存在巴黎国立工艺博物馆里。
但在这之前所发明的机器都有一个不足――缺乏程序控制的功能。富含戏剧的是,工业社会首次大规模应用程序控制的机器不是计算机,而是纺织行业中的提花编织机,然而,它对计算机程序设计的思想产生过巨大的影响力。杰卡德提花机奏响了机器自动化的序曲,它的发明还引出了计算机史上一位惊世骇俗伟大人物,他就是英国剑桥大学科学家巴贝奇(C.Babbage)。巴贝奇对杰卡德提花机,特别是对穿孔卡片控制机器运转的天才设计十分神往,他甚至收藏着一幅用24000张卡片编织而成的杰卡德本人的肖像, 并梦想着用类似的方法设计一台计算机。
回顾计算机发展史上的英雄:从帕斯卡到摩尔(2)
作者:jmu.e.cn 2005年08月16日 15:20 来源:jmu.e.cn
18世纪末,法国数学界调集大批数学家,组成了人工手算的流水线,经过长期艰苦奋斗,终于完成了17卷《数学用表》的编制,但是,手工计算出的数据出现了大量错误。这件事情强烈刺激了巴贝奇,20岁那年,他着手开始计算机的研制工作。巴贝奇在他的自传《一个哲学家的生命历程》里,写到了发生在1812年的一件事:“有一天晚上,我坐在剑桥大学分析学会办公室里,神志恍惚地低头看着面前打开的一张对数表。一位会员走进屋来,瞧见我的样子,忙喊道:‘喂!你梦见什么啦?’我指着对数表回答说:‘我正在考虑这些表也许能用机器来计算!’”
巴贝奇的第一个目标是制作一台“差分机”。所谓“差分”的含义,是把函数表的复杂算式转化为差分运算,用简单的加法代替平方运算,快速编制不同函数的数学用表。
巴贝奇耗费了整整10年时间,于1822年完成了第一台差分机,可以处理3个不同的5位数, 计算精度达到6位小数,当即就演算出好几种函数表。由于当时工业技术水平极低,第一台差分机从设计绘图到机械零件加工,都由巴贝奇亲自动手实施。成功的喜悦激励着巴贝奇,他上书英国皇家学会,要求政府资助他建造第二台运算精度达20位的大型差分机。 英国政府同意为这台机器提供1.7万英镑的资助。巴贝奇自己也投资1.3万英镑巨款,弥补研制经费的不足。
第二台差分机约有25000个零件, 零件误差要求不超过每英寸千分之一,用蒸汽机驱动。巴贝奇把机器交给了英国最着名的机械工程师约瑟夫•克莱门特所属工厂制造,但工程进度十分缓慢。第二个10年过去后,全部零件只完成了一半。参加试验的同事们纷纷离去,巴贝奇独自苦苦支撑第三个10年,最后只得把图纸和部分零件送进博物馆保存。
巴贝奇一共绘制了21张大型差分机设计图纸。1991年,为了纪念巴贝奇200周年诞辰,英国肯圣顿(Kensington)科学博物馆根据这些图纸重新建造了一台差分机。复制过程中,只发现图纸存在着几处小的错误。复制者特地采用18世纪中期的技术设备来制作,不仅成功地造出了机器,而且可以正常运转。他们猜想,当年巴贝奇没能完成大型差分机研制,或许不完全是技术方面的问题。
而计算机被用于大规模数据处理刚是由美国人口普查局的统计学家霍列瑞斯(H.Hollerith)博士,他用穿孔卡完成了第一次大规模数据处理。
数字计算机首先来源于理论突破,是逻辑代数为开关电路设计奠定了的数学基础。
逻辑代数又称布尔代数,正是以它的创立者——英国数学家布尔(G.Boole)而命名。1815年生于伦敦的布尔家境贫寒,父亲是位鞋匠,无力供他读书。他的学问主要来自于自学。年仅12岁,布尔就掌握了拉丁文和希腊语,后来又自学了意大利语和法语。16岁开始任教以维持生活,从20岁起布尔对数学产生了浓厚兴趣,广泛涉猎着名数学家牛顿、拉普拉斯、拉格朗日等人的数学名着,并写下大量笔记。这些笔记中的思想,1847年被用于他的第一部着作《逻辑的数学分析》之中。
1854年,已经担任柯克大学教授的布尔再次出版《思维规律的研究——逻辑与概率的数学理论基础》。以这两部着作,布尔建立了一门新的数学学科。
在布尔代数里,布尔构思出一个关于0和1的代数系统,用基础的逻辑符号系统描述物体和概念。这种代数不仅广泛用于概率和统计等领域,更重要的是,它为今后数字计算机开关电路设计提供了最重要数学方法。
布尔一生发表了50多篇科学论文、两部教科书和两卷回顾计算机发展史上的英雄:从帕斯卡到摩尔(3)
作者:jmu.e.cn 2005年08月16日 15:20 来源:jmu.e.cn
1916年出生在美国密执安州的申龙,从小热爱机械和电器,表现出很强的动手能力。1936年毕业于密执安大学工程与数学系,工程与数学就成为他一生的兴趣所在。
在麻省理工大学攻读硕士期间,他选修了布尔代数,并且幸运地得到微分分析仪研制者布什博士的亲自指导。导师布什曾对他预言说,微分分析仪的模拟电路必定可以用符号逻辑替代。从布尔的理论和布什的实践里,申龙逐渐悟出了一个道理——前者正是后者最有效的数学工具。
1938年,年仅22岁的申龙在硕士论文的基础上,写就了一篇着名的论文《继电器和开关电路的分析》,被认为是通讯历史上最杰出的理论之一。由于布尔代数只有0和1两个值,恰好与二进制数对应,申龙把它运用于以脉冲方式处理信息的继电器开关,从理论到技术彻底改变了数字电路的设计方向。因此,这篇论文在现代数字计算机史上也具有划时代的意义。
1840年取得了博士学位,申龙在AT&T贝尔实验室里度过了硕果累累的15年。他用实验证实,完全可以采用继电器元件制造出能够实现布尔代数运算功能的计算机。1948年,申龙又发表了另一篇至今还在闪烁光芒的论文——《通信的数学基础》 , 从而给自己赢来“信息论之父”的桂冠。1956年,他参与发起了达特默斯人工智能会议,成为这一新学科的开山鼻祖之一。他不仅率先把人工智能运用于电脑下棋方面,而且发明了一个能自动穿越迷宫的电子老鼠,以此证明计算机可以通过学习提高智能。
最后一台“史前”计算机叫 MarkⅠ,在计算机发展史上占据重要地位的电磁式计算机叫 MarkⅠ,它是电脑“史前史”里最后一台着名的计算机。
在先驱者行列中,MarkⅠ发明人、美国哈佛大学艾肯(H.Aiken)博士是大器晚成者。由于家庭贫困,他不得不以半工半读的方式艰难地读完职业高中,大学也是边工作边学习,才完成学业。毕业后,艾肯谋到了一份总工程师的工作。但36岁那年,他毅然辞去收入丰厚的职务,重新走进哈佛大学读博士。由于博士论文涉及到空间电荷的传导理论,需要求解非常复杂的非线性微分方程,艾肯很想发明一种机器代替人工求解的方法,帮助他解决数学难题。
三年后,艾肯是在图书馆里发现了巴贝奇和阿达的论文,以当时的科技水平,也许已经能够完成巴贝奇未竞的事业,造出通用计算机。为此,他写了一篇《自动计算机的设想》的建议书,提出要用机电方式,而不是用纯机械方法来构造新的“分析机”。
为了获得研制经费, 已在海军军械局任职的艾肯中尉,找到IBM公司沃森求助。沃森慷慨地提供了100万美元, 并且派来4名工程师协助。IBM公司也因此告别了制表机行业,正式跨进了计算机领域。
有IBM作坚强后盾, 计算机研制在哈佛大学里进行, 艾肯为它取名MarkⅠ, 又叫做“自动序列受控计算机”。1944年,经过四年的努力,MarkⅠ在哈佛大学正式启动。它的外壳用钢和玻璃制成,长约15米,高约2.4米,自重达31.5吨。它装备了3000多个继电器,共有15万个元件和长达800公里的电线,用穿孔纸带输入。这台机器每秒能进行3次运算,23位数加23位数的加法,仅需要0.3秒;而进行同样位数的乘法,则需要6秒多时间。
艾肯继续主持MarkⅡ、MarkⅢ等计算机的研制,但它们已经属于电子计算机的范畴。
1951年诞生的MarkⅢ,是第一台配备磁鼓存储器的计算机,虽然艾肯坚持程序和数据必须分别存储在不同的磁鼓里。MarkⅢ也是第一台被杂志公开发表的计算机,右图为《时代》周刊刊载的MarkⅢ外貌特征油画,该画现保存在哈佛大学。
有趣的是, 为Mark系列计算机编写程序的, 也是一位女数学家,名叫格雷斯•霍波(G. Hopper) 。数学博士出身的霍波,1944年加入到哈佛大学计算机研究行列,她说:“我成了世界上第一台大型计算机MarkⅠ的第三名程序员。”MarkⅠ完工后,由于艾肯忙于机型改进设计,运行工作主要由霍波负责。
数学逻辑着作。为了表彰他的成功,都柏林大学和牛津大学先后授予这位自学的成才的数学家荣誉学位,他还被推选为英国皇家学会会员。
1938年,美国数学家申龙(C. Shannon),第一次在布尔代数和继电器开关电路之间架起了桥梁。
回顾计算机发展史上的英雄:从帕斯卡到摩尔(4)
作者:jmu.e.cn 2005年08月16日 15:20 来源:jmu.e.cn
1946年,霍波博士在发生故障MarkⅡ计算机里找到了一只飞蛾,这只小虫被夹扁在继电器的触点里,影响了机器运作。于是,霍波把它小心地保存在工作笔记里,并恢谐地把程序故障统称为“臭虫”(bug),这一奇怪的称呼,后来成为计算机领域的专业术语。
艾肯与霍波等人研制出了电磁式计算机,他们曾联名发表文章说,MarkⅠ计算机能自动实现人们预先选定的系列运算,甚至可以求解微分方程。他们终于实现了巴贝奇分析机的夙愿,但是,这种机器从它投入运行的那一刻开始就已经过时,因为人类社会已经跨进了电子时代。
近代史
电子管的发明使计算机进入了电子计算机。从弗莱明发明第一只电子管到公认的第一台电脑ENIAC问世,历经了近50年。事实上,这一时期早就有人试制过真正的电子计算机。
1973年10月19日, 美国一家地方法院经过135次开庭,当众宣布一项判决书:“莫契利和埃克特没有发明第一台计算机,只是利用了阿坦那索夫发明中的构思。”理由是阿坦那索夫早在 1941年,就把他对电子计算机的初步设想告诉过ENIAC的发明人。
阿坦那索夫(J. Atanasoft)是衣阿华大学数学物理教授,保加利亚裔的美国博士。与艾肯博士相似,为指导研究生作毕业论文,他也遇到求解微分方程的难题,并设想把计算尺改造成大型的计算装置。在1935年到1937年间,阿坦那索夫冷静地分析了他接触过的机械式、电磁式计算机,反复比较了各种方案。1939年隆冬的一个晚上,阿坦那索夫心情沮丧,计算机设计遇到了难关,始终无法解决,他只好驱车驶上高速公路兜风。开着汽车一连跑了几百英里,阿坦那索夫把车停靠伊里诺斯州路旁小店前,要了两杯饮料,独自坐了下来。
阿坦那索夫后来回忆说:“我想或许喝了两杯饮料,思维变得活跃起来,使我长期困惑不解的难题,一下子迎刃而解了。”逻辑电路、二进制码、记忆元件……,计算机的结构一一构思成熟。更重要的是,他打算采用电子管作为开关元件。
由于他对电子技术不太熟悉, 于是从电子工程系物色到一位应届毕业生贝瑞 (C.Berry),在物理楼地下室里建立了“车间”。阿坦那索夫和贝瑞计划制造的电子计算机,将可以解出有30个未知数的方程, 可他们只申请到600美元的经费,仅能够造一个部件。直到 1939年10月,他们才装配出一台试验样机。
在试验样机基础上, 他们下一步打算研制的机器叫“ABC”,即“阿坦那索夫—贝瑞—计算机”三单词的英文字头,用300多个电子管组装。1941年年底,ABC主要部件已经定型,只有穿孔卡设备有待最后完成。由于美国正式参加反法西斯战争,贝瑞离开学校前往一家军事工程公司工作, 这台机器原定的目标没有实现。
ABC计算机存放在衣阿华大学物理楼的储存室里,1946年被人拆散,唯一只留下了存储器部件,逐渐被人遗忘。衣阿花大学没有为ABC申请专利, 给电子计算机的发明权问题带来了旷日持久的法律纠纷。美国地方法院的裁定也不无道理,因为ENIAC的发明者莫契利确实到衣阿华大学参观过ABC电子计算机,从阿坦那索夫天才的思想里受益匪浅。
回顾计算机发展史上的英雄:从帕斯卡到摩尔(5)
作者:jmu.e.cn 2005年08月16日 15:20 来源:jmu.e.cn
电脑创世记
举世公认的第一台电子计算机ENIAC, 诞生在战火纷飞的二次世界大战,它的“出生地”是美国马里兰州阿贝丁陆军试炮场。 鲜为人知的是,阿贝丁试炮场研制电子计算机的最初设想,出自于“控制论之父”维 纳(L.Wiener)教授的一封信。早在一次世界大战期间,维纳就曾来过阿贝丁试炮场。当时弹道实验室负责人、着名数学家韦伯伦(O.Veblen)请他为高射炮编制射程表。在这里, 他不仅萌生了控制论的思想,而且第一次看到了高速计算机的必要性。
多年来,维纳与模拟计算机发明人布什一直在麻省理工学院共事,结下深厚的友谊。 1940年,在给布什的信中,维纳写道,现代计算机应该是数字式,由电子元件构成,采用二进制,并在内部储存数据。维纳提出的这些原则,为电子计算机指引了正确的方向。
1943年,二次世界大战关键时期,战争需要像一只有力的巨手,给电脑的诞生铺平了道路。由于阿贝丁试炮场再次承担美国陆军新式火炮的试验任务,陆军军械部派青年军官戈德斯坦(H. Glodstine)中尉,从宾夕法尼亚大学莫尔电气工程学院召集来一批研究人员,帮助计算弹道表。 戈德斯坦本人就是数学家, 战前在密歇根大学任数学助理教授。他从陆军抽调了100 多名姑娘作辅助性人工计算,不仅效率低还经常出错。莫尔学院的两位青年学者——36岁 副教授莫契利(J. Mauchiy)和24岁的工程师埃克特(P.Eckert),向戈德斯坦提交了一 份研制电子计算机的设计方案——“高速电子管计算装置的使用”,他们建议用电子管为 主要元件,制造一台前所未有的计算机,把弹道计算的效率提高成百上千倍。
4月9日,陆军军械部召集会议审议这份报告。会议即将结束时,身为军械部科学顾问 的韦伯伦教授一言九鼎,他猛然站起身,“砰”地一声推开身后的椅子,对阿贝丁试炮场 负责人大声说:“西蒙,给戈德斯坦这笔经费!”说完这句话,立即转身向大门外走去, 戏剧性地决定了第一台电子计算机的命运。 军方与莫尔学院签订的协议是提供14万美元的研制经费,但后来合同被修订了12次, 经费一直追加到了48万,大约相当于现在1000多万美元。
莫尔学院研制小组是一个朝气蓬勃的跨学科攻关小组,在科技史上留下了敢冒风险、 敢于取胜的美名。小组成员包括物理学家、数学家和工程师30余名。其中,戈德斯坦在科 研组织方面表现出杰出的才干,负责协调项目进展。发挥主要作用的是莫契利和埃克特, 及一位名叫勃克斯(A. Burks)的工程师。莫契利是总设计师,主持机器的总体设计; 埃克特是总工程师,负责解决复杂而困难的工程技术问题;勃克斯则作为逻辑学家,为计算机设计乘法器等大型逻辑元件。
然而, 为支援战争赶制的机器没能在战争期间完成,直到1946年2月14日,恰逢当年“情人节”,世界上第一台电子计算机才研制成功。 这台机器的名字叫“ENIAC”(埃历阿克),即“电子数值 积分和计算机” 的英文缩写。它采用穿孔卡输入输出数据,每分钟可以输入125张卡片, 输出100张卡片。
在ENIAC内部,总共安装了17468只电子管,7200个二极管,70000多电阻器,10000多 只电容器和6000只继电器,电路的焊接点多达50万个;在机器表面,则布满电表、电线和 指示灯。 机器被安装在一排2.75米高的金属柜里,占地面积为170平方米左右,总重量达 到30吨。这台机器还不够完善,比如,它的耗电量超过174千瓦;电子管平均每隔7分钟就 要被烧坏一只,埃克特必须不停更换。
尽管如此, ENIAC的运算速度达到每秒钟5000次加法,可以在3/1000秒时间内做完两个10位数乘法, 其运算速度超出Mark Ⅰ至少1000倍。一条炮弹的轨迹,20秒钟就能被它算完,比炮弹本身的飞行速度还要快。 ENIAC标志着电子计算机的创世,人类社会从此大步迈进了电脑时代的门槛。
回顾计算机发展史上的英雄:从帕斯卡到摩尔(6)
作者:jmu.e.cn 2005年08月16日 15:20 来源:jmu.e.cn
电脑语言的历程
电脑语言也叫程序语言(Program Lauguage),是人与电脑交流和沟通的工具。
早期电脑都直接采用机器语言,即用“0”和“1”为指令代码来编写程序,难写难读,编程效率极低。为了方便编程,随即出现了汇编语言,虽然提高了效率,但仍然不够直观简便。从1954年起,电脑界逐步开发了一批“高级语言”,采用英文词汇、符号和数字,遵照一定的规则来编写程序。高级语言诞生后,软件业得到突飞猛进的发展。
1953年12月, IBM公司程序师约翰•巴科斯(J. Backus) 写了一份备忘录,建议为IBM704设计一种全新的程序设计语言。巴科斯曾在“选择顺序控制计算机”(SSEC)上工作过3年, 深深体会到编写程序的困难性。他说:“每个人都看到程序设计有多昂贵,租借机器要花去好几百万,而程序设计的费用却只会多不会少。”
巴科斯的目标是设计一种用于科学计算的“公式翻译语言”(FORmula TRANslator)。他带领一个13人小组,包括有经验的程序员和刚从学校毕业的青年人,在IBM704电脑上设计出编译器软件, 于1954年完成了第一个电脑高级语言——FORTRAN语言。1957年,西屋电气公司幸运地成为FORTRAN的第一个商业用户, 巴科斯给了他们一套存储着语言编译器的穿孔卡片。 以后,不同版本的FORTRAN纷纷面世,1966年,美国统一了它的标准,称为FORTRAN 66语言。 40多年过去,FORTRAN仍然是科学计算选用的语言之一,巴科斯因此摘取了1977年度“图林奖”。
FORTRAN广泛运用的时候, 还没有一种可以用于商业计算的语言。美国国防部注意到这种情况, 1959年5月,五角大楼委托格雷斯•霍波博士领导一个委员会,开始设计面向商业的通用语言(Common Business Oriented Langauge) ,即COBOL语言。COBOL最重要的特征是语法与英文很接近, 可以让不懂电脑的人也能看懂程序;编译器只需做少许修改,就能运行于任何类型的电脑。委员会一个成员害怕这种语言的命运不会太长久, 特地为它制作了一个小小的墓碑。然而,COBOL语言却幸存下来。1963年,美国国家标准局将它进行了标准化。用COBOL写作的软件,要比其他语言多得多。
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年度“图林奖”。
回顾计算机发展史上的英雄:从帕斯卡到摩尔(7)
作者:jmu.e.cn 2005年08月16日 15:20 来源:jmu.e.cn
1983年度的 “图林奖” 则授予了AT&T贝尔实验室的两位科学家邓尼斯•里奇 (D.Ritchie)和他的协作者肯•汤姆森(K. Thompson),以表彰他们共同发明着名的电脑语言C。C语言现在是当今软件工程师最宠爱的语言之一。
里奇最初的贡献是开发了UNIX操作系统软件。他说,这里有一个小故事:他们答应为贝尔实验室开发一个字处理软件, 要求购买一台小型电脑PDP-11/20,从而争取到10万美元经费。可是当机器购回来后,他俩却把它用来编写UNIX系统软件。UNIX很快有了大量追随者,特别是在工程师和科学家中间引起巨大反响,推动了工作站电脑和网络的成长。1970年, 作为UNIX的一项“副产品”,里奇和汤姆森合作完成了C语言的开发,这是因为研制C语言的初衷是为了用它编写UNIX。这种语言结合了汇编语言和高级语言的优点,大受程序设计师的亲睐。
1983年, 贝尔实验室另一研究人员比加尼•斯楚士舒普 (B.Stroustrup),把C语言扩展成一种面向对象的程序设计语言C++。如今,数以百万计的程序员用它来编写各种数据处理、实时控制、系统仿真和网络通讯等软件。斯楚士舒普说:“过去所有的编程语言对网络编程实在太慢,所以我开发C++,以便快速实现自己的想法,也容易写出更好的软件。”1995年,《BYTE》杂志将他列入“计算机工业20个最有影响力的人”的行列。
晶体管革命
1997年,《时代》周刊记者在评选年度风云人物的文章里写道:“新泽西州,50年前的这个星期,1947年12月23日一个细雨朦朦的星期二午后,当贝尔实验室两位科学家用一些金箔、一些半导体材料和一个弯曲的别针来展示他们的新发现时,数字化革命诞生了。
同事们怀着好奇和羡慕,看着他俩演示这个被命名为晶体管的能使电流放大并能控制电流开关的东西。”
两位科学家是布拉顿(W. Brattain)和巴丁(J.Bardeen)。在晶体管发明过程中起到最关键作用的还有另外一位科学家,他的名字叫肖克利(W.Shockley)。
毕业于麻省理工学院的博士生肖克利,1936年来到AT&T贝尔实验室工作,与布拉顿合作研究项目。工作之余,他们常在一起讨论技术,希望能用研制一种取代电子管的新器件。
二战结束后,巴丁也加入了肖克利研究小组,把目光集中在具有半导体特性的晶体。肖克利提出了研究框架,巴丁熟知固体物理学理论,布拉顿最擅长实验操作, 三位科学家珠联璧合。1947年圣诞节前夕,布拉顿和巴丁已经用实验证明,只要两根金属丝在半导体上的接触点距离小于0.4毫米, 就可能引起放大效果。布拉顿以精湛的实验技艺,在三角形金箔上划了一道细痕
⑶ 计算机辅助技术的发展历程
CAD/CAM/CAE技术的发展与计算机图形学的发展密切相关,并伴随着计算机及其外围设备的发展而发展。计算机图形学中有关图形处理的理论和方法构成了CAD/CAM/CAE技术的重要基础。综观CAD/CAM/CAE技术的发展历程,主要经历了以下主要发展阶段。
20世纪50年代,计算机主要用于科学计算,使用机器语言编程,图形设备仅具有输出功能。美国麻省理工学院(MIT)在其研制的旋风I号计算机上采用了阴极射线管(CRT)作为图形终端,并能被动显示图形。其后出现了光笔,开始了交互式计算机图形学的研究,也为CAD/CAM技术的出现和发展铺平了道路。1952年MIT首次试制成功了数控铣床,通过数控程序对零件进行加工,随后MIT研制开发了自动编程语言(APT),通过描述走刀轨迹的方法来实现计算机辅助编程,标志着CAM技术的开端。1956年首次尝试将现代有限单元法用于分析飞机结构。50年代末,出现了平板式绘图仪和滚筒式绘图仪,开始了计算机绘图的历史。此间CAD技术处于酝酿、准备阶段。
20世纪60年代,这是交互式计算机图形学发展的最重要时期。1963年MIT学者I.E.Sutherland发表了题为“人机对话图形通讯系统”的博士论文,首次提出了计算机图形学等术语。由他推出的二维SKETCHPAD系统,允许设计者操作光笔和键盘,在图形显示器上进行图形的选择、定位等交互作业,对符号和图形的存储采用分层的数据结构。这项研究为交互式计算机图形学及CAD技术奠定了基础,也标志着CAD技术的诞生。此后,出现了交互式图形显示器、鼠标器和磁盘等硬件设备及文件系统和高级语言等软件。并陆续出现了许多商品化的CAD系统和设备。例如,1964年美国通用汽车公司研制了用于汽车设计DAC-1系统,1965年美国洛克希德飞机公司开发了CADAM系统,贝尔电话公司也推出了GRAPHIC-1系统等。此间CAD技术的应用以二维绘图为主。在制造领域中,1962年研制成功了世界上第一台机器人,实现物料搬运自动化,1965年产生了计算机数控机床CNC系统,1966年以后出现了采用通用计算机直接控制多台数控机床DNC系统以及英国莫林公司研制的由计算机集中控制的自动化制造系统。20世纪60年代末,挪威开始了CAPP技术的研究,并于1969年正式推出第一个CAPP系统AutoPros。
20世纪70年代,计算机图形学理论及计算机绘图技术日趋成熟,并得到了广泛应用。这期间,硬件的性能价格比不断提高;图形输入板、大容量的磁盘存储器等相应出现;数据库管理系统等软件得以应用;以小型、超小型计算机为主机的CAD/CAM系统进入市场并形成主流,这些系统的特点是硬件和软件配套齐全、价格便宜、使用方便,形成所谓的交钥匙系统(Turnkey System)。同时,三维几何建模软件也相继发展起来,出现了一些面向中小企业的CAD/CAM商品化系统,法国达索公司率先开发出以表面模型为特点的三维曲面建模系统CATIA。20世纪70年代中期开始创立CAPP系统的研究与开发。1976年由CAM-I公司开发了CAPP系统——CAM-I Automated Process Planning。在制造方面,美国辛辛那提公司研制出了一条柔性制造系统(FMS),将CAD/CAM技术推向了新的阶段。这一时期各种计算机辅助技术的功能模块已基本形成,但数据结构尚不统一,集成性差,应用主要集中在二维绘图、三维线框建模及有限元分析方面。
20世纪80年代,CAD/CAM技术及其应用系统得到迅速发展。这期间,出现了微型计算机和32位字长工作站,同时,计算机硬件成本大辐下降,计算机外围设备(彩色高分辨率图形显示器、大型数字化仪、自动绘图机、彩色打印机等)已逐渐形成系列产品,网络技术也得到应用;CAD与CAM相结合,形成了CAD/CAM集成技术,导致了新理论、新算法的大量涌现。在软件方面,不仅实现了工程和产品的设计计算和绘图,而且还实现了工程造型、自由曲面设计、机构分析与仿真等工程应用,特别是实体建模、特征建模、参数化设计等理论的发展和应用,推动CAD技术由表面模型到实体建模,再到参数化建模发展,并出现了许多成熟的CAD软件。在此期间,为满足数据交换要求,相继推出了有关标准(如CGI、GKS、IGES及STEP等)。20世纪80年代后期,人们认识到计算机集成制造(CIM)的重要性,开始强调信息集成,出现了CIMS,将CAD/CAM技术推向了更高的层次。
20世纪90年代以来,CAD/CAM/CAE技术更加强调信息集成和资源共享,出现了产品数据管理技术,CAD建模技术日益完善,出现了许多成熟的CAD/CAE/CAM集成化的商业软件,如采用变量化技术的I-DEAS、应用复合建模技术的UG等。随着世界市场的多变与激烈竞争,随着各种先进设计理论和先进制造模式的发展,随着高档微机、操作系统和编程软件的发展,随着网络技术的迅速发展,CAD/CAM/CAE技术正在经历着前所未有的发展机遇与挑战,正在向集成化、网络化、智能化和标准化方向发展。 一个完善的CAD/CAM/CAE系统应具有如下功能:快速数字计算及图形处理功能、几何建模功能、处理数控加工信息的功能、大量数据和知识的存储及快速检索与操作功能、人机交互通信功能、输入和输出信息及图形功能、工程分析功能等。为实现这些功能,CAD/CAM/CAE系统的运行环境由硬件、软件和人三大部分所构成。
硬件主要包括计算机及其外围设备等具有有形物质的设备,广义上讲硬件还包括用于数控加工的机械设备和机床等。硬件是CAD/CAM/CAE系统运行的基础,硬件的每一次技术突破都带来CAD/CAM/CAE技术革命性的变化。软件是CAD/CAM/CAE系统的核心,包括系统软件、各种支撑软件和应用软件等。硬件提供了CAD/CAM/CAE系统潜在的能力,而系统功能的实现是由系统中的软件运行来完成。随着CAD/CAM/CAE系统功能的不断完善和提高,软件成本在整个系统中所占的比重越来越大,目前一些高端软件的价格已经远远高于系统硬件的价格。
任何功能强大的计算机硬件和软件均只是辅助设计工具,而如何充分发挥系统的功能,则主要是取决于用户的素质,CAD/CAM/CAE系统的运行离不开人的创造性思维活动,不言而喻,人在系统中起着关键的作用。在21世纪初,CAD/CAM/CAE系统基本都采用人机交互的工作方式,这种方式要求人与计算机密切合作,发挥各自所长:计算机在信息的存储与检索、分析与计算、图形与文字处理等方面具有特有的功能;人则在创造性思维、综合分析、经验判断等方面占有主导地位。 CAD/CAM系统的硬件主要由计算机主机、外存储器、输入设备、输出设备、网络设备和自动化生产装备等组成。有专门的输入及输出设备来处理图形的交互输入与输出问题,是CAD/CAM/CAE系统与一般计算机系统的明显区别。
(1)计算机主机
主机是CAD/CAM/CAE系统的硬件核心,主要由中央处理器(CPU)及内存储器(也称内存)组成。CPU包括控制器和运算器,控制器按照从内存中取出的指令指挥和协调整个计算机的工作,运算器负责执行程序指令所要求的数值计算和逻辑运算。CPU的性能决定着计算机的数据处理能力、运算精度和速度。内存储器是CPU可以直接访问的存储单元,用来存放常驻的控制程序、用户指令、数据及运算结果。衡量主机性能的指标主要有两项:CPU性能和内存容量。按照主机性能等级的不同,可将计算机分为大中型机、小型机、工作站和微型机等不同档次。
(2)外存储器
外存储器简称外存,用来存放暂时不用或等待调用的程序、数据等信息。当使用这些信息时,由操作系统根据命令调入内存。外存储器的特点是容量大,经常达到数百MB、数十GB或更多,但存取速度慢。常见的有磁带、磁盘(软盘、硬盘)和光盘等。随着存储技术的发展,移动硬盘、U盘等移动存储设备成为外存储器的重要组成部分。
(3)输入设备
输入设备是指通过人机交互作用将各种外部数据转换成计算机能识别的电子脉冲信号的装置,主要分为键盘输入类(如:键盘)、指点输入类(如:鼠标)、图形输入类(如:数字化仪)、图像输入类(如:扫描仪、数码相机)、语音输入类等。
(4)输出设备
将计算机处理后的数据转换成用户所需的形式,实现这一功能的装置称为输出设备。输出设备能将计算机运行的中间或最终结果、过程,通过文字、图形、影像、语音等形式表现出来,实现与外界的直接交流与沟通。常用的输出设备包括显示输出(如:图形显示器)、打印输出(如:打印机)、绘图输出(如:自动绘图仪)及影像输出、语音输出等。
(5)网络互联设备
包括网络适配器(也称网卡)、中继器、集线器、网桥、路由器、网关及调制解调器等装置,通过传输介质联接到网络上以实现资源共享。网络的连接方式即拓扑结构可分为星状结构、环状结构、树状结构、网状结构、等结构。先进的CAD/CAM系统都是以网络的形式出现的。 为了充分发挥计算机硬件的作用,CAD/CAM/CAE系统必须配备功能齐全的软件,软件配置的档次和水平是决定系统功能、工作效率及使用方便程度的关键因素。计算机软件是指控制CAD/CAM/CAE系统运行、并使计算机发挥最大功效的计算机程序、数据以及各种相关文档。程序是对数据进行处理并指挥计算机硬件工作的指令集合,是软件的主要内容。文档是指关于程序处理结果、数据库、使用说明书等,文档是程序设计的依据,其设计和编制水平在很大程度上决定了软件的质量,只有具备了合格、齐全的文档,软件才能商品化。
根据执行任务和处理对象的不同,CAD/CAM/CAE系统的软件可分系统软件、支撑软件和应用软件三个不同层次。系统软件与计算机硬件直接关联,起着扩充计算机的功能和合理调度与运用计算机硬件资源的作用。支撑软件运行在系统软件之上,是各种应用软件的工具和基础,包括实现CAD/CAM/CAE各种功能的通用性应用基础软件。应用软件是在系统软件及支撑软件的支持下,实现某个应用领域内的特定任务的专用软件。
(1)系统软件
系统软件是用户与计算机硬件连接的纽带,是使用、控制、管理计算机的运行程序的集合。系统软件通常由计算机制造商或软件公司开发。系统软件有两个显着的特点:一是通用性,不同应用领域的用户都需要使用系统软件;二是基础性,即支撑软件和应用软件都需要在系统软件的支持下运行。系统软件首先是为用户使用计算机提供一个清晰、简洁、易于使用的友好界面;其次是尽可能使计算机系统中的各种资源得到充分而合理的应用。系统软件主要包括三大部分:操作系统、编程语言系统和网络通信及其管理软件。
操作系统是系统软件的核心,是CAD/CAM/CAE系统的灵魂,它控制和指挥计算机的软件资源和硬件资源。其主要功能是硬件资源管理、任务队列管理、硬件驱动程序、定时分时系统、基本数学计算、日常事务管理、错误诊断与纠正、用户界面管理和作业管理等。操作系统依赖于计算机系统的硬件,用户通过操作系统使用计算机,任何程序需经过操作系统分配必要的资源后才能执行。21世纪流行的操作系统有Windows、UNIX、Linux。
编程语言系统主要完成源程序编辑、库函数及管理、语法检查、代码编译、程序连接与执行。按照程序设计方法的不同,可分为结构化编程语言和面向对象的编程语言;按照编程时对计算机硬件依赖程度的不同,可分为低级语言和高级语言。21世纪广泛使用面向对象的编程语言,如Visual C++、Visual Basic、Java等。
网络通信及其管理软件主要包括网络协议、网络资源管理、网络任务管理、网络安全管理、通信浏览工具等内容。国际标准的网络协议方案为“开放系统互连参考模型”(OSI),它分为七层:应用层、表示层、会话层、传输层、网络层、数据链路层和物理层。CAD/CAM/CAE系统中流行的主要网络协议包括TCP/IP协议、MAP协议、TOP协议等。
(2)支撑软件
支撑软件是CAD/CAM软件系统的重要组成部分,一般由商业化的软件公司开发。支撑软件是满足共性需要的CAD/CAM/CAE通用性软件,属知识密集型产品,这类软件不针对具体的应用对象,而是为某一应用领域的用户提供工具或开发环境。支撑软件一般具有较好的数据交换性能、软件集成性能和二次开发性能。根据支撑软件的功能可分为功能单一型和功能集成型软件。功能单一型支撑软件只提供CAD/CAM/CAE系统中某些典型过程的功能,如交互式绘图软件、三维几何建模软件、工程计算与分析软件、数控编程软件、数据库管理系统等。功能集成型支撑软件提供了设计、分析、造型、数控编程以及加工控制等综合功能模块。
1)交互式绘图软件
这类软件主要以交互方法完成二维工程图样的生成和绘制,具有图形的编辑、变换、存储、显示控制、尺寸标注等功能;具有尺寸驱动参数化绘图功能;有较完备的机械标准件参数化图库等。这类软件绘图功能很强、操作方便、价格便宜。在微机上采用的典型产品是AutoCAD以及国内自主开发的CAXA电子图板、PICAD、高华CAD等。
2)三维几何建模软件
这类软件主要解决零部件的结构设计问题,为用户提供完整准确地描述和显示三维几何形状的方法和工具,具有消隐、着色、浓淡处理、实体参数计算、质量特性计算、参数化特征造型及装配和干涉检验等功能,具有简单曲面造型功能,价格适中,易于学习掌握。这类软件在国内的应用主要以MDT、SolidWorks和SolidEdge为主。
3)工程计算与分析软件
这类软件的功能主要包括基本物理量计算、基本力学参数计算、产品装配、公差分析、有限元分析、优化算法、机构运动学分析、动力学分析及仿真与模拟等,有限元分析是核心工具。ADAMS。
4)数控编程软件
这类软件一般具有刀具定义、工艺参数的设定、刀具轨迹的自动生成、后置处理及切削加工模拟等功能。应用较多的有MasterCAM、SurfCAM及CAXA制造工程师等。
5)数据库管理系统
工程数据库是CAD/CAM/CAE集成系统的重要组成部分,工程数据库管理系统能够有效地存储、管理和使用工程数据,支持各子系统间的数据传递与共享。工程数据库管理系统的开发可在通用数据库管理系统基础上,根据工程特点进行修改或补充。21世纪比较流行的数据库管理系统有ORACLE、SYBASE、FOXPRO、FOXBASE等。
(3)功能集成型软件
1)Pro/Engineer
2)UG
3)I-DEAS
4)CATIA