奇之趣小说网 > 武侠修真 > 最终武侠 > 面向对象的编程与维特根斯坦 转 下

面向对象的编程与维特根斯坦 转 下(1 / 1)

214那图画的存在是由于这样一个事实:它的各元素之间以某种固

定方式相结合

thepicturensiststhefactthatitselentsare

bedwithoneanotheradifiteway

2141那图画即是一个事实

thepictureisafact

215那图画的各元素以某种固定方式相结合,代表了事物(现实世界的)

也是如此相结合的

那图画的各元素的结合方式称为该图画的结构,该结构也称为该图

画的表达模式

thattheelentfthepicturearebedwithone

anotheradifiteway,

representsthatthethgsarebedwithone

another

thisnnexionoftheelentfthepictureiscalled

itsstructure,andthe

possibilityofthisstructureiscalledtheforof

representationofthepicture

‘‘‘‘‘‘

21511这样,那图画与现实就联系起来了那图画就逼近现实了

ththepictureislkedwithreality;itreaches

uptoit

21512它就象是现实按比例缩小的图形

itislikeascaleappliedtoreality

216事实要想表达为图画,该图画和它之间必定要存在某种共同之处

ordertobeapictureafactthavethg

onwithwhatitpictures

217为了能够代表现实---正确或错误的---图画必须与现实保持一致

的东西,是它的表达模式

whatthepicturethaveonwithrealityorder

tobeabletorepresent

afteritsanner---rightlyorfalsely--isitsforof

representation

2172那图画却无法表达它自己的表达模式它只是将其径直显现出

thepicture,however,cannotrepresentitsforof

representation

itshowsitforth

218为了能够代表现实---正确或错误的---无论何种模式的图画,它必须

与现实保持一致的东西,是逻辑结构,即:现实世界的模式

whateverypicture,ofwhateverfor,thaveonwithrealityorder

tobeabletorepresentitatall---rightlyorfalsely--isthelogicalfor,

thatis,theforofreality

2181如果那表达模式是逻辑的模式,那么那图画也可以称为一幅逻辑图

iftheforofrepresentationisthelogicalfor,thenthepictureis

calledalogicalpicture

2182每一副图也是一幅逻辑图(另一方面,并非每副图都是空间图)

everypictureisalalogicalpicture(ontheotherhand,forexaple,

noteverypivtureisspatial)

说明:主要强调此处的picture(与现实世界逻辑上同构)与通常我们所说的

picture(现实世界的空间结构描述图)不同

219逻辑图可以描述现实世界

thelogicalpicturecandipicttheworld

22那图画与它所描述的具有相同的逻辑表达模式

thepicturehasthelogicalforofrepresentationonwithwhatitpictures

221那图画与现实或者一致,或者不一致;它或者正确,或者错误;或者为真,或者为假

thepictureagreeswithrealityornot;itisrightorwrong;trueorfalse

说明:"1998年5月12号北京下雨了"和"1998年5月12号北京没下雨"都是一幅picture,

它们的逻辑结构,或者说表达模式,完全相同,但其真值不同

222那图画通过表达模式来描述世界,独立于它的真假

thepicturerepresentswhatitrepresents,depentlyofitstruthorfalsehood,

throughtheforofrepresentation

2221那图画表达的是它的实际意思

whatthepicturerepresentsisitssenses

2222它的实际意思与现实相符或者不相符,从而它为真或者为假

theagreentordisagreentofitssensewithreality,

itstruthorfalsitynsists

2223要想知道图画是真还是假,必须将其与现实世界进行比较

ordertodisverwhetherthepictureistrueorfalsewetpare

iithreality

小结2:2主要说明---事实(facts)由原子事实(atoicfacts)所组成;

原子事实(atoicfacts)由更基本的对象(objects)所组成;

我们的关于外部世界的主观描述图画,与它所描述的外部世界具有

相同的逻辑结构;

