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

Recursion 基于规则的系统如何处理递归?,recursion,rule-engine,finite-automata,Recursion,Rule Engine,Finite Automata,我刚刚开始学习基于规则的系统,并且很难理解它们如何处理递归 一些快速的背景。我学习了一些编程语言理论,所以对上下文无关语法和类似的东西非常熟悉。我最近遇到了基于规则的系统,我想知道它们与自动机和递归有什么关系 我的问题是:基于规则的系统如何处理递归?特别是,是否可以使用基于规则的系统来解析嵌套括号?(或解析CFG) 我对基于规则的系统还没有深入的了解,但从表面上看,规则从来没有组织成一个层次或网络。这是真的,还是有一种方法可以将它们表示为层次结构或网络 如果没有创建规则层次结构的能力,规则系统内

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

一些快速的背景。我学习了一些编程语言理论,所以对上下文无关语法和类似的东西非常熟悉。我最近遇到了基于规则的系统,我想知道它们与自动机和递归有什么关系

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

我对基于规则的系统还没有深入的了解,但从表面上看,规则从来没有组织成一个层次或网络。这是真的,还是有一种方法可以将它们表示为层次结构或网络

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

if parentConditionX and parentParentConditionY {
  perform some action
}
但问题是,如何返回到“父”规则(如父函数上下文)?如果规则不能分层组织/执行,那么您似乎不能执行递归?这就是我困惑的地方

有什么想法吗?

来自:“上下文无关语法(CFG)是一组用于生成字符串模式的递归重写规则(或产品)。”因此,任何基于CFG的解析器都是基于规则的系统。从我在维基百科上读到的内容来看,lex和yacc实用程序似乎可以归类为“基于规则的”。解析确实会生成“解析树”,它保留了规则应用程序的层次结构。不过,我肯定有人能比我更好地回答这个问题。