我们来看一下,编程语言这一部分希望给大家来介绍的就是程序设计范型这样的一个概念
那么,包括面向对象编程语言它的发展历史 我根据 OOD
的模型如何来选择相应的编程语言 来进行这个实现编程中的这样一些设计方案
那么程序设计范型,我觉得 我想强调的是,大家可以看到这个维基百科里面指的这一点,就是
程序设计范型也称为编程范型或者编程范式 它是指一类典型的编程风格
如过程化的编程、 面向对象的编程、 指令式的编程等为不同的编程范型
所以,编程范型实际上它是为程序员提供了 对于程序执行的这样的一种看法,我到底是它什么样的一种执行方式,对吧
比如说,面向对象编程中,程序员认为程序是一系列相互作用的对象
那么在函数式编程中呢,一个程序被看作是一个无状态的函数计算的序列
所以,是看待这个系统中的 这个程序执行的不同的这样的一个特点的这样的一个着眼点
所以,我觉得那个蔡希尧教授呢相当于他给出来的说,便于计算机系统的这个思考方法 它体现了一类语言的主要特点。
所以大家看 每种的编程范型都会跟什么,那种语言所体现的这样
的一个内涵是相挂钩的,对吧,它是面向对象呢,还是过程式的 还是函数啊等等,这样的一些特点
那么,程序设计范型呢可以分成以下的这么几大类 一种是面向过程的程序设计范型,那么这个
基本的思想就是过程设计,决定所需的过程,过程
设计过程的算法,那么,关键就是过程调用,语言提供这个面向过程传递变元和返回值的设施
比如说我们所熟悉的什么,C 语言,对吧,还有 Pascal,整个这个语言性都是面向过程的这样的一个程序 设计范型。
那么,模块化程序的这样的一个设计思想,那么,这里面主要是采用的信息隐蔽,对吧
希望的是相关的数据结构和算法结合在一个模块中 那么,这个里面为代表的比如说,Modual-2,那么其它的程序
设计范型,比如说还有结构化的程序范型啊,函数式的程序设计等等这样的一些 设计范型。
那我们这里面想强调的是面向 对象它作为一种程序设计范型,它的思想是希望
在这个以上的设计范型的基础上呢增加一些类、
继承,用面向对象的一些概念 来去创建整个的这个系统中程序的各种的单元
那么,思想也希望既从客观世界存在的
事物以及事物之间的联系直接出发去来描述它们的整个的这个
特点,同时呢,又尽可能运用人类的一些自然的这样一些思维方式
所以,它的整个的这个体现就是,采用了面向 对象的基本概念来进行程序设计,比如说,对象、
类、 继承等等这样一些基本概念 那我们来看一下,面向对象的编程语言
它的这个特点就是,希望的是 语言本身能够支持类的定义,对象的静态的声明和动态的创建
包括属性和操作的定义,继承啊、 聚合、 关联等等这样的一些基本的表示
那么语言的机制希望能提供这个类的这样的一个机制啊 同时,希望能提供一定的封装机制,提供一定的继承的机制
那同时呢如果比较好的,或者是这个 后续发展的一些面向对象的编程语言呢,它也提供了多态、
多继承的这样一些支持机制 这是一个面向对象语言的发展的这样的一个历程,大家可以看到
用这个粉色标注的是面向对象这个编程语言 那我们来看一下,Smalltalk
被认为是一个 最早的、 非常经典的、 比较全面的面向对象的编程语言,对吧,那么后续在 它的基础上出现了
C++ 语言,对吧,那后面相当于又发展出 Java,Visual C++ 那么大家可以看,从 Pascal
整个这样的一个过程式的语言,我们又出现了 Object Pascal,整个相当于
以及 Delphi,那这一面呢大家可以看,这是完全从这种
这个逻辑式的这个推理规则这样的语言出来了这个 LOOPS CLOS
等等的这样一系列的面向对象的这样的一个编程语言 所以,可以从
这个编程语言的类型再分为纯面向对象编程语言,比如说 Smalltalk,Eiffel
那么,混合面向对象编程语言,比如说 C++,因为它是在非 OO
的 基础上扩充 OO 的特点来形成的,比如说 Object-C 等等
那么还有结合人工智能的编程语言,比如 LOOPS
等等 那么我们从面向对象编程语言来
出发也看到,编程语言的这样一个发展越来越什么,提供强大的 这个编程的这样的一个支持。
那么 从编程语言而言,一般现在都已经提供了各种的什么,类库,对吧
那么,如定义共同协议的一般类啊、 定义基本数据结构的类啊、
界面对象类啊,都通过类库来支持 那同时呢现在更好的一些编程语言提供了一些什么,集成的编程环境
那么,除了提供人机界面常用的工具啊,同时,编辑工具啊、 可视化
的编程工具、 调试工具、 浏览器于一身,对吧,比如说,Visual C++ 这样的编程环境。
所以,我们觉得是尽可能建议同学
选择一些强大的可视化的编程环境用于这种,这个面向对象的编程