注:(这即是相当于软件开发中的"建模")

第三节

3事实的逻辑图画就是思想

thelogicalpictureofthefactsisthethought

301所有真的思想的总和就构成了整个现实世界一幅图画

thetotalityoftruethoughtsisapictureoftheworld

302所有能被想象的也是可能的

whatisthkableisalpossible

303我们不能想象出不合逻辑的东西,因为那样一来我们将不得不进行不合逻辑的思维

wecannotthkanythgunlogical,forotherwiseweshouldhaveto

thkunlogically

小结3:3主要说明---我们的思想也是以上述图画方式来反映客观世界的

我们的思想与客观世界是逻辑同构的

第四节

4思想是有意义的命题

thethoughtisthesignificantproposition

401命题是现实的图画命题是我们想象的现实的模型

thepropositionisapictureofreality

thepropositionisaodeloftherealityaswethkitis

41一个命题给出了一个原子事实的存在或是不存在

aporpositionpresentstheexistenceandnon-existenceofatoiacfacts

411真命题的总体就是整个自然科学

thetotalityoftruepropositionsisthetotalnaturalscience

4112哲学的目标就是澄清思想

哲学不是一个理论,而是一种活动

哲学工作就是去阐明

哲学的结果不是一些"哲学命题",而是使命题清晰

theobjectofphilophyisthelogicalcrificationofthoughts

philophyisnotatheorybutanactivity

aphilophyworknsistsessentiallyofecidations

theresultfphilophyisnotanuberof"philophypropositions",

buttoakepropositionsclear

4113哲学划定自然科学可以争论的范围

philophyliitsthedisputablesphereofnaturalscience

4114它应该划定什么是可思考的,因而也就划定了什么是不可思考的

itshouldliittheunthkableandtherebytheunthkable

4115它将清楚地指出什么是可以言说的,从而也就指出了什么是不可言说的

iillantheunspeakablebyclearlydispygthespeakable

4116凡是可以被思考的,都可以被清楚地思考;

凡是可以被言说的,都可以被清楚地言说;

everythgthatcanbethoughtatallcanbethoughtclearly

everythgthatcanbesaidcanbesaidclearly

小结4:4主要说明---详细介绍了思想如何借助逻辑来反映世界;

指出了哲学的目标就是澄清思想,哲学不是一个理论,而是一种活动

它应该划定什么是可思考的,因而也就划定了什么是不可思考的

第五节

5命题是基本命题的真值函数

propositionsaretruth-functionfelentarypropositions

56我的语言的极限就是我的世界的极限

theliitfynguaantheliitfyworld

561逻辑充满整个世界:世界的极限也就是逻辑的极限所在

logicfillstheworld:theliitftheworldarealitsliits

我们无法思考的东西,我们就不能思考:因此我们不能说出我们无法思考的东西

whaecannotthk,thaecannotthk;wecannotthereforesay

whaecannotthk

563我即是世界(小宇宙)

iatheworld(icros)

说明:吾心即是宇宙:-)

小结5:5主要说明---进一步阐明了作者的逻辑原子主义立场

指出人只有借助语言才能思考,主观只有借助语言才能反映客观世界

语言的极限就是世界的极限

第六节

641世界的意义必定存在于世界之外

thesenseoftheworldtlieoutsidetheworld

642因而也就没有什么伦理学命题

hencealtherecanbenoethicalpropositions

6421显然伦理学是无法表述的伦理学是超越现实的(伦理学和美学是一样的)

itisclearthatethicscannotbeexpressed

ethicsistranscendental(ethicsandaestheticsareone)

6432世界如何存在,是与更高级的东西毫不相干的;上帝并不在世界中显现

howtheworldis,ispletelydifferentforwhatishigher;

goddoesnotrevealhiselftheworld

644世界如何存在,并不神秘;神秘的是它的存在本身

nothowtheworldis,istheystical,butitis

