关闭

编程范式[paradigm]

标签: 编程语言structureoopjava
5141人阅读 评论(0) 收藏 举报
分类:

随着编程(programming)方法学和软件工程研究的深入,特别是OO技术的普及,范式(paradigm)/编程范式等术语渐渐出现在人们面前。在国内逐步了解“范式/编程范式”时,英文中该术语已经处于abuse的地步。

面向对象编程(OOP)常常被誉为是一种革命性的思想,正因为它不同于其他的各种编程范式;编程范式也许是学习任何一门编程语言时要理解的最重要的术语。

1编程范式

 Robert Floyd在1979年图灵奖的颁奖演说中使用了编程范式一词 ,范式源于托马斯.库恩在《科学革命的结构》中提出的范式论。库恩没有严格定义何为范式,用法多至二十一种。我把将范式归纳为3个方面或层次:

1. 自然观/世界观——观念范式:指看待世界、运用科学的不同方式。这是一套根据特有的价值观念和标准所形成的、关于外部世界的形而上的信念。例如牛顿眼里没有“不确定性”的东西,而微观物理学描述了诸多不确定性。OOP中,正如在[1.1.3 面向对象]中所言,当程序员回答程序是什么、进程是什么的时候,反映了程序员对待程序的观念范式。观念范式体现为程序员的境界和素养,而非程序的实现技能。

2. 学科的逻辑体系——规则范式。在科学实际活动中,各种被公认的规范,如定律、理论、应用以及仪器设备、工具等等,组成了一个逻辑体系。这一体系通过专业教育,为从事该领域的人——科学共同体,规定了思考框架,并形成一种科学习惯和科学传统。科学共同体从同一模型(规则范式)中学习专业基础,因此他们不会再在基本原则方面碰到重大分歧。库恩提出科学发展的模式大致是:前科学——常规科学——危机——科学革命——新的常规科学。新学科(范式)的早期开拓者,所能达到的范围和精确性常常非常有限,他们留下了大量“有待完成的扫尾工作”,绝大多数科学家为此献出了他们的全部生涯。另一方面,一种范式之所以成功,常常是因为在解决许多实际工作者公认的重大问题方面,比竞争对手更为成功。

3. 心理认知因素——心理范式。在不同的自然观和逻辑体系下,科学共同体对其范式有着“虔诚的狂热”,并力图把自然界“强迫纳入”范式所规定的思想框架内,从而展开卓有成效的研究活动。在这里,『范式之间的竞争不是那种可用证明解决的战斗』,你无法说服不想被你说服的人。当范式改变时,不但从事科学研究的人更换了,评价选择的标准、整个社会心理、研究传统以及世界图式都改变了,所以新旧范式是不可通约的、不可比较的。

 [1.1.3 面向对象]介绍了面向对象程序员应该具有的程序观(观念范式)和按照日常生活的隐喻进行编程的心理范式,而全书讨论的重点是面向对象编程的规则范式。

2 资料

 单词paradigm并不是通过查字典就能够翻译的。 虽然paradigm的原意是example示例、pattern模式 or model.典范、范例、模型。 

  1. 在有些计算机书籍中,将paradigm称为“范例”——“指一种示范性的模型或例子,它提供了一种组织信息的形式;面向对象的范例强调以行为和责任为基础来组织信息”【Timothy Budd,《面向对象Java编程思想》(修订版),清华大学出版社,2002-8】。
  2. 真正使paradigm广为流行的原因是1962年,美国科学史学家和科学哲学家托马斯·库恩(Thomas S. Kuhn)所著的著名书籍The Structure of Scientific Revolutions(《科学革命的结构》),其核心——范式论在自然科学家中引起强烈的共鸣,并波及社会科学的广泛领域。在李宝恒、纪树立翻译的《科学革命的结构》中,paradigm翻译为“规范”,而在大量的哲学、社会科学文献中,一般称为“范式”。

0
1
查看评论

编程范式简单总结

