检测语法定向定义中的循环。指数?

时间:2014-04-28 17:21:10

标签: parsing attributes dependencies cycle tarjans-algorithm

当我在解析树中循环依赖属性的上下文中遇到以下行时,我正在研究“编译器:Aho,Ullman,Sethi和Lam的原理,技术和工具”中的语法定向定义:

  

在计算上很难确定给定SDD可能必须翻译的任何解析树中是否存在任何圆形。   (部分:5.1.2)

同样在http://cs.nyu.edu/courses/fall12/CSCI-GA.2130-001/lecture8.pdf中提到了

  

检测周期具有指数时间复杂度

但Tarjan的强连通组件算法可以在O(E + V)中找到循环。那么为什么上述来源与此相矛盾?

有谁能告诉我我错过了什么?

1 个答案:

答案 0 :(得分:2)

O(E+V)在某个解析树中找到一个循环。但那不是问题。问题是

  

确定给定SDD可能必须翻译的任何解析树中是否存在任何循环。 (强调补充)。

这是一个相当困难的问题。