C 在静态分析中寻找循环迭代器
如何在静态分析中找到循环迭代器?变量成为迭代器的不同条件是什么 在一个超级简化的for循环中,类似于for(i=0;iC 在静态分析中寻找循环迭代器,c,loops,static-analysis,C,Loops,Static Analysis,如何在静态分析中找到循环迭代器?变量成为迭代器的不同条件是什么 在一个超级简化的for循环中,类似于for(i=0;i
- 达到定义
- 范围值
- 控制流图
i++; // For indexed structures
p = p -> next; // For linked structures
i <= n; // For scalar values
p == null; // For pointers
终止通常与进度表达式与某个常量(表示“循环常量”)的比较有关,例如:
i++; // For indexed structures
p = p -> next; // For linked structures
i <= n; // For scalar values
p == null; // For pointers
我恐怕您甚至不能一般地假设“初始化表达式的lhs是迭代器”。大量的for
循环完全忽略了这一部分,其他循环中有多个声明,但其他循环使用的迭代器与在其中初始化的迭代器不同。我认为这不是为这个问题设计的。一本关于循环分析的书可以(也可能已经)写成。@YePhIcK。我用这个策略来实现一个超级简单的for循环。这个问题也适用于其他类型的for循环。不确定这个问题是关于什么的。一个循环有一个interator(我指的是所有类型的循环)甚至不是强制性的。这个答案似乎是公平的。至少是一个好的开始。谢谢我暂时结束这个问题。