Compiler construction 如何确定所需别名分析的类型?

Compiler construction 如何确定所需别名分析的类型?,compiler-construction,code-analysis,static-analysis,static-code-analysis,Compiler Construction,Code Analysis,Static Analysis,Static Code Analysis,附件是一个家庭作业问题,是否需要内容敏感和/或流敏感分析来查看src可以指向哪些值。 它给出了内容敏感和流敏感分析的定义,但是如何解释它是内容敏感(结果取决于调用堆栈)还是内容不敏感(结果不取决于调用堆栈)和流敏感(查看程序中的每个点)以及流不敏感(查看程序执行中的任何点) 需要流敏感和上下文不敏感的分析 在第3行,流敏感分析确保src只指向函数调用的实际参数,否则它也可能指向本地参数 在10和11的两个上下文中,src都指向a(上下文不敏感的分析就足够了)但是描述说,上下文敏感的分析将检查调用

附件是一个家庭作业问题,是否需要内容敏感和/或流敏感分析来查看src可以指向哪些值。 它给出了内容敏感和流敏感分析的定义,但是如何解释它是内容敏感(结果取决于调用堆栈)还是内容不敏感(结果不取决于调用堆栈)和流敏感(查看程序中的每个点)以及流不敏感(查看程序执行中的任何点)


需要流敏感和上下文不敏感的分析

在第3行,流敏感分析确保src只指向函数调用的实际参数,否则它也可能指向本地参数


在10和11的两个上下文中,src都指向a(上下文不敏感的分析就足够了)

但是描述说,上下文敏感的分析将检查调用堆栈上的内容。并且“a”是从外部调用堆栈传入的,这会使其上下文敏感吗?与“本地”相反,它不是从外部服务器传入的stack@user1095332,上下文敏感意味着区分调用上下文。区分调用与第10行、第11行。上下文不敏感并不意味着它不知道传递了什么值。它组合了所有传递的值进行分析。调用堆栈不同于activ调用记录。仅用于匹配调用和返回调用堆栈