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