1 面向机器编程

最初的编程是面向机器编程;编程采用机器语言来编写,用二进制表示机器能识别的指令和数据,也就是直接使用0和1表示。这种编程方式写起来困难、出错了也难以调试。后面出现了汇编语言,利用助记符来帮助程序员记忆一些机器指令的操作码,地址符号(Symbol)或标号(Label)代替指令或操作数的地址。在一定程度上简化了编程的难度,但开发人员仍然要精确掌握CPU指令、寄存器、段地址等底层硬件的细节。

2 面向过程编程

面向过程的语言不再将精力放在关注底层硬件的操作指令、存储等方面。而是关注问题一步步解决的步骤,即问题解决的过程。面向过程相比面向机器是一次思想上的飞跃。将程序员从复杂的机器操作和运行细节中解放出来,转而去关注具体要解决的问题本身。面向过程语言不再与具体的机器绑定,提高了通用性和移植性。

软件危机

软件危机其原因,衔接到硬件的整体复杂度,与软件开发流程。危机表现在几个方面:

  • 项目运行超出预算。
  • 项目运行超过时间。
  • 软件质量低落。
  • 软件通常不匹配需求。
  • 项目无法管理,且代码难以维护。

为了解决软件危机提出了“软件工程”和“结构化程序设计”的概念来解决软件危机的问题。(结构化程序设计主要特点是GOTO语句有害论,主张放弃GOTO语句,采取自定而下、逐步细化、模块化)。软件工程和结构化程序设计在一定程度上降低了软件开发的复杂度,是面向过程设计思想的一次改进。

3 面向对象编程

结构化编程一定程度上缓解了软件危机,但随着硬件的快速发展,业务需求的不断增长,应用范围的不断扩展,出现了第二次软件危机。相对于第一次危机体现在软件复杂性上,第二次危机体现在软件的可扩展性、可维护性上。面向对象和面向过程一样不是解决软件危机的银弹,面向对象思想是软件设计思想上的又一次飞跃,更一步缓解了软件危机的负面影响。

转载于:https://www.cnblogs.com/mysic/p/8448688.html

[第一章]一、面向对象思想的发展相关推荐

  1. 第一章 人工智能的研究和发展《2022年斯坦福AI指数报告》中文全解读

    斯坦福大学的人工智能机构 Stanford Institute for Human-Centered Artificial Intelligence (HAI)发布的这第五版<AI指数报告> ...

  2. 马克思 第一章 世界的物质性及其发展规律

    1.恩格斯认为,全部哲学,特别是近代哲学的重大的基本问题是(C) A. 哲学与人类生存活动之间的内在联系问题 B. 人与周围世界的基本联系问题 C.   思维和存在的关系问题 D.   关于人的本质问 ...

  3. 第一章 Borland的诞生和发展

    一直想写篇文章,讲述我个人在过去10多年来工作中经历的一些事情,以及这些日子 中那些我心目中的伟大的工程师们对于信息界的贡献.如果读者和我的年龄差不多, 那对于这些内容可能会更有兴趣,因为它们揭示了当 ...

  4. 第一章:摄像起源与发展,中国人是始祖

    慧眼网 邓林供稿 编者按:我们将推出由行业资深专家Louis编写的摄像头系列经典教材.该套教材分十余篇,介绍了摄像头的起源发展.基础知识.关键器件及专项技术等,以平实的语言系统介绍手机摄像头的相关知识 ...

  5. python全栈开发中级班全程笔记(第三模块、第一章(1.面向对象基础))

    python全栈开发笔记第三模块           第一部分 第一章 :面向对象(类) 一.面向过程编程1.面向过程编程:主要是过程二字,所谓过程,就是指解决问题的步骤,也可以说是设计一套流水线(机 ...

  6. ASP.NET MVC 3 Framework之旅 第一章

    第一章 伟大的思想 ASP.NET MVC是来自于微软的整合了有效性的和整洁的模式-视图-控制器(MVC)架构的一种Web开发框架,它的最新的思想和技术来自于敏捷性开发,是最好的ASP.NET平台.A ...

  7. 开始C++的学习(第一章)~美少女战士,加油!

    第一阶段所用书籍:<C++轻松入门> 王浩著 人民邮电出版社 参考书籍:<Absolute C++>中英文版 (亦为第二阶段主打书籍) 接下来的blog,更倾向于学习笔记,好了 ...

  8. WSN(1):第一章  绪论

    目录 第一章  绪论 传感器网络的发展历史 什么是无线传感器网络 无线网络的分类: WSN的标准定义: WSN的目的: WSN特点以及对应技术: 传感器网络节点的组成模块: 传感器网络的组成体系: 传 ...

  9. 《深入理解Java虚拟机》-周志明 -第3版-第一章摘记

    第一章讲了java的发展和变迁,在章节末作者讲到了编译openjdk源码和调试源码 java发展史 java的诞生起因史1991年4月,James Gosling博士领导的绿色计划(Green Pro ...

最新文章

  1. 微众银行AI团队开源联邦学习框架,并发布《联邦学习白皮书1.0》
  2. GANs笔记(1) - 初步了解 GANs
  3. 用户名 不在 sudoers文件中,此事将被报告
  4. MySQL数据库“十宗罪”(十大经典错误案例)
  5. HDU1524(博弈--有向无环图SG函数)
  6. Leetcode 动态规划 Trapping Rain Water
  7. mysql 5.6.22编译_saltstack全编译安装mysql5.6.22
  8. IBM、Google、Oracle三巨头的公有云之殇(下)
  9. 【安全牛学习笔记】COCAT
  10. python 关于反射和类的特殊成员方法
  11. 1.7.05:输出亲朋字符串
  12. 数据饕餮,盛夏旋风!天善学院SVIP冰点促最后一波!
  13. CMS3.0——初次邂逅express
  14. linux leach仿真数据传输图性能,基于OMNeT-+-+的Leach协议的仿真研究.pdf
  15. java 阴阳历,Java基础-有意思的阴阳历互换的算法
  16. k2.第一章 基于kubeadm安装kubernetes v1.20 -- 集群部署(二)
  17. EOS dice移到1.8版本的修改汇总
  18. LiteFlowNet:用于光流估计的轻量级卷积神经网络
  19. 一个创业小公司老板的管理经验
  20. Linux安装和使用Xftp6和Xshell6教程

热门文章

  1. java 线程加载类_怎么判断java当前线程是否加载了一个类的字节码
  2. java 日期for循环_java for循环的时候增加循环体的长度是不是不太好的?
  3. mysql数据库隐式表_解析MySQL隐式转换问题
  4. SpringBoot Idea快速创建工程
  5. flask v0.1 路由
  6. nginx http server
  7. C语言 FileStreaming fopenfclose
  8. MySQl Window Function Concepts
  9. 编程通用知识 文件流
  10. 2.3 词嵌入的特性