程序历史=面向对象程序设计历史发展

教育秘史 2019-09-11103未知admin

  面向对象程序设计历史发展_城乡/园林规划_工程科技_专业资料。面向对象程序设计的历史发展 学院: 班级: 姓名: 学号: 面向对象程序设计技术被认为是程序设计方法学的一场实质性的革命, 是程序设 计方法学得一个里程碑, 以上说法是毋庸置疑的。为了能够更好的

  面向对象程序设计的历史发展 学院: 班级: 姓名: 学号: 面向对象程序设计技术被认为是程序设计方法学的一场实质性的革命, 是程序设 计方法学得一个里程碑, 以上说法是毋庸置疑的。为了能够更好的理解和应用面 向对象的方法进行程序的开发和设计, 我们有必要首先来了解一下面向对象程序 设计的历史和发展。 在 20 世纪 60 年代,软件曾出现过严重危机,由软件错误而引起的信息对视、系 统报废事件屡有发生。程序历史为此,1968 年,荷兰学者 E.W.Dijkstra 提出了程序设计中 常用的 GOTO 语句的三大危害:破坏了程序的京东一致性,程序不易测试,限 制了代码优化, 此举引起了软件界长达数年的论战,并由此产生了结构化程序设 计方法,同时诞生了基于这一设计方法的程序设计语言 Pascal。 由瑞士计算机学家开发的 Pascal,一经推出,它的简介明了以及丰富的数据结构 和控制结构, 为程序员提供了极大地方便性与灵活性,同时它特别适合微计算机 系统, 因此大受欢迎。 它采用结构化程序设计思想。 因此, 结构化方法迅速走红, 并在整个 20 世纪 70 年代的软件开发中占绝对统治地位。 但是,到了 70 年代末期,随着计算机科学的发展和应用领域不断扩大,对计算 机技术的要求越来越高。 结构化程序设计语言和结构化分析与设计已经无法满足 OPP 由此应 用户需求的变化, 于是人们开始寻找更先进的软件开发方法和技术, 运而生。 OPP 即面向对象的程序设计,OPP 技术被认为是程序设计方法学的一场实质性 的革命,是程序设计方法学的一个里程碑。OPP 大大替考了软件的开发效率,减 少了软件开发的复杂性,提高了软件系统的可维护性、可扩展性。 实际上,“对象”和“对象的属性”这样的概念可以追溯到 20 世纪 50 年代初,它们 首先出现于关于人工智能的早期著作中。但是出现了面向对象语言之后,面向对 象思想才得到了迅速的发展。 过去的几十年中,程序设计语言对抽象机制的支持 程度不断提高:从机器语言到汇编语言,到高级语言,直到面向对象语言。汇编 语言出现后,程序员就避免了直接使用 0-1,而是利用符号来表示机器指令,从 而更方便地编写程序;当程序规模继续增长的时候,出现了 Fortran、C、Pascal 等高级语言, 这些高级语言使得编写复杂的程序变得容易,程序员们可以更好地 对付日益增加的复杂性。但是,如果软件系统达到一定规模,即使应用结构化程 序设计方法,局势仍将变得不可控制。作为一种降低复杂性的工具,面向对象语 言产生了,面向对象程序设计也随之产生。 面向对象出现以前, 结构化程序设计是程序设计的主流,结构化程序设计又称为 面向过程的程序设计。 在面向过程程序设计中,问题被看作一系列需要完成的任 务,函数(在此泛指例程、函数、过程)用于完成这些任务,解决问题的焦点集 中于函数。 其中函数是面向过程的,程序历史即它关注如何根据规定的条件完成指定的任 务。在多函数程序中,许多重要的数据被放置在全局数据区,这样它们可以被所 有的函数访问。每个函数都可以具有它们自己的局部数据。 但这种结构很容易造成全局数据在无意中被其他函数改动, 因而程序的正确性不 易保证。 面向对象程序设计的出发点之一就是弥补面向过程程序设计中的一些缺 点:对象是程序的基本元素,它将数据和操作紧密地连结在一起,并保护数据不 会被外界的函数意外地改变。 面向对象设计方法以对象为基础, 利用特定的软件工具直接完成从对象客体的描 述到软件结构之间的转换。 这是面向对象设计方法最主要的特点和成就。面向对 象设计方法的应用解决了传统结构化开发方法中客观世界描述工具与软件结构 的不一致性问题, 缩短了开发周期,解决了从分析和设计到软件模块结构之间多 次转换映射的繁杂过程,是一种很有发展前途的系统开发方法。 面向对象设计方法以对象为基础, 利用特定的软件工具直接完成从对象客体的描 述到软件结构之间的转换。 这是面向对象设计方法最主要的特点和成就。面向对 象设计方法的应用解决了传统结构化开发方法中客观世界描述工具与软件结构 的不一致性问题, 缩短了开发周期,解决了从分析和设计到软件模块结构之间多 次转换映射的繁杂过程,是一种很有发展前途的系统开发方法。 1967 年,挪威计算中心的 Kisten Nygaard 和 Ole Johan Dahl 开发了 Simula67 语言被认为是最早的面向对象程序设计语言。 它引入了所有后来面向对象程序设 计语言所遵循的基础概念:对象、类和继承。正是因为他们对类、对象、继承和 动态绑定等重要概念的首先引入,为面向对象这一当前最流行、最重要的程序设 计技术奠定了基础。 20 世界 60 年代下半期市程序设计语言发展史上的重要时期, 在这个时间区间内, 有 3 中重要的程序设计语言相继推出,除了 Simula 67 外,还有 Algol 68 和 PL/ I。 这三个语言各有特色, 均有创新, 都对后来的程序设计语言产生了重大影响。 但客观地说,Simula 67 的面向对象概念的影响是巨大而深远的。它本身虽然未 能广泛流行,但在它的影响下产生的面向对象技术却迅速传播开来。 70 年代,Smalltalk 的问世又给面向对象的语言注入了新的血液。 而在实践中。人们开始渐渐发现,程序历史由于 C 语言是如此深入人心,以至于当前最 好的解决软件设计危机的方法并不是另外发明一种新语言去代替 C, 而是在它的 原有基础上加以发展,使之可以扩展到面向对象的领域。 在这种形势下,C++于 20 世纪 80 年代初面世。C++保留了 C 语言原有的有点, 同时增加了面向对象的机制。由于 C++对 C 语言的改进主要体增加了类,因此 它最初被设计者称为“带类的 C” ,后来为了强调它是 C 的增强版,就采用 C 语 言中的自加运算符号“++” ,改称它为“C++” 。从 C++的名字中可以看出,C++ 是 C 的超集,因此 C++既可以用于面向过程的结构化程序设计,又可以用于面 向对象的程序设计,是一种功能强大的混合型的程序设计语言。 在 C++之后,影响巨大的就是 Java 和 C#语言了。这两个语言都引入了虚拟机 的概念,从另一个角度分析,它们也是更纯粹的面向对象语言。因为 C++在可 Java 以用于面向过程的结构化程序设计, 而 Java 和 C#则没有这个功能。 不过, 和 C#也有自己的特点,它们都支持丰富的 MetaClasses,这使得一切皆对象的 概念支持的越发深刻。不过 Java 中的基础类型在这方面的并没有得到完善,这 也可以说是一个遗憾吧。虽然如此,Java 仍然是一个一直在学习的语言,相信 Java 可以凭此越走越远。在面向对象发展到现今,又出现了一些重大的变革。 这就是动态语言的出现。 他们也都是支持面向对象技术的。最典型的动态语言有 JavaScript, Python, Ruby 等等。它们一个重大的变化就是将类的信息改变为动 态的,并提出了 Ducking Type 的概念。这在很大程度上提升了编程的生产力。 其实,不仅仅在程序设计方面,面向对象也在不断向其他阶段渗透。 1980 年 Grady Booch 提出了面向对象设计的概念,面向对象分析由此开始。1985 年, 第一个商用面向对象数据库问世。1990 年以来,面向对象分析、测试、度量和 管理等研究都得到长足发展。 从此,全世界掀起了一股面向对象的热潮,至今盛行不衰,面向对象也逐渐成为 了程序设计的主流。 但是同原型方法一样, 面向对象设计方法需要一定的软件基础支持才可以应用, 另外在大型的 MIS 开发中如果不经自顶向下的整体划分,而是一开始就自底向 上的采用面向对象设计方法开发系统,同样也会造成系统结构不合理、各部分关 系失调等问题。 所以面向对象设计方法和结构化方法目前仍是两种在系统开发领 域相互依存的、不可替代的方法。 综上,面向对象对程序设计的影响是巨大的,面向对象的出现是必然的,就算这 段历史重来十次,一百次,乃至一千次,面向对象仍然会应运而生,并一定可以 在新的未来继续发展,成熟,开枝散叶。

网站首页 历史频道 国内秘史 国际秘史 娱乐秘史 财经秘史 体育秘史 文化秘史 军事秘史 房产秘史 教育秘史 历史朝代 中国历史 世界历史 历史小说 人类历史 历史典故 历史故事 历史人物 历史意义

Copyright © 2002-2020 周天秘史网 版权所有  

联系QQ:1352848661