谈谈编程思想的发展-创新互联

面向机器

最早的程序设计都是采用机器语言来编写的,直接使用二进制码来表示机器能够识别和执行的指令和数据。简单来说,就是直接编写0和1的序列来代表程序语言。例如:使用0000 代表 加载(LOAD),0001 代表 存储(STORE)等。

10年积累的成都网站设计、成都网站制作经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有徽县免费网站建设让你可以放心的选择与我们合作。

机器语言由机器直接执行,速度快,但一个很明显的缺点就是:写起来实在是太困难了,一旦你发现自己写错了,改起来更蛋疼!这样直接导致程序编写效率十分低下,编写程序花费的时间往往是实际运行时间的几十倍或几百倍。

有一个关于机器语言和比尔盖茨的笑话,是说比尔盖茨拿着绣花针在一张光盘上戳,把Windows给戳出来了!但如果真的让你去戳,不要说Windows,连一个简单的“Hello world”都要让人戳到眼睛冒烟!

由于机器语言实在是太难编写了,于是就发展出了汇编语言。汇编语言亦称符号语言,用助记符代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址,。汇编语言由于是采用了助记符号来编写程序,比用机器语言的二进制代码编程要方便些,在一定程度上简化了编程过程。例如使用LOAD 来代替 0000,使用STORE来代替0001。

即使汇编语言相比机器语言提升了可读性,但其本质上还是一种面向机器的语言,编写同样困难,也很容易出错。相信很多计算机毕业的学生至今都对学校的汇编课程中的练习程序心有余悸。

面向过程

面向机器的语言通常情况下被认为是一种“低级语言”,为了解决面向机器的语言存在的问题,计算机科学的前辈们又创建了面向过程的语言。面向过程的语言被认为是一种“高级语言”,相比面向机器的语言来说,面向过程的语言已经不再关注机器本身的操作指令、存储等方面,而是关注如何一步一步的解决具体的问题,即:解决问题的过程,这应该也是面向过程说法的来由。

相比面向机器的思想来说,面向过程是一次思想上的飞跃,将程序员从复杂的机器操作和运行的细节中解放出来,转而关注具体需要解决的问题;面向过程的语言也不再需要和具体的机器绑定,从而具备了移植性和通用性;面向过程的语言本身也更加容易编写和维护。这些因素叠加起来,大大减轻了程序员的负担,提升了程序员的工作效率,从而促进了软件行业的快速发展。

典型的面向过程的语言有:COBOL、FORTRAN、BASIC、C语言等。

面向对象程序设计

结构化编程的风靡在一定程度上缓解了软件危机,然而好景不长,随着硬件的快速发展,业务需求越来越复杂,以及编程应用领域越来越广泛,第二次软件危机很快就到来了。

第二次软件危机的根本原因还是在于软件生产力远远跟不上硬件和业务的发展,相比第一次软件危机主要体现在“复杂性”,第二次软件危机主要体现在“可扩展性”、“可维护性”上面。传统的面向过程(包括结构化程序设计)方法已经越来越不能适应快速多变的业务需求了,软件领域迫切希望找到新的银弹来解决软件危机,在这种背景下,面向对象的思想开始流行起来。

面向对象的思想并不是在第二次软件危机后才出现的,早在1967年的Simula语言中就开始提出来了,但第二次软件危机促进了面向对象的发展。 面向对象真正开始流行是在1980s年代,主要得益于C++的功劳,后来的Java、C#把面向对象推向了新的高峰。到现在为止,面向对象已经成为了主流的开发思想。

虽然面向对象开始也被当做解决软件危机的银弹,但事实证明,和软件工程一样,面向对象也不是银弹,而只是一种新的软件方法而已。

虽然面向对象并不是解决软件危机的银弹,但和面向过程相比,面向对象的思想更加贴近人类思维的特点,更加脱离机器思维,是一次软件设计思想上的飞跃。

面向对象的编程思想:

面向对象( Object )的编程在上世纪九十年代逐渐取代了面向过程的编程,到目前为止仍是主流的方案。程序结构而言也更加成熟, Java , C ++, C #等大规模普及和运用的语言均属于面向对象语言。

何谓面向对象的编程思想?就是在处理问题的时候,将关注点放在事物本身,通过事物自身的属性和行为动作,来进行逻辑问题的解决。面向过程的实现需要制定每一步的办法,而面向对象则是赋予物体一个“属性”(或是赋予人物“性格”),预先设定好面临不同问题的解决办法, N 从而达到目的。因此在认识问题和解决问题上更符合人类解决问题的思维,对于程序员来说更容易。

要了解面向对象的编程思想,首先要了解一些相关的概念:

1.对象( Object ),面向对象编程的核心单位,从概念上来说是对客观

事物的具体描述,从系统角度来说是一个基本单位,解决问题也是从对象出发。

2.类(Clas8),是对具有相同属性和相同动作的一系列对象的集合,例如多边形就是一个类( class )。类为这些对象提供了具体的描述,类的关键描述主要有属性和动作两个内容。属性用来描述对象,动作用来操作对象。在面向对象的编程中,类是对对象的抽象描述,对象则是对类的一个具体实现。

3.抽象( Abstract ),是面向对象编程的一个重要思想,也是面向对象编程的一个基本原则。所阐抽象就是对具体事物特征的一种提取,也就是说,一类具有相同或相似属性的对象,将这些相似或相同的内容以特征的形式提取出来作为抽象化的表述。

4.封装,对象有一定的属性,能够执行一定的动作。如何让这个对象更加具体化整体化,通过封装将属性和动作包装在一起。在实例化对象的同时,属性和动作也一并跟着得到具体化。这样的对象更便于利用,不用知道类内邵结沟的情况可以直接使用对象的国性或者动作。将属性駄于个对象,便得对線開有目已的打为万式,塑像个现实中的物体,对于初学者也更好理解。

较之面向过程,面向对象的编程更加符合实际懈决问题的思维,同题解决的表述更加复杂,但解决方法更加灵活,具有较强的可扩股性。面向对象的编程发较为成熟,使用也较为普遍,但是缺陷一一样不容忽视。面向对象的编程需婴程序员有良好的系统化想想,香则对于对象的

注:不完全

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


文章标题:谈谈编程思想的发展-创新互联
文章出自:http://hbruida.cn/article/eoheg.html