编程模型(范式)小结

前言

在咱们的平常日发和学习生活中会经常遇到一些名词,好比 命令式编程模型声明式编程模型xxx语言是面向对象的等等,这个编程模型处处可见,可是始终搞不清是什么?什么语言又是什么编程模型,当你新接触一门语言的时候,有些问题是须要首先去思考的,好比“这门语言的编程模型是什么?” 为此。这里整理了一些常见的编程模型,可能不会对每一种编程模型说的很是详细(受限于水平),以及大体介绍每种编程模型的大概信息。css

概念解释

模型是对事物共性的抽象,编程模型就是对编程的共性的抽象html

什么是编程的共性呢?java

最重要的共性就是:程序设计时,代码的抽象方式、组织方式或复用方式。编程模型主要是方法与思想。编程模型处于方法或思想性的层面,在不少状况下,也可称为编程方法、编程方式、编程模式或编程技术、编程范式。在这里就当作同一种说法。介绍编程模型的时候主要经过不一样的编程语言来解释。程序员

参考连接:http://www.cnblogs.com/xsmm/a...数据库

文章中的说法若有不对,欢迎留言指正!同时也欢迎提意见补充内容,完善文章。编程

分类

下面是我的整理的一些常见编程模型,可能还有更多。。。服务器

  1. 命令式(过程式)编程模型
  2. 声明式编程模型
  3. 面向对象编程模型
  4. 函数式编程模型
  5. 原型编程模型
  6. 混合式编程模型
  7. 基于栈的编程模型
  8. 基于逻辑的编程模型
  9. 待续。。。。。。。。

1.命令式编程模型(Imperative Programming)

我的以为命令式过程式是一个意思,都是一种面向过程的思想。命令式编程的意思是,程序员须要一步步写清楚程序须要如何作什么(How to do What)。咱们平时使用的编程语言,好比C++、Java等,都有命令式编程的思想。网络

什么叫作程序须要如何作什么(How to do What)呢?和下个编程模型声明式一块儿举例说明。并发

2.声明式编程模型(Declarative Programming)

声明式编程的意思是,程序员不须要一步步告诉程序如何作,只须要告诉程序在哪些地方作什么(Where to do What)编程语言

好比关系数据库的结构化数据查询语言SQLSQL也是一门声明式语言,SQL只须要告诉数据库,处理符合必定条件的数据,而不须要本身一步步判断每一条数据是否符合条件。SQL的形式通常是 select … where …,update … where …,delete … where …。固然,这样一来,不少基层工做,SQL作不了。所以,大部分数据库都提供了另外的命令式编程语言,用来编写存储过程等,以便处理一些更加细节的工做。

这里的SQL的where 等等关键字所带的各类条件就是告诉程序在哪些地方作什么。而不须要写的很是详细。而很细致的问题就是程序须要如何作什么,就须要命令式。

参考连接:http://developer.51cto.com/ar...

3.面向对象编程模型(Object-oriented programming)

如今的不少编程语言基本都具备面向对象的思想,好比java,PHP等等,而面向对象的主要思想:对象,类,继承,封装,多态比较容易理解,这里就很少多描述了。

经过目前三种编程模型的分析,发现不少编程语言在设计的时候采用的编程模型就是一个混合的模式,并非必定只有其中的一种。

4.函数式编程模型(Functional programming)

在看关于 JavaScriptPython 的介绍的时候,不少文章会提到JavaScriptPython是一门函数式语言。就我的的理解而已,JavaScriptPython不是一门纯函数式语言,具体缘由请查看下面的连接,再结合 JavaScriptPython的特性就知道了。表明语言有:Lisp Erlang(Ericsson Language) Haskell .

对于函数式编程的更细致的说明,请看阮一峰老师的文章:
http://www.ruanyifeng.com/blo...

5.原型编程模型(Prototype programming)

原型编程模型我的是认为是一个很是重要的编程模型,可是上学的时候课本却没有讲,很遗憾。而原型编程模型的表明是如今很火的 JavaScript,此外还有 IO ,Lua , Self 等等.而JavaScript在设计之初就参考过IO ,Self

原型编程模型的主要思想就是用对象而不是用类来做为定义对象甚至继承的基础。通常所见的关键内容就是 原型链 ,委托继承等等。

目前知识不够,之后再补充。

6.混合式编程模型(Hybrid programming)

就是采用多种编程模型开设计程序或者编程语言。好比 Scala , Java 等等

7.基于栈的编程模型(Stack-based programming)

这个是一个比较少见的编程模型,表明语言有 PostScript / Forth。主要思想是使用一个或者多个栈做为语言的核心特征

8.基于逻辑的编程模型(Logic-based programming)

这个一样是一个比较少见的编程模型,表明语言有 Prolog。 以规则(rule)为中心创建起来的编程模型。

文章部份内容参考:《七周七语言:理解多种编程范式》

备注

还有一些服务器网络编程模型,并发编程模型等等,可是这些编程模型不是编程语言层面的,是针对具体业务而想出的解决办法,因此不是和上面的编程模型是同一个层面的。

待续。。。。。。。。

相关文章
相关标签/搜索