代理人導向編程
面向代理編程(AOP:Agent-oriented programming),是一種編程范型,這裡軟件的構造以軟件代理的概念為中心。對比於擁有對象(提供具有可變形式參數的方法)作為核心的面向對象編程,AOP擁有外部指定的代理(具有接口和消息能力)作為核心。它們可以被認為是對象的抽象。交換的消息可以由接收「代理」,以特定於它的代理類的方法來解釋。
歷史
歷史上,面向代理編程的概念,和軟件圍繞代理的概念為中心的想法,是Yoav Shoham在1990年於他的人工智能研究中介入的[1][2]。他的代理特定於自己的范型,因為它們就只有一個方法,具有一個形式參數。下面引述Yoav Shoham的1990年論文,論述在AOP和OOP之間的基本區別:
面向代理編程(AOP),可以被看作是特殊化了的面向對象編程。
OOP | AOP | |
---|---|---|
基本單元 | 對象 | 代理 |
定義基本單元狀態的參數 | 無約束 | 信念,承諾,能力,選擇 ... |
計算的過程 | 消息傳遞和響應方法 | 消息傳遞和響應方法 |
消息的類型 | 無約束 | 通知,要求,提供,允諾,拒絕 ... |
方法的約束 | 無 | 誠實,一致 ... |
框架
有多個AOP框架,也叫做代理平台,實現了Shoham的編程范型。下面的例子展示基本的代理如何編程hello-world程序。
JADE
在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
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!')
參見
引用
- ^ Shoham, Y. Agent-Oriented Programming (Technical Report STAN-CS-90-1335). Stanford University: Computer Science Department. 1990.
- ^ Shoham, Y. Agent-Oriented Programming. Artificial Intelligence. 1993, 60 (1): 51–92. CiteSeerX 10.1.1.123.5119 . doi:10.1016/0004-3702(93)90034-9.
- ^ JADE
- ^ Bellifeminee, Fabio; Agostino Poggi; Giovanni Rimassa. JADE: a FIPA2000 compliant agent development environment. Proceedings of the fifth international conference on Autonomous agents: 216–217. 2001. doi:10.1145/375735.376120.
- ^ Rootdev. rootdev.nl. [18 September 2022]. (原始內容存檔於2 July 2011).
- ^ Python Agent DEvelopment framework — Pade 1.0 documentation. [2023-12-30]. (原始內容存檔於2023-10-23).
這是一篇關於電腦程式語言的小作品。您可以透過編輯或修訂擴充其內容。 |