BoogiePL:一种用于检查面向对象程序的类型化过程语言

MSR-TR-2005-70|

本注释定义了BoogiePL,一种用于程序分析和程序验证的中间语言。该语言是一种简单的带有过程和数组的粗类型命令式语言,还支持引入数学函数和声明这些函数的属性。BoogiePL可以用来表示用命令源语言(如面向对象的.NET语言)编写的程序,以及这种源语言语义的逻辑编码。从生成的BoogiePL程序中,可以生成验证条件或执行其他程序分析,例如程序不变量的推断。通过这种方式,BoogiePL还充当了定理证明程序的编程表示前端。BoogiePL被接受为Boogie(Spec#静态程序验证器)的输入。