Tai-e 数据流分析框架
活跃变量分析与常量传播求解器
在 Tai-e 静态分析框架上实现两道数据流分析作业:A1 活跃变量分析(迭代求解器 + 位向量集合),A2 常量传播(含跨过程常量传播与分支常量分析)。完整实现 DataflowAnalysis 抽象基类、Fact 的 meet/transfer 契约,以及 Worklist 调度器。
- javaA1 活跃变量分析meet 处做并集(gen/kill 视角),transfer 求 use/eval 的差集。
- javaA1 迭代求解器Worklist 驱动:节点结果变化时重新入队其 successors。
- javaA1 位向量集合以 BitSet 承载集合运算,取代朴素 HashSet 以压缩内存。
- java数据流分析抽象基类定义 load/store/initialize 与 isBackward 的契约,子类只实现 meet 与 transfer。
- javaA2 常量传播格高为「未知 / 常量值」,meet 在非常量处取未知。
- javaA2 常量格格论要点:底元素、顶元素、glb(最大下界)与 lub(最小上界)。
- javaA2 值域表示区分未定义、无值与具体常量,避免把 0 与「无」混淆。
更多源码37 个类
- javaAbstractDataflowAnalysis.java
- javaAssignment.java
- javaCFG.java
- javaCallGraphBuilder.java
- javaDataflowResult.java
- javaExp.java
- javaGraph.java
- javaNodeResult.java
- javaResultProcessor.java
- javaSolver.java
- javaStmt.java
- javaStmtResult.java
- javaVar.java
- javaAbstractDataflowAnalysis.java
- javaArithmeticExp.java
- javaAssignment.java
- javaBinaryExp.java
- javaBitwiseExp.java
- javaCFG.java
- javaCallGraphBuilder.java
- javaConditionExp.java
- javaDataflowAnalysis.java
- javaDataflowResult.java
- javaDefinitionStmt.java
- javaExp.java
- javaGraph.java
- javaIR.java
- javaIntLiteral.java
- javaMapFact.java
- javaNodeResult.java
- javaResultProcessor.java
- javaShiftExp.java
- javaSolver.java
- javaStmt.java
- javaStmtResult.java
- javaVar.java
- javaWorkListSolver.java
配套文档与讲义13 份
- pdfAdvanced Topics Online Z3 Guide1.3 MB
- pdfIntroduction Online Z3 Guide2.0 MB
- pdf作业 1:活跃变量分析和迭代求解器 Tai-e1.3 MB
- pdf作业 2:常量传播和 Worklist 求解器 Tai-e1.3 MB
- pdf参赛者-突破语义鸿沟291 KB
- pdf参赛者-约束求解器学习笔记1.1 MB
- pdf参赛者-计算机2202-读书笔记384 KB
- pdf基于LLM技术进行软件漏洞分析挖掘的技术发展现状调研报告350 KB
- pdf漏洞挖掘与数据分析22.8 MB
- pdf软件漏洞分析与挖掘实验报告943 KB
- docx基于LLM技术进行软件漏洞分析挖掘的技术发展现状调研报告24 KB
- docx突破语义鸿沟23 KB
- docx综述23 KB