我刚刚开始学习基于规则的系统,并且无法理解它们如何处理递归。
一些快速背景。我学过一点编程语言理论,所以我非常熟悉Context-Free Grammars和类似的东西。我最近遇到了基于规则的系统,我想知道它们如何与自动机和递归相关。
我的问题是:基于规则的系统如何处理递归?特别是,可以使用基于规则的系统来解析嵌套括号吗? (或解析CFG)?
我对基于规则的系统还没有深刻的理解,但从似乎的内容来看,规则永远不会被组织成层次结构或网络。这是真的,还是有办法将它们表示为层次结构或网络?
如果没有创建规则层次结构的能力,似乎规则系统内存必须手动跟踪上下文,并且该上下文将用于测试条件。所以喜欢:
if parentConditionX and parentParentConditionY {
perform some action
}
但问题是,如何返回“父”规则(如父函数上下文)?如果规则无法按层次组织/执行,那么您似乎无法进行递归?这就是我困惑的地方。
有什么想法吗?