计算机程序设计语言的前世今生

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
见的例子,比如说我需要在电脑C盘中找寻一个以{A}的子文件文件,但又不 知道这个文件在哪里,通常,按我们现在的做法,我们会在我地电脑搜索栏 中输入{A}这个搜索目录,进行泛搜索,系统会自动将所有以A字母开头的文 件罗列出来,然后我们便可轻松地在其中找出这个{A3}文件。
但在当时,这样简单的操作是无法实现的,原因在于:
二、高级语言时代(1954-1995)-暨面向过程的高级语言
Ⅰ、FORTRAN 语言—面向过程的高级语言的先驱者,编程语言的第一次革命
1.产生背景:计算机被发明之初由于造价昂贵,它主要被用于科学计算和军事, 比如炮弹和导弹弹道的计算、气象预报中大量的数值计算等。但从1946年第一台 计算机诞生到1953年,计算机一直都缺少两件非常重要的功能,一个叫浮点计算, 一个叫数组下标寻址,这两个功能的缺失直接导致了高级语言的兴起,于是 FORTRAN语言来了。
人类历史上第一个面向过程的高级程序设计语言,第一个第三代程序设计 语言,并引发了程序设计语言的第一次革命,在其之后的60年里,越来越多 的高级语言参照FORTRAN语言如雨后春笋般出现,它们或借鉴于FORTRAN或借 鉴于他的后秀,但不管怎样,都能在它们身上看到FORTRAN的一些思想。
影响周期长。FORTRAN 语言是最早出现的高级语言之一,它的生命周期很 长,从20世纪50年代一直延续至今,在数值计算领域至今仍在使用,特别是 在大型数组的矩阵计算中非常有特色,在计算机语言的发展中仍然占有重要 地位。
汇编语言的图文演示:
程序员挑选出 一部分的指令 助记符,将其 与特定意义的 二进制机器语 言一一对应, 最终将其汇总, 形成汇编语言
随后程序员 针对这些指 令助记符, 编写将这些 指令助记符 翻译成机器 语言的汇编 系统,
汇编系统负责 将这些助记符 翻译成机器码, 并将编译好的 不同片段放到 适当的位置, 形成可执行的 目标码
⑴优点:质量高执行速度快、 效率非常高,占存储空间小。
原因:由于计算机只识别0、1代码,而直接用0、1代码汇编命令、操作的机器语言, 在向计算机发送命令时,计算机可以直接读取操作员的命令而无需进行任何的转化, 因此执行速度快、效率非常高。 ⑵缺点: ①语言难以理解,过于抽象,相关指令系统难于记忆。
②对编程人员要求非常高(要求对计算机的内部硬件结构要非常清楚)
Ⅱ、硬件驱动的编写者—汇编语言(二代语言)
莫奇莱(左) 埃克特(右)
冯.诺依曼
人物简介: ①莫奇莱与埃克特:人类第 一台计算机ENIAC的发明者。 ②冯.诺依曼:开创了现代电 子计算机的模型,世界公认 的“计算机之父” 这三位人类杰出的大脑汇聚 在一起,共同缔造了ENIAC, 前者赐予ENIAC躯体与血液, 后者赐予其计算机的灵魂— 计算机架构模型。 5
2
一、低级语言时代—(1946-1953)
Ⅰ、天书——机器语言最早的计算机语言(一代语言)
1.概念: 机器语言是一种与计算机硬件密切相关的语言,每台计算机都有自己的 指令系统,硬件设计一旦完成,它的指令系统也就确定了,即确定了它的机器语言系 统。 机器语言都是由0和1的序列所组成,包含指令、数据、地址等。
所开发的Speedcoding的程序,适用于浮点数运算,沿用至今。
10
3.约翰·贝克斯开发FORTRAN高级语言的宗旨是什么?
①让程序员可以方便的写数学公式 ②用FORTRAN语言编写的系统最后能够解析/生成足够的快的程序 ③让其能以充分低的代价把含有丰富数学表达式的程序翻译成高效的目标程序。
上述所陈述的几点对于FORTRAN的存在有着至关重要的意义,因为他设计之初就是 为了解决计算机浮点运算和数组下标寻址这两项难点。在生活中,2.2+2.2=4.4这 样一个再简单不过的数学运算,要想让计算机读懂并对它进行正确的运算,在 FORTRAN语言出现前是一件很困难的事,其原因在于计算机只识别0,1机器代码。 想要让计算机识别小数点,需要程序员对其进行大量计算然后转码,再将转码输 入计算机才能得到最终的数值,这无疑会消耗程序员大量的时间。同时由于系统 有低级语言编成,系统无法像FORTRAN及后来的高级语言一样直接识别数学法则与 逻辑的运算,而这也就造成了系统对输入的程序/代码的解析/生成效率低下。而 FORTRAN语言恰好很好的解决了这几个问题。
FORTRAN语 言编程流 程图
程序员对问题 进行分析,并 对此使用合理 地数学公式, 然后将其输入 FORTRAN语言 编辑器
FORTRAN语言 编辑器对输入 的代码、数学 公式进行识别、 排列,然后转 化为机器码, 输入计算机
计算机 识别输 入机器 码并运 算,最 终得出 结果 11
4.FORTRAN语言出现的意义
2.使用方法:光电阅读机将记录在穿孔卡片上的数据读入计算机,计算的结果则 利用打孔机在卡片上打出一些小孔,并按一定规律排列,用以表示输出的结果。而 这样的一些小孔就组成了计算机和专家明白而大部分人都不明白的天书—机器语言。 (如图所示)
诶尼阿克所使用的穿孔卡片
穿孔纸带
3
早期穿孔机
3.机器语言的优点与缺点
4
导语:二十世纪五十年代末期,伴随着二战的全面结束 ,遭受重创的西欧丧失了世界 中心的地位,世界秩序开始重建。最终,版随之布雷顿森林会议的结束,美国,这个 年轻的国家最终胜出,成为世界新的经济中心。伴随着以美元为主的国际货币体系的 成立以及经济的剧烈膨胀,和美苏争霸世界格局的形成,机器语言无法再跟上时代的 步伐,来面对越来越多、越来越频繁的大数据计算。为满足当时的需求,美国迫切需 要一中相比机器语言更方便、更快捷更易上手、更加高效的程序设计语言,用以解决 越来越频繁的大数据计算,用以维护世界经济霸主地位和实现科技霸主的梦想。于是 莫奇莱来了,埃克特来了,冯.诺依曼也来了。这些杰出的大脑汇聚在一起,相互碰撞、 相互借鉴,汇聚出智慧的火花,最终汇编语言诞生了!
7
总结:
从1946年到1953年,无论是机器语言还是之后的汇编语言,本质上都是一对一地将程 序转化为机器码,也就不可避免的在编辑目标程序过程中付出大量的人力物力财力。 并且由于每台计算机的指令系统往往各不相同,同样的程序,要想在另一台计算机上 运行,必须重新编码,而这也就造成了资源及时间的极大浪费。在这个时代,程序设 计意味着巨额时间精力与财力,而我们将这一时期统称为程序设计语言历史中的低级 语言时代,也就是最初级的时代。
汇编语言的缺点: ①兼容性差,由于每一台计算机的指令集都不相同,所以,在 一台计算机上执行的程序,要想在另一台计算机上执行,必须 另编程序,造成了重复工作。 ②将指示命令符转换为机器码的汇编系统编写难度巨 大,会花费程序员大量的时间和精力。
知识拓展:既便是编程技术发展到今天,编程语言仍有其存在的意义,比 如说电脑中的硬件驱动程序(如声卡,显卡等)。硬件驱动的底层程序, 虽然可以用 C 语言来实现,但有时程序员还是使用汇编,原因是汇编语言 编出的程序精简、高效,且与高级语言的库函数无关,因此便于向不同的 硬件环境移植。
①因为浮点预算有一个额外的小数点的引入,在任何时候都要注意小数点的对齐。 落实到硬件上,就是在硬件上设计一个浮点运算,而这需要复杂的电路和大量的电 子元器件。但在早期电子管计算机中,是很少能做到这么大的集成度的。因此,不 支持浮点也是自然的设计取舍。在计算机上放一个浮点模块这个想法,需要等电子 工业继续发展,使得电子管体积小一点,功耗低一点后,才能进入实践。(注*:早 期的计算机内部电路是用的是电子管和晶体管,发热量大,寿命短,易死机,且成 本高昂)
通过汇编系统翻译的汇编语言最终形成计算机所能读懂的目标 机器码并输入计算机,获得所需结果。
6
汇编语言的特性:
汇编语言的实质: 同机器语言类似,本质上还是一对一地将程序转化为机器码。
汇编语言的优点: 同机器语言一样,质量高执行速度快、效率非常高,并且 相比于机器语言,表述更直观易懂,编写难度大大降低, 编程效率大大提高。
促使语言标准化工作被提上了日程,解决了计算机与计算机之间语言的兼 容问题。也在一定程度上加快了全球化的步伐。
我们在前面讲过,由于二进制代码过于抽象难于记忆,于是莫奇莱等人自然而然地想 到用一些助记符来代替这些难于记忆的二进制码,比如用 ADD 代表加法指令、SUB 代 替减法指令、MOV 代表数据传送指令、JUMP 代表地址跳转指令等。但计算机是无法识 别这些代码的,于是莫奇莱等人又发明了将这些指令助记符翻译成机器语言的汇编系 统。 汇编系统负责将这些助记符翻译成机器码, 并将编译好的不同片段放到适当的 位置, 形成可执行的目标码,这就是第二代编程语言汇编语言。
XFTEAM-先锋小组
组长:李晓峰 队员:马通、王加儒、刘凯伦、柯云鹏 总编辑:柯云鹏 制作人:柯云鹏 资料收集:李晓峰、马通、刘凯伦、王 加儒 探讨内容:程序设计语言发展史 主讲:柯云朋
1
程序设计语言的前世今生
导语:1946年2月14日注定是一个不同寻常的日子,在这一天,世界上第一台 电脑ENIAC(埃尼阿克)在美国宾夕法尼亚大学诞生了。他是如此的简陋,如 此的笨重,如此的庞大令人心神恐惧。可是,就是这台大家伙,让人类步入 了计算机文明的时代。而伴随着它的新生,另一样孕育已久的事物也开始快 速成长,它就是计算机语言,也就是我们所说的程序设计语言、编程语言。 而今距离第一台计算机的诞生已经过去了快70年了,计算机不断在变化,变 得越来越小,功能也越变越强大。而随它孕育而生的计算机语言也同样不甘 示弱,甚至更多于前者。发明计算机的人类精英们谁也不曾想到,在这短短 70年中所诞生的编程语言竟然多达2500种。各种语言相互借鉴,关系错综复 杂,共同绘制出属于一个时代的人类奇迹,一个时代的文明密码。
2.FORTRAN语言的发明者:约翰·贝克斯
约翰贝克斯的图片
Байду номын сангаас
1924年12月3日生于美国宾夕法尼亚州费城,1957年4月他所领导13人小组推出全世界
第一套高阶电脑语言FORTRAN,并首次用在IBM 704计算机上面,1958年推出FORTRAN
Ⅱ,几年后又推出FORTRAN Ⅲ,1962年推出FORTRAN Ⅳ,被称为FORTRAN语言之父。他
②当时的计算机内存很小,只有一千到两K的存储空间,为了使更多的存储单元运算 关键的大数据,所以当时所有的机器,都只支持直接寻址,即直接在计算机中输入 {A3},以便减轻计算机运转负荷。
9
由于当时的技术及科技的相对落后,人们无法于硬件上设计一个浮点运算,再加上 当时计算机存储量的低下,人们自然而然的想到能否设计一种系统,让计算机在这 个虚拟世界中,通过特定的逻辑运算和相关命令,来用当前的硬件配置去执行浮点 运算及数组下标寻址。毫无疑问,这种想法是可行的。但当时的机器语言和汇编语 言由于无法有效地编辑逻辑语言和与之相关的预算法则,制约了这种想法的实现。 而FORTRAN 语言的诞生,恰解燃眉之急。
什么是浮点运算和 数组下标寻址????
8
小编解惑:
1.浮点计算:所谓浮点运算,用通俗的话说就是如0.98×12.6这样的实数乘法, 或者0.98+12.6这样的实数加法的运算。用行话说,就是用计算机进行大范围高精度数 的算术运算。而与之相对应的是整数运算,而它们的区别就在于前者有小数点,而后者 没有。2.数组下标寻址:所谓数组下标寻址,指的是一种数组索引操作。举一个常
③编程过程中一但出错,难以修改和维护。
④对操作人员的投资成本非常巨大, 1954 年前后,对程序员的投资接 近计算机本身的价值
⑤使用成本巨大,在用机器语言对计算机进行编程的当时,计算机的使用时 间的1/4~1/2 是花在程序的排错上。由于当时人与计算机的交互是使用卡片 阅读机或者纸带机,程序员写好程序后把程序交给穿孔员,穿孔员再将每一 条指令在卡片或纸带上穿孔,然后通过光电设备读取上面的指令。由于一个 好用的应用程序需要反复调试,因此,编程和排错占了一台计算机运行投资 的 3/4,而这是一个相当巨大的资金损耗。 ⑥通用性差。由于每台计算机的指令系统往往各不相同,所以,在 一台计算机上执行的程序,要想在另一台计算机上执行,必须另编 程序,造成了重复工作。
相关文档
最新文档