652我们感到即便是所有的自然科学问题都被解答了,生活的意义仍然未被触及丝毫

当然是没有任何问题可言了,这就是答案

wefeelthatevenifallpossiblescientificestionsbeanswered,then

theprobleoflifehavestillnotbeentouchedatallofursethere

isthennoestionleft,andjtthisistheanswer

6521生活的意义问题的解决办法就是消除该问题

thetionoftheprobleoflifeisseenthevanishgof

thisproble

6522实际上存在着不可表达的东西;这显示了它的存在;它是神秘的

thereisdeedtheexpressiblethisshowsitself;

itistheystical

说明:生活的意义是什么?这个问题在维特根斯坦看来是不可言说的,是无法用

现实世界的事实去实证的,因而是无意义的问题,应予以消除

653哲学的正确方法应该是这样的除了能够说的东西之外----如自然科学的命题,

即与哲学无关的问题----什么都不说;然后当某人想说出一些形而上的东西时,

向他指出它的命题中存在着一些毫无意义的符号这方法可能不太令人满意---

他会感到我们不是在教他哲学---但这是唯一严格的正确方法

therightthodofphilophywouldbethistosaynothxcept

whatcanbesaid,iethepropositionfnaturalscience,iethg

thathavenothgtodowithpilophy:andthenalways,whenone

elsewishedtosaythgtaphysical,todeonstratetohithat

hehasgivennoangtocertasignshisrpopositions

thisthodwouldbeunsatisfygtotheother---hewouldnothavethe

feelgthaeareteachghiphilophy---butiouldbetheonly

strictlyrrectthod

654我的观点是以这种方式表明的:最终真正理解了我的观点的人,当他通过它们,

越过它们并高于它们的时候会发现它们是毫无意义的,

(这样说吧,他必须在爬过梯子之后将其扔掉)

ypropositionsareecidatorythisway:hewhounderstandsfally

regnisestheassenseless,whenhehasclibedoutthroughthe,

onthe,overthe

(hettospeakthrowawaythedder,afterhehasclibeduponit)

小结6:6主要说明---阐明了作者的哲学观

哲学的正确方法应该是这样的除了能够说的东西之外----什么都不说;

第七节

7对于那些不可言说的,必须保持沉默

whereofonecannotspeak,thereofonetbesilent

最后作者以一句意味深长的名言戛然而止

逻辑哲学论一书,先是开门见山地提出了作者作为一个"逻辑原子论"者的世界观然后作者进而

提出了自己对哲学及哲学研究方法的见解最后略带神秘气息的点睛之句结束:

对于那些不可言说的,必须保持沉默

让我们做一个简单的总结吧

在该书中,作者提出了如下的观点:

----世界可以分解为事实(theworlddividestofacts)

----事实是由原子事实(atoicfacts)组成的

----一个原子事实是多个对象(objects)的组合

----对象是简单的(基本的)theobjectissiple

----对象形成了世界的基础

即:世界---事实----原子事实----对象,这就是我想指出的逻辑哲学论中的oo

当然,逻辑哲学论中除了这个oo的思想,还包含了更多内容

5oo之后是什么?

通过上节的讨论我们了解了维特根斯坦在逻辑哲学论一书中提出的oo的思想。

即存在如下的认识链:世界---事实----原子事实----对象(object)

本节我们讨论oo之后是什么这个问题。我们将从历史的和逻辑的角度来进行推理,

看看能得出什么样的结论。

一、从软件工程的发展历史来看

1969年nato会议之后,"软件危机"成为人们关注的焦点。为迎接软件危机的挑战,

人们进行了不懈的努力。这些努力大致上是沿着两个方向同时进行的。一是从管理的

角度,希望实现软件开发过程的工程化。这方面最为著名的成果就是提出了大家都很

熟悉的“瀑布式”生命周期模型。

它是在60年代末"软件危机"后出现的第一个生命周期模型。如下所示。

