Jus*_*s12 3 java static-analysis dataflow
之前曾问过这个问题,但答案非常通用.我很想知道在静态代码分析的上下文中有什么上下文,特别是Java,以及与术语context(in)敏感分析结合使用时.
例如,本文在此背景下广泛使用"背景".事实上,我还没有找到合适的上下文定义.
您链接的问题中的"上下文"一词似乎并未用于描述静态分析,因此您的确是另一个问题.我不认为这是问题的答案是"一般".但它们肯定不是您正在寻找的具体答案.
甲上下文敏感的分析是过程间分析分析函数调用的目标时考虑了呼叫上下文.
以下是上下文相关分析如何工作的示例:
int a,b;
int *x;
void f(void)
{
++*x;
}
int main(){
x = &a;
f();
x = &b;
f();
}
Run Code Online (Sandbox Code Playgroud)
这不是Java,但您的问题主要是关于数据流分析中的上下文敏感性,所以我希望它不会太令人不安.
上下文相关分析器f()
在此程序中分析(至少)两次,因为它是从呼叫站点调用的.这使得它精确,因为f()
每次的效果都非常不同.上下文敏感的分析可以推断,a==1
和b
所述第一呼叫之后是不变的,并且这两个a
和b
是1
第二呼叫之后.上下文敏感性也使分析变得昂贵.
上下文不敏感的分析只会分析f()
一次,并且通常只会产生" f()
修改a
或b
因此在调用f()
这两个变量的内容后未知" 的类别的信息.
归档时间: |
|
查看次数: |
2210 次 |
最近记录: |