编程范式/范型参考 programming paradigm

托马斯.库恩提出“科学的革命”的范式论之后,Robert Floyd在1979年图灵奖的颁奖演说中使用了编程范式一词。编程范式一般包括三个方面,以OOP为例:

1.        学科的逻辑体系:如类/对象、继承、动态绑定、方法改写、对象替换等等机制。

2.        心理认知因素:按照面向对象编程之父Alan Kay的观点,“计算就是模拟”。OO范式极其重视隐喻(metaphor)的价值,通过拟人化,按照自然的方式模拟自然。

3.        自然观:强调程序的组织技术,视程序为松散耦合的对象/类的集合,以继承机制将类组织成一个层次结构,把程序运行视为相互服务的对象们之间的对话。

       简单的说,编程范式是程序员看待程序应该具有的观点  

百度百科: http://baike.baidu.com/view/4991765.htm

维基百科 http://zh.wikipedia.org/wiki/%E7%B7%A8%E7%A8%8B%E8%8C%83%E5%9E%8B

 

常用语言的范型图 https://skydrive.live.com/?cid=56B433AD3D1871E3&id=56B433AD3D1871E3%21439&sc=documents 

该图原文档(PDF)下载: 
http://www.info.ucl.ac.be/~pvr/paradigmsDIAGRAMeng108.pdf 
该图中文翻译文件(PDF)下载: 
http://www.delphibbs.com/keylife/images/u40/paradigmsDIAGRAMeng108_CN.zip  

 

参考资料 

冒号课堂——编程范式与OOP思想 

 http://www.ppurl.com/?s=+%E8%8C%83%E5%BC%8F 

下一代编程范型主要原则

http://wenku.baidu.com/view/599eaf0d763231126edb1150.html 

 

 七周七语言:理解多种编程范型  http://product.china-pub.com/199312

 开放课

http://v.163.com/special/opencourse/paradigms.html 
http://open.sina.com.cn/ProgrammingParadigms.html 

 面向对象和面向过程的区别 http://wenku.baidu.com/view/ef3902d43186bceb19e8bbfa.html?from=rec&pos=1&weight=1&lastweight=1&count=4

 

时间: 2024-10-29 07:05:27

编程范式/范型参考 programming paradigm的相关文章

.NET 2.0 基础类库中的范型——Functional Programming

Functional ProgrammingFunctional Programming 不是一个新鲜的概念了,例如 C++ 虽然不是一门 Functional Programming 语言,但对它也有变通的支持--通过使用模板,函数对象(Function Objects)和运算符重载等手段,STL.Boost 等库提供了巧妙无比的.高性能的算法和功能.长久以来似乎 C++ 能实现的这些特性对于诸如 Java 和 C# 这些强调类型安全的面向对象的编程语言和框架来说是绝缘的.现在,在 CLR 范

《OOD启思录》—第1章1.1节革命家、改革家与面向对象范型

第1章 面向对象编程的动因OOD启思录1.1 革命家.改革家与面向对象范型在学习面向对象范型以及相关知识的过程中,你首先必须知道我们社区中的很多对立观点.每组对立观点意味着两个或者多个阵营,他们对自己的观点一般都具有宗教般的热情.最重要的对立观点之一是革命家与改革家之争.革命家相信,有一群开发者某一天在凌晨3点醒来,并发现以前我们一直都在用错误的方式开发软件.他们相信,他们找到了解决软件危机的方法,并且把这种方法叫做"面向对象编程".或许读者已经猜到,我是属于改革家阵营的. 改革家认为

基于范型的java函数式编程(一)

编程|函数 注:在您阅读本篇的时候,希望你对Java Generic(范型)能够有所了解和明白. 记:周末在给javaparty讲FP中,很多人似乎对fp并不关心,也认为java中fp的作用不大.其实这是个很大的观念错误,范型的发展,对java的函数式编程支持很大,对Functor的影响也非常大.Functor在算法.逻辑.条件计算.规则引擎等等方面,都会有很大的作为,这个影响可就会深远的多了.-- 估且以此篇的开端,唤醒java开发者对FP in Java的重新认识. 周六给javaparty