分析-----设计-----编码-----测试------维护

后来,又有人针对该模型的不足,提出了快速原型法、螺旋模型、喷泉模型等对“

瀑布式”生命周期模型进行补充。现在,它们在软件开发的实践中被广泛采用。

这方面的努力,还使人们认识到了文档的标准以及开发者之间、开发者与用户之间的交流

方式的重要性。一些重要文档格式的标准被确定下来,包括变量、符号的命名规则以及原

代码的规范格式。

值得一提的是,在开发者之间、开发者与用户之间的交流方式这方面,由于ter的出

现提供了一种全新的交流手段,也产生了一种基于ter的全新的开发方式,即oss

(openurcefare)其代表作有lux(操作系统),apeche(webserver),

sendail(ail

server)等。oss是一种极有前途的开发方式,借ter发展的大潮,它势必会对整个

软件开发模型产生难以估量的影响。近期的ieee软件工程专刊将为次出一期专题特刊。

1999年1月份也将举行关于lux/oss的国际研讨会。各家计算机公司纷纷对此作出反应

,微软也意识到了来自oss的巨大威胁,在8月底提出了一份内部保密的文件,专门提出

了自己的应对策略,可谓是山雨欲来风满楼。有兴趣者请对此保持关注。

软件工程发展的第二个方向,侧重与对软件开发过程中分析、设计的方法的研究。这

方面的第一个重要成果就是在70年代风靡一时的结构化开发方法,即po(面向过程的开

发或结构话方法)。

po是人们在用计算机世界来表达现实世界时,追求过程话、模块化、封装以及更高的抽

象的结果。人们用计算机来映射现实世界时,最低层的实现无非是靠数字电路技术产

生的高电平与低电平信号。用数学的语言来表示,就是像010101000010111

这样的二进制串。这样的抽象层次是极低的,远离了自然语言,对一般人是不可理解的。

人们把这些二进制串分块定义,提出了字节、ascii码这样的更高抽象层次的概念,使之

对应于自然语言的一个个字母。在此基础再借助某种形式语言,抽象出变量、表达式、

运算、语句等概念。在这个层面上,一般经过训练的程序员已经可以比较不那么痛苦地

进行软件开发了。下一步的抽象就产生了po。在po中,人们关注的是如何用函数和过

程来实现对现实世界的模拟,将其映射到计算机世界之中。

oo是这种抽象层次不断提高的过程的自然发展结果,它采用类和对象的概念,把变量以

及对变量进行操作的函数和过程封装在一起,用这种更高一级的抽象来表达客观世界。

通常,一个对象包含一些属性和方法,它对应于自然语言中一个有意义的名词,描述了

现实世界中的一个物体(物理

实体)或概念(抽象实体)。这个抽象层次如下图所示:

计算机世界中的抽象层次

----xo???(oo之后)最高的抽象层次

----oo(对象、类)

----po(过程、函数、变量)

----变量、运算、表达式、语句

----字节(4位、8位、16位、32位、64位)

----二进制串0101011110001最低的抽象层次

从上图及以上的讨论我们知道,软件工程的发展历史就是人们不断追求更高的抽象、

封装和模块化的历史。oo当然不会是历史的终结。尽管不能精确得到oo之后是什么,

我们至少可以推知,oo之后的xo,

必然将是比oo更高一级的抽象。它所依赖的核心概念必然高于并包容对象这一概念。

正如对象高于并包容了函数和变量一样。

二、从维特根斯坦在逻辑哲学论一书中的思想来看

前面我们已经知道,维特根斯坦在逻辑哲学论一书中提出了如下思想:

----世界可以分解为事实(theworlddividestofacts)

----事实是由原子事实(atoicfacts)组成的

----一个原子事实是多个对象(objects)的组合

----对象是简单的(基本的)theobjectissiple

----对象形成了世界的基础

即:世界---事实----原子事实----对象这样一个从整体到局部、从抽象到具体的

