基于规则的系统如何处理递归?

时间:2015-05-30 22:52:42

标签: recursion rule-engine finite-automata

我刚刚开始学习基于规则的系统,并且无法理解它们如何处理递归。

一些快速背景。我学过一点编程语言理论,所以我非常熟悉Context-Free Grammars和类似的东西。我最近遇到了基于规则的系统,我想知道它们如何与自动机和递归相关。

  

我的问题是:基于规则的系统如何处理递归?特别是,可以使用基于规则的系统来解析嵌套括号吗? (或解析CFG)?

我对基于规则的系统还没有深刻的理解,但从似乎的内容来看,规则永远不会被组织成层次结构或网络。这是真的,还是有办法将它们表示为层次结构或网络?

如果没有创建规则层次结构的能力,似乎规则系统内存必须手动跟踪上下文,并且该上下文将用于测试条件。所以喜欢:

if parentConditionX and parentParentConditionY {
  perform some action
}

但问题是,如何返回“父”规则(如父函数上下文)?如果规则无法按层次组织/执行,那么您似乎无法进行递归?这就是我困惑的地方。

有什么想法吗?

0 个答案:

没有答案