摘要
摘 要
随着程序员和用户对计算机系统软件和可执行程序安全性和正确性的要求
不断提高,程序验证以其可靠而高精确的验证结果,在计算机领域已经越来越
受欢迎。验证一个程序具体是指使用正规的数学方法,证明该段程序满足特定
的由其规范描述的属性。近年来,为了使得被验证程序的正确性不依赖于庞大
复杂的编译器的正确性,越来越多的程序验证工作选择直接在机器语言或者汇
编语言上进行。
然而,验证汇编程序具有很大的困难,因为汇编语言不具备高级语言中的
非常清晰的抽象机制的结构(如循环体结构、函数结构等),来帮助程序的理
解和验证。在汇编语言中,仅有的结构为由一连串顺序指令组成以跳转指令结
尾的程序代码的基本块。因为缺乏结构化的抽象机制,为了能够一致地验证
各种抽象机制,己有的汇编语言级程序验证系统只能选择忽略所有的抽象机
制,使用基本块作为验证的基本单元,将所有的程序代码都以延续传递风格
(Continuation
Passing
制意义的破坏,CPS风格的验证系统很难能够被用来验证大的软件系统。另外,
CPS逻辑验证系统一般仅能够验证汇编程序的安全性,却很难保证它们的部分
正确
原创力文档

文档评论(0)