认识之链。在这个层次中,对象作为最基本的模块,构成了整个认识大厦的基石。对象

通过相互之间的复杂的关联构成了整个世界。这个观点也是面向对象理论的基石。

上一段我们通过对计算机世界的分析得出,oo之后的发展,必将产生比oo更高一级的

抽象的概念用于编程。按照维特根斯坦的思想可以很自然地得出结论:这个概念就是事

实(fact)。即面向对象之后是面向事实,oo之后是fo(fact-oriented)。

那么,什么是事实(fact)?让我们再次重温一下维特根斯坦的观点。

首先,世界是所有事实的总和。世界可以分解为事实。任一事实或者为真,或者不为

真。(即事实应返回一个布尔变量,或为true,或为false)

其次,那些为真的事实,是由原子事实(atoicfacts)组成的。

原子对象和简单事实的关系是这样的:一个原子事实是多个对象(object)的组合。在

原子事实中,对象以某种确定的方式相连。原子事实中对象相互连接的方式即是原子事

实的结构。

也就是说,原子事实是有结构的,这种结构被维特根斯坦成为是现实世界的模式(for

)。

这里,维特根斯坦提出了几个重要的概念:事实(fact)、原子事实(atoicfact)和模

式(for)。

如果我们以上的推理过程正确的话,我们将得出一个结论:面向对象(oo)之后是面向

事实(fo),在面向事实(fo)的分析、设计和编程中,我们将主要围绕事实(fact)、原子

事实(atoicfact)和模式(for)这些基本概念来组织我们的软件开发活动。在人们认

识世界的层次结构中,这些概念是比对象(object)和类(css)更高一级的抽象。

6最后的极限

oo之后如果fo,那么我们当然要问,fo之后又是什么?再往后哪?有没有一个最后的

极限?若有,极限何在?

这是个很困难的问题,不过还是让我们继续思考下去,看看能有些什么结果,尽管

它可能会是十分愚蠢和幼稚。

我们知道,软件的实质是人们以计算机编程语言为桥梁,将客观感知世界映射于计

算机世界中去,以解决人们在客观感知世界中要解决的问题。这里牵涉三个主要的范畴

客观感知世界--------计算机编程语言----------计算机世界

(1)、计算机世界

在计算机世界中,可以想象的是,单位面积的一块芯片上可以集成的晶体管数目总

会有个上限,摩尔定律早晚要失效。另外,现在多数电脑采用的冯诺依曼结构也需要被

突破。(如并行计算的研究)

(2)、计算机编程语言

现在的计算机编程语言,都是某种类型的形式语言。要解决一个问题,首先我们必

须为它构造算法。也就是说,对于没有算法的问题,我们是束手无策的。这类问题被成

为是“不可计算的”。它们的解不能由图灵机来产生。这是我们面临的一个极限。

那么一个问题有了算法,是不是就一定可以解决哪?很遗憾,答案是不。对于那些

np(非多项式)问题,尤其是np完备的问题,尽管存在算法,我们仍然是无法在多

项式时间内解决的。著名的“哈密顿线路问题”和“旅行推销员问题”都属于这类

问题。它们的共同特征是,当问题的规模(或复杂度)线形增加时,解决该问题所

要化的时间将呈指数上升,以至于它们尽管理论上是可求解的,但实际上却是不可

能的。因为要花费的时间可能已经超过了宇宙的寿命。这也是我们面临的一个极限。

还需要指出,现在的计算机语言作为形式语言的一种,也必然具有形式语言自身所有

的局限性。数学的发展史上,曾经有三次危机,第三次危机是有罗素的一个“佯谬”

引发的悖论危机。为解决此危机,希尔伯特提出了宏伟的形式化规划,企图使数学一

劳永逸地处于无可争辩的安全基础之

上。可是,1931年奥地利25岁的天才数学逻辑学家歌德尔提出了一条划时代的定理,