最常用的编程范式 计算机科学中主流的: 1.面向对象编程 2.面向过程编程 3.泛型编程 工程业务框架中特有的: 4. 事件驱动编程,一些VC,VB,Java框架中。 5.并发编程,分布式编程。 非常优秀但是很少用的编程思想: 1.模板元编程(操作编译决策) 模板...
  • Blues1021
  • Blues1021
  • 2015-08-15 13:41
  • 4424

编程范式分析(一)面向过程和面向对象

程序=数据结构+算法 数据结构可以看成 data ,算法就是所谓的code;程序就是代码和数据串接起来的一个逻辑体: 面向过程: data和code没有特别的亲疏关系 data独立,code独立;数据通过独立的变量或者函数参数在传递或者流动; 虽然有局部变量和全局变量,但是变量和代码没有聚合绑定; ...
  • hittata
  • hittata
  • 2016-04-07 16:21
  • 962

三种编程范式——函数式|过程式|OO

一、编程范式 | 编程方法论 面向过程编程面向对象编程函数式编程 二、函数式编程       简单说,"函数式编程"是一种"编程范式"(programming paradigm),也就是如何编写程序的方法论。它有几个明显的...
  • wangjianno2
  • wangjianno2
  • 2016-03-20 01:56
  • 523

什么是面向对象编程范式

面向对象编程范式是以人们熟悉的、习惯的现实世界和思维方式为隐喻(metaphor),以概念/类型或其实例化的对象为思考单元,进行程序组织的编程范式。
  • yqj2065
  • yqj2065
  • 2013-01-14 23:04
  • 3979

斯坦福大学开放课程:编程范式学习笔记《一》

斯坦福大学开放课程:编程范式学习笔记《一》 编程范式(Paradigm) Lesson 1 读书笔记: 列举几种常见的编程语言(范式): C Assembly C++ Concurrency programming(并行编程) (只是一种范式,而不是语言,可以使用C/C++实现并...
  • IncStrive
  • IncStrive
  • 2012-05-24 23:17
  • 2537

3种编程范式间的异同

范式、语言之间的对应关系,那就是 多对多的关系。 目的都是为了解决实际问题而为出发点。
  • u011191756
  • u011191756
  • 2015-11-20 11:22
  • 311

多范式编程语言

概要: 本文主要讲述了三种编程范式——面向对象编程、函数式编程、泛型编程的概念 编程范式 编程范式是程序语言背后的思想。代表了程序设计者认为程序应该如何被构建和执行的看法。常见的编程范式有:过程式,面向对象,函数式,泛型编程等。 一些编程语言是专门为某种特定范式设计的...
  • hnyzyty
  • hnyzyty
  • 2015-11-17 14:39
  • 1731

编程范式随课笔记(一)

编程范式: C 汇编 C++ 并发编程 Scheme(函数式编程) python
  • u011455582
  • u011455582
  • 2015-03-27 13:05
  • 547

C++支持的程序设计范式

C++支持包括面向过程、面向对象、函数式、泛型和元编程形式的多重泛型编程语言。面向过程关注的是处理过程,“确定你需要的过程并采用你能找到的最好的算法”。面向对象关注的是问题中的事物,根据问题“确定你需要哪些类,为每个类提供完整的一组操作,利用继承明确表示共性。”。函数式编程将计算机运算看作是数学中函...
  • lemonrabbit1987
  • lemonrabbit1987
  • 2015-09-06 07:01
  • 627

100多种编程语言学什么?编程范型/编程范式

回想一下, 其实编程语言基础到了很多, 大学时的 C, C++,  C#  , Java, 数据库SQL,  汇编。  毕业后的 Lua, Python , Golang, Ruby ,  javaScript, TypeScript 等 很多只
  • u010019717
  • u010019717
  • 2017-08-07 22:40
  • 1623
    博客专栏
    个人资料
    • 访问:529430次
    • 积分:8640
    • 等级:
    • 排名:第2690名
    • 原创:300篇
    • 转载:3篇
    • 译文:5篇
    • 评论:184条
    最新评论