热门问题
时间线
聊天
视角
代理人導向編程
来自维基百科,自由的百科全书
Remove ads
代理人導向程式設計(AOP:Agent-oriented programming),是一種程式設計範式,這裡軟體的構造以軟體代理的概念為中心。對比於擁有對象(提供具有可變形式參數的方法)作為核心的物件導向程式設計,AOP擁有外部指定的代理(具有介面和訊息能力)作為核心。它們可以被認為是對象的抽象。交換的訊息可以由接收「代理」,以特定於它的代理類的方法來解釋。
歷史
歷史上,代理人導向程式設計的概念,和軟體圍繞代理的概念為中心的想法,是Yoav Shoham在1990年於他的人工智慧研究中介入的[1][2]。他的代理特定於自己的範式,因為它們就只有一個方法,具有一個形式參數。下面引述Yoav Shoham的1990年論文,論述在AOP和OOP之間的基本區別:
代理人導向程式設計(AOP),可以被看作是特殊化了的物件導向程式設計。
框架
有多個AOP框架,也叫做代理平台,實現了Shoham的程式設計範式。下面的例子展示基本的代理如何編程hello-world程式。
在Java平台上的框架之一是JADE[3][4]。有執行代碼的代理的一個非常基本的例子[5]:
package helloworld;
import jade.core.Agent;
public class Hello extends Agent {
protected void setup() {
System.out.println("Hello World. ");
System.out.println("My name is "+ getLocalName());
}
public Hello() {
System.out.println("Constructor called");
}
}
作為JADE的AOP模型的核心的是支援標準FIPA的ACL的API。
PADE(Python代理開發框架)[6]是用Python語言開發智慧型代理的Python包。這個框架遵循了FIPA及其ACL標準。
class AgenteHelloWorld(Agent):
def __init__(self, aid):
super(AgenteHelloWorld, self).__init__(aid=aid)
display_message(self.aid.localname, 'Hello World!')
參見
- NetLogo
- GOAL代理程式語言
- SARL語言
參照
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads