在Java中,“调用上下文”(以及其他一些术语)是什么意思?
作者:互联网
我正在尝试了解Java字节码/源代码的静态分析.
这些术语经常出现,我无法在Internet上找到令人满意的定义:
>上下文(不敏感)分析
>调用上下文
>活动呼叫站点
>指向分析
任何人都可以用外行术语来详细说明上述术语在Java上下文中的含义.
在Google上搜索“上下文”“编程”会带来有关上下文敏感的语法,语言理论等方面的内容,但不是我需要的定义(除非它们表示相同的意思).
解决方法:
>调用上下文:当分析某个位置的代码时,直接(假定)调用者的代码,或更一般地,导致此的一组(假定)调用者的代码.
>活动的呼叫站点:侧重于直接呼叫者的“呼叫上下文”的变体.
>上下文敏感分析:考虑特定调用上下文的代码位置的代码属性分析.进行此类分析的原因是,这些属性通常更加详细和精确.
>上下文不敏感分析:对代码位置的分析,其中考虑了所有可能的调用上下文.这样做是因为它比上下文敏感的分析更易于实现;它的缺点是答案通常不那么精确.
>指向分析:一种分析,该分析为每个指针分配确定(并由此访问和更新)该指针可以选择的程序中的实体集.感兴趣的实体通常由代码中的分配点集表示,例如,在堆或本地块中可能发生分配任何实体的每个位置.
标签:static-analysis,java 来源: https://codeday.me/bug/20191201/2079158.html