A Decade of Software Model Check

2015-05-29  本文已影响52人  westwood

A Decade of Software Model Checking with SLAM

by Thomas Ball , Vladimir Levin, and Sriram K. Rajamani
communications of the acm | july 2011 | vol. 54 | no. 7

remark: SLAM is a program-analysis engine used to check if clients of an API follow the API's stateful usage rules.

key insights

SLAM

question: whether API rules can be formally documented so programs using the APIs can be checked at compile time for compliance against the rules.

SLAM

SLIC specification language.

specificiation example

CEGAR via predicate abstraction.

Figure 2 presents ML-style pseudocode of the CEGAR process.

CEGAR procedure

The goal of SLAM is to check if all executions of the
given C program P (type cprog) satisfy a
SLIC rule S (type spec).

abstract (P´, preds ∪ refine(pr f))

From SLAM to SDV

SDV: a completely automatic tool (based on SLAM) device-driver developers can use at compile time.

remark: We wanted to build a verifier covering
all possible behaviors of the program while checking the rule, as opposed to a testing tool that checks the rule on a
subset of behaviors covered by the test.

Environment models.

Related Work

Conclusion

A unique SLAM contribution: the complete automation of CEGAR for software written in expressive programming languages (such as C).

上一篇下一篇

猜你喜欢

热点阅读