当我在解析树中循环依赖属性的上下文中遇到以下行时,我正在研究“编译器:Aho,Ullman,Sethi和Lam的原理,技术和工具”中的语法定向定义:
在计算上很难确定给定SDD可能必须翻译的任何解析树中是否存在任何圆形。 (部分:5.1.2)
同样在http://cs.nyu.edu/courses/fall12/CSCI-GA.2130-001/lecture8.pdf中提到了
检测周期具有指数时间复杂度
但Tarjan的强连通组件算法可以在O(E + V)中找到循环。那么为什么上述来源与此相矛盾?
有谁能告诉我我错过了什么?
答案 0 :(得分:2)
它O(E+V)
在某个解析树中找到一个循环。但那不是问题。问题是
确定给定SDD可能必须翻译的任何解析树中是否存在任何循环。 (强调补充)。
这是一个相当困难的问题。