分享
 
 
 

程序设计方法的进化

王朝other·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

程序设计方法的进化

一:开篇

从简单到复杂,从小到大,从低级到高级是人类认识世界的过程,程序设计正如同此。

从身边的一草一木到周围的天空和大地,到整个地球,太阳系,银河系,最终到整个宇宙,这是人类认识可感知世界的历程。

从在纸带机上敲打0和1到汇编,到结构化程序设计,面向对象设计(Object-oriented programme),面向主体设计(Agent-oriented programme),这是上个世纪程序设计的发展历程,但其最终将驶向何方,我们都在拭目以待。

这里引入一个术语---“粒度”来表达程序设计的发展方向,在纸带机上编程的粒度是位,0和1;汇编的粒度是一条条语句,mov 30H, ds ;结构化设计的粒度是函数,int add(int a, int b){……};面向对象设计的粒度是类,class Man extend Object {…};面向主体的设计粒度是主体(Agent),人的化身;应用归纳原理,我们不难得出这样的结论,程序设计的发展是设计粒度从小到大的发展过程。这也正符合人类使用计算机模拟复杂社会的需要。面向主体是比面向对象更大的社会描述单位,因而也更适合用来解决复杂,大型问题。

结构化程序设计现在已经很少有人再讨论,因为它已经成为程序员的基本技能。面向对象程序设计现在正如日中天,但我相信在不久的将来面向主体设计将大行其道。下面将简单介绍和比较面向对象设计和面向主体设计。

二:面向对象与面向主体

从某一角度来看,客观世界是由由客观世界中的实体及其相互关系构成的,我们把客观世界中的实体抽象成问题空间的对象,于是我们得到了面向对象程序设计方法。对于面向对象设计我们可以用以下语言来描述:面向对象程序设计是通过对象,对象间消息传递等语言机制,使软件开发者在解空间中直接模拟问题空间中的对象及其行为,从而提供了一种直观的,自然的语言支持和方法学指导。面向对象设计的基本操纵单位为对象,即类的实例。对象间通过消息传递机制实现功能调用。使用封装,继承和多态等方法具体实现数据的安全操作,代码复用和方法重载。

社会是人和人与人之间关系的复杂组合体,我们用主体(Agent)来模拟人的思想和行为,进而用多主体系统(Multi-Agent system)模拟社会,于是我们得到了面向主体设计方法。对于面向主体设计我们可以用以下语言简单描述:面向主体方法是希望通过对人解决应用问题的智能行为进行模拟,在软件解空间中建立一种嵌入在不断变化,不确定世界中,能进行感知并能自主采取行动的计算实体。主体是含有心智成分,如信念,愿望,能力,职责,承诺等,的实体。主体程序控制主体的行为和心智状态,主体间通过各种类型的Speech Act原语实现通信。

为了得到对面向主体更清晰的认识,这里对面向主体和面向对象进行以下四方面的比较:

1:自主性

主体是位于某一环境中的一个计算实体,它有能力在该环境中自主的采取行动,即在没有人直接干预下能够采取行动,并能控制自己的行为和内部状态。对象不具有自主性,不能控制自己的行为。面向对象有public 关键字,如果将一个方法置于其下,则其他对象可任意调用该方法,拥有该方法的对象不能控制该方法是否执行。既面向对象通过直接的方法调用实现交互。面向主体是通过任务请求的方法实现交互,当主体A需要主体B来完成某个功能时,A不能直接调用B的方法和属性,只能向B发送一个任务请求,B返回结果,至于B如何完成,A无权知道。

2:反应性

主体能够感知它们的环境,如客观世界,用户,其他主体等,并以实时方式响应环境中发生的变化。对象不能自主感知外部世界,并实时做出反应。

3:社会性

主体能够在履行其自身职能的同时,还能够根据其求解状态和技能,在合适的时候与其他主体交互,以提高自己的问题求解能力或帮助其他主体的问题求解活动。而对象系统中的对象之间的关系是单向的调用关系,不存在相互作用。

4:学习能力

主体在运行过程中,通过学习以往的经验不断改善自己对同一问题的求解能力,而对象的方法却是一成不变的。假如主体M和对象N都可以求解Sin(x)和Cos(y),主体M可以通过自学习求解出Sin(x)+Cos(y),而对象N则不会,必须人工加入Sin(x)+Cos(y)函数。

看完上面的内容,请大家不要产生误解,即将面向对象和面向主体对立起来,认为是两种截然不同的方法,其实它们之间的关系是包含关系,即面向主体包含面向对象,面向对象设计方法的一切优点都可以被面向主体所吸收和容纳。从最初的SmallTalk到纯面向对象的Java , 面向对象的程序设计语言现在已经相当成熟;但到目前为止,还没有任何一种面向主体设计语言,我给不出详尽的面向主体的编程实现方法,这里讨论的只能称之为面向主体设计思想和方法。就目前的技术结构而言,面向主体的设计还需要靠面向对象程序设计语言来具体实现。

三:篇后语

面向主体设计技术的核心是人工智能,但用当前的硬件技术和知识表达方式开发人工智能始终缺少突破,现在的人工智能就象一个丑小鸭,生活在错误的环境中,故始终不能飞翔于蓝天。人工智能的发展亟待硬件技术和知识表达方式的撤底变革,变革后硬件我引用《骇客帝国》里的名词,称之为----母体:孕育智慧和生命的摇篮。从程序设计粒度从小到大的进化过程来看,我们可以预言程序设计方法的明天,答案是什么呢?从不同的角度分析我们这个复杂的世界,可以得到不同的答案。

四:参考文献

姚莉,张维明:智能协作信息技术,电子工业出版社;

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有