粉碎了希尔伯特形式化的美梦。哥德尔定理向我们展示,公理系统本身的协调性的陈

述在被编码成适当的算术命题后,将成为一道这样“不能决定的”不能决定的命题。

想象一个表达式既不为真,也不为假

,它的真假对一个形式系统(计算机)而言它是不可判定的。因此在这方面,哥德尔

定理是我们面临的又一个极限。

(3)、客观感知世界

现在让我们假设软件工程已经发展到了这样一个理想的境界,有一天我们实现了自然

语言编程,是否就万事大吉了?换句话,自然语言是否能很好地描述、表达客观感知世

界?

维特根斯坦在逻辑哲学论里已经指出了。

----世界的意义必定存在于世界之外;

----显然伦理学是无法表述的伦理学是超越现实的;

----实际上存在着不可表达的东西;这显示了它的存在;它是神秘的

(见逻辑哲学论第六节)

也就是说,外部世界中存在一些我们可以感知却无法用语言来表达的东西。

他接着说:

----对于那些不可言说的,必须保持沉默(whereofonecannotspeak,thereof

onetbesilent)

这句话,成为我们最后的极限。

在讨论完这三个范畴中我们将面临的主要问题后,我们最后来讨论一下人的主观世界

对软件及软件开发的影响。

7极限之外的空间

世界可以分为主观想象世界和客观可感知世界,或者说是内世界和外世界。其中,主观想

象世界是计算机从未涉足的空间。这是属于我们个人的私有空间,充斥着我们自己离奇

古怪的幻想和起伏不定的情绪。它具有极大的跳跃性和不确定性,常常以直觉、想象的

方式进行着自己的活动。它们通常是语言所不能表达的。

尽管这个内世界是如此的复杂、混乱、难以捉摸,但它却是我们与生俱来的一部分。

我们就是这样的人。

就是这样的人从事着软件开发的工作。

这样的人开发出来的软件究竟在多大程度上是对客观世界不折不扣的映射?还是这个

映射过程已经被扭曲或掺杂了?软件开发者的这个主观想象世界,他们的欢乐、沮丧、

奇想、恐惧、希望等等,究竟是怎样影响着软件开发的质量?

人们是要用计算机来复制整个世界?还是来复制人本身?

人们是在扮演上帝的角色吗?

这样的问题我实在不知该如何去解答,甚至觉得根本无从下手。

如果你还有足够的耐心读到这里,请你也来想一想,希望它们不会使你头疼。

:)

最后,我将引用我从网上偶尔发现的一篇文章中的话作为结束语:

“自以为是的立法者(人类)犯下了一个大错,以为自己能定义整个软件开发过程。他们

既不了解其开始也不了解其结果。学术界试了一下,然后就知难而退了。商业界则对其

毫无办法。大型软件开发商们斥巨资来制造代码,明明想要扮演上帝的角色,却还装作

自己是人类的公仆。所有人都在盯着镜子里的自己。计算机却在一旁偷偷的笑。”

“theself-righteo,legalistshaveadeabigistakethkgthey

candefethefaredevelopntprocessthederstandneitherits

begngritsnseencesounitytrieditbriefly

andthengaveupthebessunitynevercrackedthedethegiant

farehoesarepournoroenergyrocesfcreatgde,

od,andpretendgtobeservantfankdalrelookgat

theselvestheirrortheputerisughgback”

;/逻辑哲学论/逻辑哲学论/逻辑哲学论/逻辑哲学论/逻辑哲学论/逻辑哲学论/逻辑哲学论/逻辑哲学论

最新小说: 我有一卷鬼神图录列表 公若不弃,愿拜为义父 契约成婚,总裁宠妻30天言晚 女总裁的绝世兵王 遗珠放飞自我的带娃 我家小师妹天下第一 我的情敌信息素过敏 从龙女开始修仙 武侠世界的慕容复慕容复东方晴 大道破天