现在的位置: 首页 > 综合 > 正文

闲谈软件话抽象

2014年11月06日 ⁄ 综合 ⁄ 共 937字 ⁄ 字号 评论关闭

上一节我们说到,作为软件根本的语言的作用是用来对于软件进行描述。而不同的表达系统对于同样的描述有不同的表达。我们把计算机程序的问题划分为两个方面:

一、人类对客观事物的描述

二、表达设备对人类描述的表达

回想第一代计算机,就是只能进行整数数值运算的计算机。它的描述域很简单,就是二进制到十进制的整数数字。而它的描述系统也很简单:用二进制所能表示的数位去计算每个数,之后进行运算,得出结果。

问题域就是数值计算,关系就是十进制的四则运算,表达域就是计算结果。

我们会发现,一个十进制四则运算的系统是如此的稳健,这个软件是出奇的稳定。归功于我们简单的描述和简单的表达。对于整数对象的描述仅仅是在基数0上加1,对于四则运算的描述也是靠加发完成的。这就是为什么越简单的系统越稳定。

而看看我们的面向对向系统的描述,对于对象的描述是含糊不清的,对于对象关系的描述也是含糊不清的。我所谓的含糊是我们没有办法用准确的数学关系去定义它,而只能够依靠语言对其概念进行理解。也就是说,“对象”是计算机数值系统没有办法精确描述。而基本的逻辑运算,我们都可以做到。

回想一下人们发明数的时候,就是在相同和不同之间进行描述和表达——同样的苹果,改变的是数量,那么在它变成两个之前,它是最基本的单位,就是一。于是,对于同种对象的数量运算和纪录变成为了我们的数论的基础。

回想一下民主的发展历程。首领(或者国王,或者其它享受着特权的人们)所和人们不同的是什么?在世袭制情况下就是出生门弟。我们在构建人民这个集合的时候,特权者是不是一分子,那么,他就具有共性。对于每个人的权利平等的要求也就在这个描述下自然而然的体现出来。但个体之间的差异并不是可以描述的,我们就用统一的方法——法律——区分不同的人—罪犯、法官、警察、普通民众……

所以,抽象是建立在共性之上(或者最小共性之上)的描述,它可以解决通用性问题,但解决不了特异性问题。

因此,我们的描述系统不是精确的,所构造的软件也就不可能精确。有了含糊的描述,怎么可能有精确的表达。

针对通用性的问题可以解决,但怎么去定义个性话的问题。

软件和计算机软件的不完备性理论的三个基础和推理证明就告一段落了。

接下来,我们讲解决工程领域和商业领域的几个问题,当然,一切出发点还是这个理论。

 

【上篇】
【下篇】

抱歉!评论已关闭.