中国科学技术大学:《程序分析与程序验证》课程教学资源(PPT课件讲稿)第2章 数据流分析(补充)

第2章 数据流分析 内容概述 数据流分析推导的是数据沿着程序执行路 径流动的信息 -过程内的分析:可用表达式分析、到达一定值分 析等 一过程间分析 Shape分析 理论基础 -数据流方程的求解
第2章 数据流分析 • 内容概述 数据流分析推导的是数据沿着程序执行路 径流动的信息 – 过程内的分析:可用表达式分析、到达-定值分 析等 – 过程间分析 – Shape分析 – 理论基础 – 数据流方程的求解

第2章 数据流分析 数据流分析的用途 -编译优化、程序维护 -程序安全性的检查 和编译原理课程的区别 基于源代码的结构化分析方法,而不是基于基 本块和程序流图的分析 从过程内讨论到过程间 强调理论基础
第2章 数据流分析 • 数据流分析的用途 – 编译优化、程序维护 – 程序安全性的检查 • 和编译原理课程的区别 –基于源代码的结构化分析方法,而不是基于基 本块和程序流图的分析 –从过程内讨论到过程间 –强调理论基础

第2章 数据流分析 数据流分析的正确性 数据流分析所得结论同程序运行时的情况一致 需要定义机器模型和操作语义,证明所得结论 对操作语义可靠 由于数据流分析收集的信息同基本块和控制流 有关,通常和变量值无关,因此不同于一般的可 靠性证明,例如Ioare逻辑的赋值公理是可靠的 {x=1}x:=x+1{x=2
第2章 数据流分析 • 数据流分析的正确性 数据流分析所得结论同程序运行时的情况一致 –需要定义机器模型和操作语义,证明所得结论 对操作语义可靠 –由于数据流分析收集的信息同基本块和控制流 有关,通常和变量值无关,因此不同于一般的可 靠性证明,例如Hoare逻辑的赋值公理是可靠的 {x = 1} x := x + 1 {x = 2}

活跃变量分析 活跃变量分析的正确性 需要将该正确性概念形式地表达出来 在活跃变量的初值相同的不同格局下S,σ〉和 〈S,σ)执行程序S的结果应该是一样的 再细化一下,程序每执行一步,得到的不同格 局S,σ)和KS,σ>中,活跃变量的值都相同
活跃变量分析 • 活跃变量分析的正确性 –需要将该正确性概念形式地表达出来 –在活跃变量的初值相同的不同格局下S, 1 和 S, 2 执行程序S的结果应该是一样的 –再细化一下,程序每执行一步,得到的不同格 局S , 1 和S , 2 中,活跃变量的值都相同

第2章 数据流分析 数据流分析的基础 把各种数据流模式作为一个整体来抽象地研 究,然后可以形式地回答数据流算法的下列 几个基本问题: 在什么情况下数据流分析中使用的迭代算法是正 确的? 该迭代算法所得解的精度如何? 该迭代算法是否收敛? 数据流方程的解的含义是什么?
第2章 数据流分析 • 数据流分析的基础 把各种数据流模式作为一个整体来抽象地研 究,然后可以形式地回答数据流算法的下列 几个基本问题: – 在什么情况下数据流分析中使用的迭代算法是正 确的? – 该迭代算法所得解的精度如何? – 该迭代算法是否收敛? – 数据流方程的解的含义是什么?

第2章 数据流分析 为一类数据流模式建一个共同理论框架 总结已讨论过的四种数据流分析模式 整理出该框架的一些基本特征或原则 规范框架中的性质空间要满足的特征 规范框架中迁移函数要满足的性质 给出框架的定义 区分单调框架和分配框架的区别 常量传播数据流模式不是分配的
第2章 数据流分析 • 为一类数据流模式建一个共同理论框架 – 总结已讨论过的四种数据流分析模式 –整理出该框架的一些基本特征或原则 –规范框架中的性质空间要满足的特征 –规范框架中迁移函数要满足的性质 –给出框架的定义 –区分单调框架和分配框架的区别 –常量传播数据流模式不是分配的