《JavaScript应用程序设计》一一2.12 范型编程与集合多态

2.12 范型编程与集合多态 范型编程是指在多种数据类型上提供可复用的一套算法与数据结构,这种语言机制的产生缘由在于算法通常能适配多种数据类型.范型编程一般从几种特定的数据类型实现开始入手,随后逐步将之抽象成为能够兼容更多数据类型的通用版本. 范型编程并没有对不同类型的数据做算法差异性处理,相反,被传入的每种数据类型必须实现算法中所约定的功能,这些功能被称为"接口需求". 范型编程具有参数多态性,它是作用于范类型参数上的逻辑分支,相比之下,重载则需要对所有不同类型的参数分别创建一套处理

.NET 2.0 基础类库中的范型——其他范型类

其他范型类.NET 2.0 基础类库对范型的应用当然并不仅限于范型集合和 Functional Programming.下面所列的范型类也都有其明确的设计目的和用途. Array在.NET 2.0中,Array 类扩充了对范型编程的支持.当然,Array类本身并不是范型类(出于兼容的考虑),而是提供了一系列支持范型的方法.除了前面提到的 Functional Programming 的支持外,Array 类还对以前很多基于 object 的方法提供了对应的范型版本,这样对值类型可以提高查找和排序

Java网络协议 TCP和客户端/服务器范型

服务器|客户端|网络 在网络编程中(同样在其它形式的通讯中,例如数据库编程),使用套接字的应用程序也被分为两类--客户端程序和服务器程序.你可能对"客户端/服务器编程"术语比较熟悉,尽管这个术语的准确意思你不一定清楚.下面的范例就是讨论这个主题. 1. 客户端/服务器范型 客户端/服务器范型把软件分为两类--客户端程序和服务器程序.客户端软件启动一个连接并发送请求,而服务器软件监听连接并处理请求.在UDP编程环境中,没有建立实际的连接,并且UDP应用程序可以在相同的套接字上建立并接收请

.NET 2.0 基础类库中的范型——范型集合

集合 范型集合毫无疑问,范型最典型的应用莫过于范型集合了.在 .NET 2.0 中提供了已有集合类和接口的范型版本,它们位于 System.Collections.Generic 命名空间中. .NET 2.0 中新的范型集合类并不是简单的在已有非范型集合类的设计上多加了个范型参数 T 而已.新的范型集合类的设计充分吸收了已有设计中的合理之处并摒弃了一些不甚合理之处,同时引入了新的针对范型的设计.所以,新的范型类和接口的设计应该更加合理和有效,不过 .NET 程序员则需要花些时间学习新的设计并了

在Eclipse 3.1中体验J2SE 5.0的新特性: 第三部分 :范型

J2SE 5.0 (Tiger)的发布是Java语言发展史上的一个重要的里程碑, 是迄今为止在 Java 编程方面所取得的最大进步. J2SE 5.0提供了很多令人激动的特性.这些特性包括范型(generics)的支持, 枚举类 型(enumeration)的支持, 元数据(metadata)的支持, 自动拆箱(unboxing)/装箱 (autoboxing), 可变个数参数(varargs), 静态导入(static imports), 以及新的线程架 构(Thread framework)

使用Java范型需要注意的地方

静态方法要想范化,需要指定其类型参数 非范化类型中的实例方法要想范化,也需要制定其类型参数. 范化类型中的实力方法可以直接使用其类型本身的类型参数. 范型不是协变的,即List<Integer>不是List<Number>的子类. 不能实例化范型类型的数组,即new List<String>[3] 是不合法的,除非类型参数是一个未绑定的通配符,即new List<?>[3] 是合法的. 构造延迟,在代码编写时我们不能通过类型参数来构造一个该类型的实例,原因是