版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
XFTEAM-先锋小组组长:李晓峰队员:马通、王加儒、刘凯伦、柯云鹏总编辑:柯云鹏制作人:柯云鹏资料收集:李晓峰、马通、刘凯伦、王加儒探讨内容:程序设计语言发展史主讲:柯云朋1程序设计语言的前世今生导语:1946年2月14日注定是一个不同寻常的日子,在这一天,世界上第一台电脑ENIAC(埃尼阿克)在美国宾夕法尼亚大学诞生了。他是如此的简陋,如此的笨重,如此的庞大令人心神恐惧。可是,就是这台大家伙,让人类步入了计算机文明的时代。而伴随着它的新生,另一样孕育已久的事物也开始快速成长,它就是计算机语言,也就是我们所说的程序设计语言、编程语言。而今距离第一台计算机的诞生已经过去了快70年了,计算机不断在变化,变得越来越小,功能也越变越强大。而随它孕育而生的计算机语言也同样不甘示弱,甚至更多于前者。发明计算机的人类精英们谁也不曾想到,在这短短70年中所诞生的编程语言竟然多达2500种。各种语言相互借鉴,关系错综复杂,共同绘制出属于一个时代的人类奇迹,一个时代的文明密码。2一、低级语言时代—(1946-1953)Ⅰ、天书——机器语言最早的计算机语言(一代语言)1.概念:
机器语言是一种与计算机硬件密切相关的语言,每台计算机都有自己的指令系统,硬件设计一旦完成,它的指令系统也就确定了,即确定了它的机器语言系统。机器语言都是由0和1的序列所组成,包含指令、数据、地址等。
诶尼阿克所使用的穿孔卡片穿孔纸带早期穿孔机2.使用方法:光电阅读机将记录在穿孔卡片上的数据读入计算机,计算的结果则利用打孔机在卡片上打出一些小孔,并按一定规律排列,用以表示输出的结果。而这样的一些小孔就组成了计算机和专家明白而大部分人都不明白的天书—机器语言。(如图所示)33.机器语言的优点与缺点⑴优点:质量高执行速度快、效率非常高,占存储空间小。
⑵缺点:
原因:由于计算机只识别0、1代码,而直接用0、1代码汇编命令、操作的机器语言,在向计算机发送命令时,计算机可以直接读取操作员的命令而无需进行任何的转化,因此执行速度快、效率非常高。①语言难以理解,过于抽象,相关指令系统难于记忆。②对编程人员要求非常高(要求对计算机的内部硬件结构要非常清楚)③编程过程中一但出错,难以修改和维护。④对操作人员的投资成本非常巨大,1954年前后,对程序员的投资接近计算机本身的价值⑤使用成本巨大,在用机器语言对计算机进行编程的当时,计算机的使用时间的1/4~1/2是花在程序的排错上。由于当时人与计算机的交互是使用卡片阅读机或者纸带机,程序员写好程序后把程序交给穿孔员,穿孔员再将每一条指令在卡片或纸带上穿孔,然后通过光电设备读取上面的指令。由于一个好用的应用程序需要反复调试,因此,编程和排错占了一台计算机运行投资的3/4,而这是一个相当巨大的资金损耗。⑥通用性差。由于每台计算机的指令系统往往各不相同,所以,在一台计算机上执行的程序,要想在另一台计算机上执行,必须另编程序,造成了重复工作。4Ⅱ、硬件驱动的编写者—汇编语言(二代语言)导语:二十世纪五十年代末期,伴随着二战的全面结束,遭受重创的西欧丧失了世界中心的地位,世界秩序开始重建。最终,版随之布雷顿森林会议的结束,美国,这个年轻的国家最终胜出,成为世界新的经济中心。伴随着以美元为主的国际货币体系的成立以及经济的剧烈膨胀,和美苏争霸世界格局的形成,机器语言无法再跟上时代的步伐,来面对越来越多、越来越频繁的大数据计算。为满足当时的需求,美国迫切需要一中相比机器语言更方便、更快捷更易上手、更加高效的程序设计语言,用以解决越来越频繁的大数据计算,用以维护世界经济霸主地位和实现科技霸主的梦想。于是莫奇莱来了,埃克特来了,冯.诺依曼也来了。这些杰出的大脑汇聚在一起,相互碰撞、相互借鉴,汇聚出智慧的火花,最终汇编语言诞生了!莫奇莱(左)埃克特(右)人物简介:①莫奇莱与埃克特:人类第一台计算机ENIAC的发明者。②冯.诺依曼:开创了现代电子计算机的模型,世界公认的“计算机之父”这三位人类杰出的大脑汇聚在一起,共同缔造了ENIAC,前者赐予ENIAC躯体与血液,后者赐予其计算机的灵魂—计算机架构模型。冯.诺依曼5我们在前面讲过,由于二进制代码过于抽象难于记忆,于是莫奇莱等人自然而然地想到用一些助记符来代替这些难于记忆的二进制码,比如用ADD代表加法指令、SUB代替减法指令、MOV代表数据传送指令、JUMP代表地址跳转指令等。但计算机是无法识别这些代码的,于是莫奇莱等人又发明了将这些指令助记符翻译成机器语言的汇编系统。汇编系统负责将这些助记符翻译成机器码,并将编译好的不同片段放到适当的位置,形成可执行的目标码,这就是第二代编程语言汇编语言。汇编语言的图文演示:程序员挑选出一部分的指令助记符,将其与特定意义的二进制机器语言一一对应,最终将其汇总,形成汇编语言
汇编系统负责将这些助记符翻译成机器码,并将编译好的不同片段放到适当的位置,形成可执行的目标码随后程序员针对这些指令助记符,编写将这些指令助记符翻译成机器语言的汇编系统,通过汇编系统翻译的汇编语言最终形成计算机所能读懂的目标机器码并输入计算机,获得所需结果。6汇编语言的特性:汇编语言的实质:同机器语言类似,本质上还是一对一地将程序转化为机器码。汇编语言的优点:同机器语言一样,质量高执行速度快、效率非常高,并且相比于机器语言,表述更直观易懂,编写难度大大降低,编程效率大大提高。汇编语言的缺点:②将指示命令符转换为机器码的汇编系统编写难度巨大,会花费程序员大量的时间和精力。①兼容性差,由于每一台计算机的指令集都不相同,所以,在一台计算机上执行的程序,要想在另一台计算机上执行,必须另编程序,造成了重复工作。知识拓展:既便是编程技术发展到今天,编程语言仍有其存在的意义,比如说电脑中的硬件驱动程序(如声卡,显卡等)。硬件驱动的底层程序,虽然可以用C语言来实现,但有时程序员还是使用汇编,原因是汇编语言编出的程序精简、高效,且与高级语言的库函数无关,因此便于向不同的硬件环境移植。7总结:从1946年到1953年,无论是机器语言还是之后的汇编语言,本质上都是一对一地将程序转化为机器码,也就不可避免的在编辑目标程序过程中付出大量的人力物力财力。并且由于每台计算机的指令系统往往各不相同,同样的程序,要想在另一台计算机上运行,必须重新编码,而这也就造成了资源及时间的极大浪费。在这个时代,程序设计意味着巨额时间精力与财力,而我们将这一时期统称为程序设计语言历史中的低级语言时代,也就是最初级的时代。二、高级语言时代(1954-1995)-暨面向过程的高级语言Ⅰ、FORTRAN
语言—面向过程的高级语言的先驱者,编程语言的第一次革命1.产生背景:计算机被发明之初由于造价昂贵,它主要被用于科学计算和军事,比如炮弹和导弹弹道的计算、气象预报中大量的数值计算等。但从1946年第一台计算机诞生到1953年,计算机一直都缺少两件非常重要的功能,一个叫浮点计算,一个叫数组下标寻址,这两个功能的缺失直接导致了高级语言的兴起,于是FORTRAN语言来了。什么是浮点运算和数组下标寻址????8
1.浮点计算:所谓浮点运算,用通俗的话说就是如0.98×12.6这样的实数乘法,或者0.98+12.6这样的实数加法的运算。用行话说,就是用计算机进行大范围高精度数的算术运算。而与之相对应的是整数运算,而它们的区别就在于前者有小数点,而后者没有。
小编解惑:2.数组下标寻址:所谓数组下标寻址,指的是一种数组索引操作。举一个常见的例子,比如说我需要在电脑C盘中找寻一个以{A}的子文件文件,但又不知道这个文件在哪里,通常,按我们现在的做法,我们会在我地电脑搜索栏中输入{A}这个搜索目录,进行泛搜索,系统会自动将所有以A字母开头的文件罗列出来,然后我们便可轻松地在其中找出这个{A3}文件。但在当时,这样简单的操作是无法实现的,原因在于:①因为浮点预算有一个额外的小数点的引入,在任何时候都要注意小数点的对齐。落实到硬件上,就是在硬件上设计一个浮点运算,而这需要复杂的电路和大量的电子元器件。但在早期电子管计算机中,是很少能做到这么大的集成度的。因此,不支持浮点也是自然的设计取舍。在计算机上放一个浮点模块这个想法,需要等电子工业继续发展,使得电子管体积小一点,功耗低一点后,才能进入实践。(注*:早期的计算机内部电路是用的是电子管和晶体管,发热量大,寿命短,易死机,且成本高昂)②当时的计算机内存很小,只有一千到两K的存储空间,为了使更多的存储单元运算关键的大数据,所以当时所有的机器,都只支持直接寻址,即直接在计算机中输入{A3},以便减轻计算机运转负荷。
9由于当时的技术及科技的相对落后,人们无法于硬件上设计一个浮点运算,再加上当时计算机存储量的低下,人们自然而然的想到能否设计一种系统,让计算机在这个虚拟世界中,通过特定的逻辑运算和相关命令,来用当前的硬件配置去执行浮点运算及数组下标寻址。毫无疑问,这种想法是可行的。但当时的机器语言和汇编语言由于无法有效地编辑逻辑语言和与之相关的预算法则,制约了这种想法的实现。而FORTRAN语言的诞生,恰解燃眉之急。2.FORTRAN语言的发明者:约翰·贝克斯约翰贝克斯的图片1924年12月3日生于美国宾夕法尼亚州费城,1957年4月他所领导13人小组推出全世界第一套高阶电脑语言FORTRAN,并首次用在IBM
704计算机上面,1958年推出FORTRANⅡ,几年后又推出FORTRANⅢ,1962年推出FORTRANⅣ,被称为FORTRAN语言之父。他所开发的Speedcoding的程序,适用于浮点数运算,沿用至今。10①让程序员可以方便的写数学公式②用FORTRAN语言编写的系统最后能够解析/生成足够的快的程序③让其能以充分低的代价把含有丰富数学表达式的程序翻译成高效的目标程序。3.约翰·贝克斯开发FORTRAN高级语言的宗旨是什么?上述所陈述的几点对于FORTRAN的存在有着至关重要的意义,因为他设计之初就是为了解决计算机浮点运算和数组下标寻址这两项难点。在生活中,2.2+2.2=4.4这样一个再简单不过的数学运算,要想让计算机读懂并对它进行正确的运算,在FORTRAN语言出现前是一件很困难的事,其原因在于计算机只识别0,1机器代码。想要让计算机识别小数点,需要程序员对其进行大量计算然后转码,再将转码输入计算机才能得到最终的数值,这无疑会消耗程序员大量的时间。同时由于系统有低级语言编成,系统无法像FORTRAN及后来的高级语言一样直接识别数学法则与逻辑的运算,而这也就造成了系统对输入的程序/代码的解析/生成效率低下。而FORTRAN语言恰好很好的解决了这几个问题。FORTRAN语言编程流程图程序员对问题进行分析,并对此使用合理地数学公式,然后将其输入FORTRAN语言编辑器FORTRAN语言编辑器对输入的代码、数学公式进行识别、排列,然后转化为机器码,输入计算机计算机识别输入机器码并运算,最终得出结果114.FORTRAN语言出现的意义人类历史上第一个面向过程的高级程序设计语言,第一个第三代程序设计语言,并引发了程序设计语言的第一次革命,在其之后的60年里,越来越多的高级语言参照FORTRAN语言如雨后春笋般出现,它们或借鉴于FORTRAN或借鉴于他的后秀,但不管怎样,都能在它们身上看到FORTRAN的一些思想。影响周期长。FORTRAN语言是最早出现的高级语言之一,它的生命周期很长,从20世纪50年代一直延续至今,在数值计算领域至今仍在使用,特别是在大型数组的矩阵计算中非常有特色,在计算机语言的发展中仍然占有重要地位。促使语言标准化工作被提上了日程,解决了计算机与计算机之间语言的兼容问题。也在一定程度上加快了全球化的步伐。图中所展示的是IBM704计算机,发布于1957年,也是首个使用FORTRSAN语言的计算机。当时一经发布,便引起巨大轰动,首批IBM704在很短的时间内变卖脱销,以至于IBM总部不得不加把加点赶工,才勉强满足市场需求。在当时,这台计算机销量超200台,年销售额过十亿美元。而在当时,100万美元相当于现在的1.5亿美元。12导读:FORTRAN语言的产生,让程序设计语言步入了高级语言时代,使得计算机的使用效率大大提高,但FORTRAN语言也有着它的局限性,那就是它不适合来处理日常经济生活中大量的数据,尤其是银行和商业领域的数据。由于早期计算机的价格异常昂贵,在设计之初主要的是用于科学计算,比如弹道导弹弹道轨迹的计算、航天飞行器的轨迹模拟等。但随着时间的推进,科学技术的不断发展,计算机速度越来越快,价格也逐步降低,人美自然而然就想到用计算机来处理日常经济生活中大量的数据,尤其是银行和商业领域的数据。这些数据计算起来并不是特别复杂,但有其内在的规律,比如输入输出的量非常巨大,而且所处理的对象主要以记录和文件的形式,显然使用FORTRAN这种为密集型浮点预算而生的程序处理并不一定适合。于是在1959年,由美国的一些计算机用户组织设计了专门用于商务处理的计算机语言,用以专门处理银行和商业领域的大数据,他就是COBOL语言。Ⅱ、COBOL语言——第一个广泛使用的高级编程语言1.发展历程:1959年5月,五角大楼委托格雷斯·霍波(G.Hopper)博士领导一个委员会并由RearAdmiralGraceHopper公司主持开发,并于1961年由美国数据系统语言协会公布。经不断修改、丰富完善和标准化,已发展为多种版本。2.概念:面向商业的通用语言,又称为企业管理语言、数据处理语言等。是一种专门面向数据处理的、面向文件的、面向过程(POL)的高级编程语言,可使商业数据处理过程精确表达。3.语言特征:①面向数据处理的、面向文件的、面向过程(POL)的高级编程语言,适合于具有循环处理周期的环境(例如打印工资支票)以及数据操纵量相当大的环境。13②功能很强,语言极为冗长,语法与英文很接近,即使不懂电脑的人也能看懂程序。③语法与英文很接近,即使不懂电脑的人也能看懂程序。3.重要性:拥有庞大的用户群和代码,目前用COBOL书写的程序已超过了1000亿行。另外世界上目前所使用的商业应用软件之中的百分之七十是由COBOL代码编写,并以每年大约五十亿行代码的速度在增长。比如在一些大型机、ATM机上使用的仍是COBOL语言。银行、金融和会计行业占其中最大百分比。格雷斯·霍波,改变历史的伟大女程序设计员,计算机软件之母。格雷斯·霍波,一个被很多人遗忘的名字,在20世纪这样一个大师与天才辈出的时代,作为一名女性,注定了被冯诺依曼,埃克特,爱因斯坦,奥本海默等人的光环所掩盖。但当我们拂去掩盖在她身上的历史灰尘,你才会发现她有多么耀眼,哪怕是21世纪的今天,计算机都依然遵守着她所制订的秩序,比如年、月、日各两位的日期存储格式,还比如计算机界通用的术语“臭虫”(Bug和家喻户晓的“千年虫”(Y2K),便都是她的杰作。14前言:在前面,我们了解了机器语言、汇编语言和之后出现的两种高级语言—FORTRAN和GOBOL;。通过对程序设计语言发展过程的剖析,我们能够体会到一门好的程序语言对计算机的重要性,虽然当时的学术界越来越重视计算机语言的研发,但还没对其真正的重视起来,直到ALGOL高级语言的出现,人们对程序设计语言的重视才达到一个符合它本身该达到的地位——成为一门独立的科学学科!我们可以毫不夸张的说,ALGOL高级语言的出现是程序设计语言发展历史中的一项里程碑,无论是其自身的架构还是对于整个程序设计语言,他都当之无愧!!!Ⅲ、ALGOL—第一个结构程序化语言-又称国际代数语言产生背景:高级语言编写程序的编写效率虽然比汇编语言高,但随着计算机硬件技术的日益发展,人们对大型、复杂的软件需求量剧增,而同时因缺乏科学规范、系统规划与测试,程序含有过多错误而无法使用,甚至带来巨大损失。20世纪60年代中后期“软件危机”的爆发,使人们认识到大型程序的编制不同于小程序。“软件危机”的解决一方面需要对程序设计方法、程序的正确性和软件的可靠性等问题进行深入研究,另一方面需要对软件的编制、测试、维护和管理方法进行深入研究。结构化程序设计是一种程序设计的原则和方法。它讨论了如何避免使用GOTO语句;如何将大规模、复杂的流程图转换成一种标准的形式,使得它们能够用几种标准的控制结构(顺序、分支和循环)通过重复和嵌套来表示。在这样的大背景下ALGOL诞生了。1.发展历程:在1958年,ACM小组(美国计算机协会)和以当时联邦德国的应用数学和力学协会(GAMM)在苏黎世召开会议,并把他们关于算法表示法的建议综合为一,制作为一种编程语言,被命名为IAL(国际代数语言,InternationalAlgebraicLanguage),后来改称Algol58,成为ALGOL家族的第一个成员。就这样ALGOL诞生了。152.概念:一种表
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论