第2章 数据流分析 位向量框架(Bit vector framework) Single-bit representation of each data flow property Separability of solution Data flow properties can be evaluated independently Merge operation is a bitwise AND or OR operation Monotonic bit function A bit function cannot negate any bit
第2章 数据流分析 • 位向量框架(Bit vector framework) – Single-bit representation of each data flow property – Separability of solution • Data flow properties can be evaluated independently • Merge operation is a bitwise AND or OR operation – Monotonic bit function • A bit function cannot negate any bit

第2章 数据流分析 ·分配性蕴涵单调性的证明 12并且f1 2)=1) 2)蕴涵1) 2) 证明 因为 2)= 2)=1)2) 所以 1)2)
第2章 数据流分析 • 分配性蕴涵单调性的证明 l1 l2 并且f(l1 l2 ) = f(l1 ) f(l2 ) 蕴涵 f(l1 ) f(l2 ) 证明 因为 f(l2 ) = f(l1 l2 ) = f(l1 ) f(l2 ) 所以 f(l1 ) f(l2 )

第2章 数据流分析 ·常量传播框架的非分配性 X=3 B2 三 2 Z=X十y B EXIT 说明常量传播框架没有分配性的例子
第2章 数据流分析 • 常量传播框架的非分配性 说明常量传播框架没有分配性的例子 B1 EXIT z = x + y x = 2 y = 3 B3 x = 3 B2 y = 2

