编程模型随笔(1)——概述篇

1、 什么是编程模型

 

程序是问题求解过程的表达,表达求解过程的语言统称为编程语言。

 

求解过程就是逻辑,就是顺序、条件、循环三种形式,因此程序就是用特定的语言表示的逻辑,程序是形式,逻辑是内容。

 

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

 

什么是编程的共性呢?最重要的共性就是:程序设计时,代码的抽象方式、组织方式或复用方式。

 

编程技术与编程模型有时并不加以区别,例如面向对象的编程,两种含义都有。但深究的话,还是有一定的区别:前者更接近具体的语言和工具,后者更接近方法与思想。

 

面向过程编程是以功能分解为核心,而面向对象编程以概念抽象为核心,两者在认识论方面有着更深刻的不同。由此导致了面向过程编程一条指令最大能操作一个过程,而面向对象编程一条指令最大能操作一个对象。

 

编程模型不考虑最小的操作单元。因为有的语言最小可操作到比特,与机器指令的抽象级别是一个层次,但也许它是面象对象的编程模型。

 

拿手搞装修的民工打比喻:最低级的活是筛砂子,这是用汇编语言编程;进步一点的是搬砖头,这是高级语言编程;再高级一点就是装门、窗户,最高级的大约是安装整体厨柜之类的角色,这是面向对象编程。不同的级别的人,实质上就是在不同的“模型”上工作。

 

2 抽象与复用

 

编程模型中,指令的抽象程度与复用程度密切相关:

1)        抽象是手段,复用是目标;

2)        抽象到什么程度,才能复用到什么程度;

 

从结果出看,编程模型其实就是代码的复用模型。

 

3 相关概念

 

与.NET、Eclipse等是编程工具或开发平台,是具体的、实例化的。而编程模型是抽象的、思想性的,两者不能混为一淡。

 

编程模型处于方法或思想性的层面,在很多情况下,也可称为编程方法、编程方式、编程模式或编程技术。之所以用编程模型,是因为它能兼顾了技术与思想的两种含义,能更好的体现本文要表达的意思。

 

编程模型与体系架构中的C/S模式及3层模型等概念也是有区别的。前者是针程序设计的模型,而后者指体系架构的模型,含义有很大的不同。

 

(待续)

posted @ 2012-01-20 23:47  星沙明明  阅读(...)  评论(...编辑  收藏