黄糖故事 Niklaus Wirth和PASCAL凡是学过一点计算机知识的人大概都知道“数据结构+算法二程序”这一著名公式。提出这一公式的瑞士计算机科学家Niklaus Wirth由于发明了多种影响深远的程序设计语言,并提出结构化程序设计这一革命性概念而获得了1984年的图灵奖。Wirth开发的PASCAL在数据结构和过程控制结构方面都有很多创造,比如Java中字符型、引用型,以及if-then-else、while、for等多种控制结构,都是从PASCAL里面借鉴发展而来的。可以说,现代程序设计语言中常用的数据结构和控制结构绝大多数都是由PASCAL语言奠定基础的,因此PASCAL在程序设计语言的发展史上具有承上启下的重要里程碑意义。现在你知道为什么很多计算机专业的学生都要学PASCAL语言了吧。1971年,Wirth基于其开发程序设计语言和编程的实践经验,首次提出了“结构化程序设计”(structured programming)的概念。这个概念的要点是:不要求一步就编制成可执行的程序,而是分若干步进行,逐步求精。第一步编出的程序抽象度最高,第二步编出的程序抽象度有所降低……最后一步编出的程序即为可执行的程序。用这种方法编程,似乎复杂,实际上优点很多,可使程序易读、易写、易调试、易维护、易保证其正确性及验证其正确性。结构化程序设计方法又称为“自顶向下”或“逐步求精”法,在程序设计领域引发了一场革命,成为程序开发的一个标准方法,尤其是在后来发展起来的软件工程中获得广泛应用。有人评价说沃思的结构化程序设计概念“完全改变了人们对程序设计的思维方式”,这是一点也不夸张的。黄糖故事 Philippe Kahn的Borland传奇Wirth开发PASCAL的初衷是为了有一个适合于教学的语言。但一经推出,由于它的简洁明了、提供丰富的数据结构和控制结构,使得程序开发大为简便,竟然大受欢迎。在C语言问世以前,PASCAL是风靡全球、最受欢迎的语言之一,不但创下了发行拷贝数最多的世界记录,而且成为大学数据结构教学的“惟一官方指定”语言。Phillipe Kahn是Niklaus Wirth的学生,毕业后到美国加利福尼亚州创立了Borland公司,凭借拳头产品Turbo PASCAL,当时就卖出了100多万个拷贝,成为百万富翁。而Borland公司是程序员津津乐道到程序开发工具供应商,他们从最早的Turbo PASCAL、Turbo C、Turbo PROLOG等Turbo系列,到如今的Delphi、C++ Builder、JBuilder、C# Builder系列,无一不是举足轻重的开发工具,从而在开发者心目中有着崇高的地位。二、今生
虽然结构化程序设计使得程序员世界观经历了巨大变革,行之有效地解决了软件开发中的许多问题,然而,结构化程序设计并不能完全解决软件危机,人们仍然渴望生产效率更高、更可靠、易维护、易管理的开发思想和开发方法。实际上,人们认识世界,是有一些基本的法则的:·区分事物及其属性,如自行车和车子的颜色。
·区分整体对象及其组成部分,如区分自行车和车轮。
·不同对象类的形成及其区分,如山地自行车和两人休闲车虽然有相当的区别,但都属于自行车这个类型。心理学研究表明,把客观世界由许多对象组成,对象具有其属性和行为,之间存在着各种联系,这样能够更好的刻画问题域,也更接近人类的自然思维方式。这就是面向对象程序开发思想的由来。对象的概念最早出现于五十年代人工智能的早期著作中,而OO(面向对象)的实际发展始于1966年的Kisten Nygaard和Ole-Johan Dahl开发的Simula语言。正如名字昭示的,Simula可以模拟客观世界。比如在著名的银行出纳问题中,你可以创建若干个出纳员对象,若干个客户对象,还有若干钱对象以及交易对象(即把存款、提款等交易动作看成一个对象)—— 这个世界是由对象组成的。所有出纳员对象,除了各自的状态不同,都是属于的出纳员这个抽象类别。出纳员对象和客户对象之间通过消息传递进行交互,并且最终生成若干个交易对象,而交易对象可以操纵钱对象,完成存款或者提款的动作。你看,这个银行柜台世界,是不是完全可以由对象模拟呢?从而,面向对象设计程序,主要就是设计抽象的类。面向对象程序设计思想是一个里程碑。Alan Kay设计了世界上第一个完全面向对象的语言Smalltalk并成为图灵奖得主,Bjarne Stroustrup明智地把面向对象和最流行的C语言结合而开发了有史以来取得最大成功的C++语言,Anders Hejlsberg把PASCAL的面向对象版本Object PASCAL结合构件的思想开发出Windows平台上最优秀的快速程序开发(RAD)工具之一Delphi,James Gosling结合Internet背景开发了本咖啡馆赖以谋生计的Java语言,Bill Gates把.Net体系结构完全构筑在面向对象之上……黄糖故事 “面向对象”与“物件导向”阅读台湾技术作家的文章时经常会遇到“物件导向”一词。实际上,这是港澳台地区的计算机科学家对“Object Oriented”的翻译,与我们所说的“面向对象”是一回事情。不过,如果仔细从OO的理念品评一下两者的味道,似乎“物件导向”这个翻译更雅,更原汁原味。虽然面向对象只是从语法上引入为面向对象服务的封装、继承、多态等概念,但是必须看到,OO并非一种特殊的规定或者行业规范,而是一个优秀的理念,学习Java,应该把OO当作指导思想。(待续)
Java咖啡馆(7)——大话面向对象(上)
转载Java咖啡馆(7)——大话面向对象(上)
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
开发日记3(java面向对象)
面向对象、字符数字转换
java 面向过程 类变量 -
简单的咖啡文化静态HTML网页设计作品 DIV布局咖啡馆文化网页模板代码 DW咖啡网站制作成品
例比较全面,
dreamweaver web前端大作业 网页设计与制作 web html -
【大话设计模式】面向对象基础
目录类与实例什么是类?什么是对象?什么是实
构造方法 字段 实例化 -
投资她一个奶茶店和咖啡馆(代码实现)【网页可以自己修改】
<!doctype html><html lang="en"><
elementui postman webview html ide -
基于Java的咖啡馆管理系统参考文献 咖啡馆毕设
一、系统截图(需要演示视频可以私聊) 目 录摘 要 Abstract 第1章 前 言 1.1 研究背景 1.2 研究现状 1.3 系统开发目标 第2章 &
基于Java的咖啡馆管理系统参考文献 课程设计 java mysql 计算机毕业设计