展开全部 +
首页 . 理学 . 计算机科学技术 . 软件工程 . 软件工程管理 . 软件质量工程 . 程序分析

静态分析

/static analysis/
条目作者沈立炜

沈立炜

最后更新 2024-12-13
浏览 173
最后更新 2024-12-13
浏览 173
0 意见反馈 条目引用

在不运行程序代码的方式下,通过词法分析、语法分析、控制流、数据流分析等技术对程序代码进行扫描,验证程序代码是否满足规范性、安全性、可靠性、可维护性等指标的一种程序分析技术。

英文名称
static analysis
所属学科
计算机科学技术

静态分析的主要特点是:不实际执行程序;分析速度快、效率高;但误报率较高。常用的静态分析技术包括:①词法分析。从左至右一个字符一个字符的读入程序代码,对构成程序代码的字符流进行扫描,通过使用正则表达式匹配方法将程序代码转换为等价的符号流,生成相关符号列表。②语法分析。判断程序代码结构上是否正确,通过使用上下文无关语法将相关符号整理为语法树。③抽象语法树分析。将程序代码组织成树形结构,树中相关节点代表了程序中的相关代码。④语义分析。对结构上正确的程序代码进行上下文有关性质的审查。⑤控制流分析。生成有向控制流图,用节点表示基本代码块,节点间的有向边代表控制流路径,反向边表示可能存在的循环,还可生成函数调用关系图,表示函数间的嵌套关系。⑥数据流分析。对控制流图进行遍历,记录变量的初始化点和引用点,保存切片相关数据信息。⑦污点分析。基于数据流图判断程序代码中哪些变量可能受到攻击,是验证程序输入、识别代码表达缺陷的关键。⑧无效代码分析。根据控制流图可分析孤立的节点部分为无效代码。

相关条目

阅读历史

    意见反馈

    提 交

    感谢您的反馈

    我们会尽快处理您的反馈!
    您可以进入个人中心的反馈栏目查看反馈详情。
    谢谢!