首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么规则引擎没有用Prolog编写?

为什么规则引擎没有用Prolog编写?
EN

Software Engineering用户
提问于 2013-07-16 17:36:24
回答 3查看 6.2K关注 0票数 18

根据我对Prolog的了解,它似乎是为应用程序构建规则引擎的理想选择。然而,我相信我从未见过用Prolog编写的规则引擎。Prolog中是否存在一些固有的限制(例如,糟糕的垃圾收集算法),从而阻止它用于构建规则引擎?

EN

回答 3

Software Engineering用户

回答已采纳

发布于 2013-07-17 15:50:22

规则引擎在婴儿期几乎完全是用Prolog编写的--这是逻辑语言。对于一小部分规则,他们发挥了巨大的作用。然而,事实证明,他们的规模不是很好。我没有明确的参考,但我的理解是,Prolog处理规则链接的方式效率低下--为创建非常大的堆栈而建立的递归模型将其带到爬行中。

RETE算法及其后继算法的发展为处理大量规则提供了一种更有效的方法,从而接管了该算法。

也许现代的prolog比80年代的S更有效率,当时大多数早期的工作都已经完成了。

票数 16
EN

Software Engineering用户

发布于 2013-07-16 22:17:32

开玩笑的回答:因为如果规则引擎的创建者知道Prolog (或者水星、规划师或…)他们不会写规则引擎,他们会使用Prolog。

票数 14
EN

Software Engineering用户

发布于 2013-07-16 22:10:12

一般来说,规则引擎的要点是它是另一个应用程序的一部分。用Prolog编写应用程序是相当罕见的,也没有一个通用的接口将Prolog连接到用其他语言编写的应用程序。

一个用于规则引擎的基于规则的工具是夹子,它被写入到其他应用程序中。CLIPS基于OPS5,并使用Rete算法进行剪枝规则。

票数 5
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/205077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档