标签:机器 软件质量 构造器 原因 多个 火箭发射 dijkstra 地址 高峰
摘自《从零开始学架构》
机器语言(1940年)
最早的软件开发使用的是“机器语言”,直接使用二进制码0和1来表示机器可以识别的指令和数据。
汇编语言(20世纪40年代)
为了解决机器语言编写、阅读、修改复杂的问题,汇编语言应运而生。汇编语言又叫“符号语言”,用助记符号代替机器指令的操作码,用地址符号(Symbol)或标号(Lable)代替指令或操作数的地址。
汇编语言编写依然非常复杂,同时,不同CPU的汇编指令和结构是不同的。
高级语言(20世纪50年代)
上世纪50年代开始出现了许多高级语言,最初的高级语言有如下几个,且这些语言至今还在特定的领域继续使用。
Fortran:1955年,名称取自“FORmula TRANslator”,即公式翻译器,由约翰巴科斯等人发明。
LISP:1958年,名称取自“LISt Processor”,即枚举处理器,由约翰麦卡锡等人发明。
Cobol:1959年,名称取自“Common Business Oriented Language”,即通用商业导向语言,由葛丽丝霍普发明。
高级语言让程序员不需要关注机器底层的低级结构和逻辑,而只关注具体的问题和业务即可。
第一次软件危机与结构化程序设计(20世纪60年代-20世纪70年代)
随着软件的规模和复杂度大大增加,20世纪60年代中期开始爆发了第一次软件危机,典型的表现是软件质量低下、项目无法如期完成、项目严重超支等。因为软件而导致的重大事故时有发生,如1963年美国水手一号火箭发射失败事故,就是因为一行Fortran代码错误导致的。
IBM的System/360操作系统开发,布鲁克斯作为项目主管,率领2000多个程序员夜以继日,共计花费5000人一年的工作量,写出近100万行代码,总共投入5亿美元,但项目进度一再延迟,软件质量无法保障。布鲁克斯的基于该项目经验总结而写的《人月神话》成为了畅销书。
为了解决问题,在1968年、1969年连续召开两次著名的NATO会议,会议正式提出“软件危机”一词,并提出了针对性的解决方案“软件工程”,但事实证明“软件工程”无法根除软件危机。
“结构化程序设计”作为另一种解决软件危机的方案被提出,Edsger Dijkstra于1968年发表了著名的《GOTO有害论》论文,引起了长达数年的论战,并由此产生了结构化程序设计方法。同时,第一个结构化的程序设计语言Pascal也在此时诞生,并迅速流行起来。
结构化程序设计的主要特点是抛弃goto语句,采取“自顶向下、逐步细化、模块化”的指导思想。结构化程序设计本质上还是一种面向过程的设计思想,但通过“自顶向下、逐步细化、模块化”的方法,将软件的复杂度控制在一定范围内,从而整体上降低了软件开发的复杂度。
第二次软件危机与面向对象(20世纪80年代)
结构化编程一定程度上缓解了软件危机,然而随着硬件的快速发展,业务需求越来越复杂,以及编程应用领域越来越广泛,第二次软件危机很快到来。第二次软件危机的根本原因是软件生产力远远跟不上硬件和业务的发展,主要体现在软件的”扩展“变得非常复杂。在这种背景下,面向对象思想开始流行起来。
面向对象思想早在1967年的Simula语言中就开始提出了,但第二次软件危机促进了该思想的发展。面向对象真正流行起来是20世纪80年代,主要得益于C++的功劳,后来的Java、C#把面向对象推向了新的高峰。
20世纪90年代开始,软件架构的概念越来越流行。
知识清单:
OOP
权限控制
数据成员
方法成员
构造器
this
static
二、类的加载
标签:机器 软件质量 构造器 原因 多个 火箭发射 dijkstra 地址 高峰
原文地址:https://www.cnblogs.com/aidata/p/12036704.html