智能体编程语言的结构化与模块化编程
1. 智能体编程语言的语法扩展
在智能体编程中,为了实现代码复用、模块化等重要特性,对基于反应规则的智能体语言的语法进行扩展是很有必要的。首先介绍了查询定义的扩展语法:
<query_def> := "defineq" <identifier> "{" <queries> "}"
<query> := <identifier>
这里假设查询缩写标识符是唯一的。命名查询扩展的形式定义与命名的心理状态转换器(mst)类似,关于递归应用和扩展操作符的不动点的相关说明同样适用。
基于宏扩展还可以引入更多简单的扩展,例如命名更新或可复用模块的定义。可复用模块由多个命名的 mst 组成,具有类似命名空间的特性,这将进一步增强智能体程序的模块化。参数化宏定义及其向类似 Lisp 的 lambda 演算的语法构造的扩展,将实现类似于 C++ 的可复用代码模板。
下面通过一个股票交易的例子来说明这些扩展的应用:
define careful_strategy(TITLE) {
when [{ wants(TITLE) }] then [{ drop_goal(wants(TITLE)) }] ;
}
define opportunistic_strategy(TITLE) {
%% Adapted code from Example 1 %%
}
defineq market_
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



