21. Citation Count: 92
Automatic Predicate
Abstraction of C Programs
Thomas Ball (MSR),
Rupak Majumdar (U.C.Berkeley),
Todd Millstein (Univ. of Washinton),
Sriram K. Rajamani (MSR)
30. 具体例
type List = {data next:List;} proc reverse(data list:List):List
set R:List;
pred roots(pointer x,y:List, set [roots(list,null,R)]
R:List) {
= allpos p of List: data res:List;
p in R pointer temp:List;
<=> res = null;
x<next*>p | y<next*>p; while [roots(list,res,R)] (list!=null)
{
temp = list.next;
list.next = res;
res = list;
list = temp;
}
return res;
}
[roots(return,null,R)]