第2章 数据流分析 整数格 一⊥表示没有任何信息可用 表示可能不是常量
第2章 数据流分析 • 整数格 – ⊥表示没有任何信息可用 – 表示可能不是常量 ⊥ … −3 −2 −1 0 1 2 3 …
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 中国科学技术大学:《程序分析与程序验证》课程教学资源(课件讲稿)第2章 数据流分析(Nielson等)Principles of Program Analysis - Data Flow Analysis.pdf
- 中国科学技术大学:《程序分析与程序验证》课程教学资源(PPT课件讲稿)第1章 引言(主讲:陈意云).ppt
- 中国科学技术大学:《编译原理与技术》课程教学资源(PPT课件讲稿)第9章 独立于机器的优化.ppt
- 中国科学技术大学:《编译原理与技术》课程教学资源(PPT课件讲稿)第8章 代码生成.ppt
- 中国科学技术大学:《编译原理与技术》课程教学资源(PPT课件讲稿)第7章 中间代码生成.ppt
- 中国科学技术大学:《编译原理与技术》课程教学资源(PPT课件讲稿)第13章 函数式语言的编译.ppt
- 中国科学技术大学:《编译原理与技术》课程教学资源(PPT课件讲稿)第12章 面向对象语言的编译.ppt
- 中国科学技术大学:《编译原理与技术》课程教学资源(PPT课件讲稿)第11章 编译系统和运行系统.ppt
- 中国科学技术大学:《编译原理与技术》课程教学资源(PPT课件讲稿)第10章 依赖于机器的优化.ppt
- 中国科学技术大学:《编译原理与技术》课程教学资源(PPT课件讲稿)第6章 运行时存储空间的组织和管理.ppt
- 中国科学技术大学:《编译原理与技术》课程教学资源(PPT课件讲稿)第5章 类型检查.ppt
- 中国科学技术大学:《编译原理与技术》课程教学资源(PPT课件讲稿)第4章 语法制导的翻译.ppt
- 中国科学技术大学:《编译原理与技术》课程教学资源(PPT课件讲稿)第3章 语法分析.ppt
- 中国科学技术大学:《编译原理与技术》课程教学资源(PPT课件讲稿)第2章 词法分析.ppt
- 中国科学技术大学:《编译原理与技术》课程教学资源(PPT课件讲稿)第1章 引论(主讲:张昱、陈意云).ppt
- 中国科学技术大学:《计算机科学导论》课程教学资源(PPT课件讲稿)第十讲 大数据的处理和分析.pptx
- 中国科学技术大学:《计算机科学导论》课程教学资源(PPT课件讲稿)第九讲 新型计算模型和顺序交互的数学.ppt
- 中国科学技术大学:《计算机科学导论》课程教学资源(PPT课件讲稿)第六讲 计算复杂性和算法分析.ppt
- 中国科学技术大学:《计算机科学导论》课程教学资源(PPT课件讲稿)第八讲 多核体系结构与并行编程模型.ppt
- 中国科学技术大学:《计算机科学导论》课程教学资源(PPT课件讲稿)第七讲 面向计算机体系结构的程序优化.ppt
- 中国科学技术大学:《程序分析与程序验证》课程教学资源(课件讲稿)第3章 基于约束的分析(Nielson等)Principles of Program Analysis - Control Flow Analysis.pdf
- 中国科学技术大学:《程序分析与程序验证》课程教学资源(PPT课件讲稿)第3章 基于约束的分析(补充).ppt
- 中国科学技术大学:《程序分析与程序验证》课程教学资源(课件讲稿)第4章 抽象解释(Nielson等)Principles of Program Analysis - Abstract Interpretation.pdf
- 中国科学技术大学:《程序分析与程序验证》课程教学资源(PPT课件讲稿)第4章 抽象解释(补充).ppt
- 中国科学技术大学:《程序分析与程序验证》课程教学资源(课件讲稿)第5章 类型和效果系统(Nielson等)Principles of Program Analysis - Type and Effect Systems.pdf
- 中国科学技术大学:《程序分析与程序验证》课程教学资源(PPT课件讲稿)第5章 类型和效果系统(补充).ppt
- 中国科学技术大学:《程序分析与程序验证》课程教学资源(PPT课件讲稿)第6章 模型检测.ppt
- 中国科学技术大学:《程序分析与程序验证》课程教学资源(PPT课件讲稿)第7章 程序验证 Program verification.ppt
- 中国科学技术大学:《程序分析与程序验证》课程教学资源(PPT课件讲稿)第7章 程序验证 ProgramVerification Necula 01 Theorem Proving.ppt
- 中国科学技术大学:《程序分析与程序验证》课程教学资源(PPT课件讲稿)第7章 程序验证 ProgramVerification Necula 02 Finish Verification Condition Generation Simple Prover for FOL.ppt
- 中国科学技术大学:《程序分析与程序验证》课程教学资源(PPT课件讲稿)第7章 程序验证 ProgramVerification Necula 03 Theorem Proving for FOL Satisfiability Procedures.ppt
- 中国科学技术大学:《程序分析与程序验证》课程教学资源(PPT课件讲稿)第7章 程序验证 ProgramVerification Necula 04 Decision-Procedure Based Theorem Provers Tactic-Based Theorem Proving Inferring Loop Invariants.ppt
- 中国科学技术大学:《程序设计语言理论》课程教学资源(参考教材)第1章 引言.pdf
- 中国科学技术大学:《程序设计语言理论》课程教学资源(参考教材)第2章 泛代数和代数数据类型.pdf
- 中国科学技术大学:《程序设计语言理论》课程教学资源(参考教材)第6章 递归类型.pdf
- 中国科学技术大学:《程序设计语言理论》课程教学资源(PPT课件讲稿)第1章 引言(主讲:陈意云).ppt
- 中国科学技术大学:《程序设计语言理论》课程教学资源(PPT课件讲稿)第2章 泛代数和代数数据类型.ppt
- 中国科学技术大学:《程序设计语言理论》课程教学资源(PPT课件讲稿)第3章 简单类型化λ演算.ppt
- 中国科学技术大学:《程序设计语言理论》课程教学资源(PPT课件讲稿)第4章 类型化λ演算的模型.ppt
- 中国科学技术大学:《程序设计语言理论》课程教学资源(PPT课件讲稿)第5章 命令式程序的语义.ppt