第4章 抽象解释 内容概述 以一种独立于编程语言的方式,介绍抽象解释的 一些本质概念 将“程序分析对语言语义是正确的”这个概念公 式化 用“加宽和收缩技术”来获得最小不动点的较好 的近似,并使所需计算步数得到限制 用“伽罗瓦连接和伽罗瓦插入”来把代价较大的 属性空间用代价较小的属性空间来代替 伽罗瓦连接可以通过一种系统的方式来构造,可 用来从一种分析的规范导出另一种分析的规范
第4章 抽象解释 • 内容概述 以一种独立于编程语言的方式,介绍抽象解释的 一些本质概念 – 将“程序分析对语言语义是正确的”这个概念公 式化 – 用“加宽和收缩技术”来获得最小不动点的较好 的近似,并使所需计算步数得到限制 – 用“伽罗瓦连接和伽罗瓦插入”来把代价较大的 属性空间用代价较小的属性空间来代替 – 伽罗瓦连接可以通过一种系统的方式来构造,可 用来从一种分析的规范导出另一种分析的规范
第4章 抽象解释 内容概述 用“伽罗瓦连接和伽罗瓦插入”来把代价较大的 属 性空间用代价较小的属性空间来代替 有时,属性完全格L上的计算代价太大,甚至不 可计算,因此需用较简单的完全格M来代替L 必须有一种用M来描述L的方法,并将采用M的 分析替代采用L的分析 伽罗瓦连接和伽罗瓦插入是用来表达程序的属性 空间L、属性空间M之间联系的一种工具
第4章 抽象解释 • 内容概述 用“伽罗瓦连接和伽罗瓦插入”来把代价较大的 属 性空间用代价较小的属性空间来代替 – 有时,属性完全格L上的计算代价太大,甚至不 可计算,因此需用较简单的完全格M来代替L – 必须有一种用M来描述L的方法,并将采用M的 分析替代采用L的分析 – 伽罗瓦连接和伽罗瓦插入是用来表达程序的属性 空间L、属性空间M之间联系的一种工具
第4章 抽象解释 抽象解释 在程序静态分析中,用于构造和逼近程序不动点 语义的理论 使用抽象对象域上的计算抽象来逼近程序指称的 具体对象域上的计算,使得程序抽象执行的结果 能够反映出程序真实运行的部分信息 本质上是在计算效率和计算精度之间取得均衡, 以损失计算精度来求得计算的可行性,再通过迭 代计算来增强计算精度
第4章 抽象解释 • 抽象解释 – 在程序静态分析中,用于构造和逼近程序不动点 语义的理论 – 使用抽象对象域上的计算抽象来逼近程序指称的 具体对象域上的计算,使得程序抽象执行的结果 能够反映出程序真实运行的部分信息 – 本质上是在计算效率和计算精度之间取得均衡, 以损失计算精度来求得计算的可行性,再通过迭 代计算来增强计算精度
第4章 抽象解释 4.1节 将“程序分析对语言的语义是正确的”这个 概念公式化 。 方式1:正确性关系 R:VxL→{true,.false -正确性标准:R在程序计算过程中保持 可接受的正确性关系 增加两个条件 1、属性值1越小(偏序)越精确 2、存在描述一个值y的最好属性值1
第4章 抽象解释 4.1 节 将“程序分析对语言的语义是正确的”这个 概念公式化 • 方式1:正确性关系 – R : V L → {true, false} – 正确性标准:R在程序计算过程中保持 – 可接受的正确性关系 增加两个条件 1、属性值 l 越小(偏序)越精确 2、存在描述一个值 v 的最好属性值 l
第4章 抽象解释 4.1节 将“程序分析对语言的语义是正确的”这个 概念公式化 方式2:表示函数 -B:V→L,将v映射到表示它的最好属性值 两种方式之间的等价 -从B可以定义相关的可接受R 从可接受R可以定义相关的B
第4章 抽象解释 4.1 节 将“程序分析对语言的语义是正确的”这个 概念公式化 • 方式2:表示函数 – : V → L, 将 v 映射到表示它的最好属性值 l • 两种方式之间的等价 – 从可以定义相关的可接受R – 从可接受R可以定义相关的