加载中...
抽象解释是一套用于静态分析程序的理论框架,通过在抽象域上近似模拟程序执行,在不实际运行程序的前提下推导出程序性质。它由科萨夫妇提出,是现代静态分析工具的理论基石。

| 提出者 | 科萨夫妇 |
| 提出时间 | 1977年 |
| 核心工具 | 伽罗瓦连接、加宽 |
| 分析取向 | 可靠近似 |
| 典型应用 | 静态程序分析 |
抽象解释是一种对程序进行安全近似分析的通用理论框架,其核心思想是用一个抽象的、可计算的域来近似程序在具体域上的真实行为,从而在不运行程序的情况下自动推导出程序的不变性质。
抽象解释由帕特里克·科萨(Patrick Cousot)与拉迪亚·科萨(Radhia Cousot)夫妇于1977年提出。由于精确分析程序性质通常不可判定,抽象解释故意牺牲精度换取可计算性与可靠性,它保证得出的结论是安全的,即宁可报告过多可能性也绝不遗漏真实情况。
抽象解释是众多工业级静态分析工具的理论核心,用于检测数组越界、空指针、数值溢出、区间分析等。航空航天等安全关键领域用它证明程序无运行时错误。区间分析、多面体分析、指针分析等都可纳入这一统一框架。
问:抽象解释为什么会产生误报?答:因为它用近似换取可计算性,抽象域丢失了部分精确信息,导致分析认为某些实际不可能发生的情况可能发生,从而报告出并不存在的潜在错误,这是保证不漏报所付出的代价。
问:加宽算子的作用是什么?答:循环可能让抽象值无限增长而无法终止,加宽算子通过大胆外推强行加速收敛,确保分析在有限步内停止,代价是可能损失一些精度。

| 提出者 | 科萨夫妇 |
| 提出时间 | 1977年 |
| 核心工具 | 伽罗瓦连接、加宽 |
| 分析取向 | 可靠近似 |
| 典型应用 | 静态程序分析 |
登录 后参与讨论
暂无讨论,来发表第一条评论吧