A Decade of Software Model Checking with SLAM

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

  • Even though programs have many states, it is possible to construct an abstraction of a program fine enough to represent parts of a program relevant to an API usage rule and coarse enough for a model checker to explore all the states.
  • SLAM synthesizes and extends diverse ideas from model checking, theorem proving, and data-flow analysis to
    automate construction, checking, and refinement of abstractions.
  • SLAM showed that such abstractions can be constructed automatically for real-world programs, becoming the basis of Microsoft’s Static Driver Verifier tool.

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

  • Model checking15,16,41
  • predicate abstraction

Conclusion

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

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容