TY - JOUR
T1 - Modular set-based analysis from contracts
AU - Meunier, Philippe
AU - Findler, Robert Bruce
AU - Felleisen, Matthias
PY - 2006
Y1 - 2006
N2 - In PLT Scheme, programs consist of modules with contracts. The latter describe the inputs and outputs of functions and objects via predicates. A run-time system enforces these predicates; if a predicate fails, the enforcer raises an exception that blames a specific module with an explanation of the fault. In this paper, we show how to use such module contracts to turn set-based analysis into a fully modular parameterized analysis. Using this analysis, a static debugger can indicate for any given contract check whether the corresponding predicate is always satisfied, partially satisfied, or (potentially) completely violated. The static debugger can also predict the source of potential errors, i.e., it is sound with respect to the blame assignment of the contract system.
AB - In PLT Scheme, programs consist of modules with contracts. The latter describe the inputs and outputs of functions and objects via predicates. A run-time system enforces these predicates; if a predicate fails, the enforcer raises an exception that blames a specific module with an explanation of the fault. In this paper, we show how to use such module contracts to turn set-based analysis into a fully modular parameterized analysis. Using this analysis, a static debugger can indicate for any given contract check whether the corresponding predicate is always satisfied, partially satisfied, or (potentially) completely violated. The static debugger can also predict the source of potential errors, i.e., it is sound with respect to the blame assignment of the contract system.
KW - Modular Analysis
KW - Runtime Contracts
KW - Set-based Analysis
KW - Static Debugging
UR - http://www.scopus.com/inward/record.url?scp=33745184702&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=33745184702&partnerID=8YFLogxK
U2 - 10.1145/1111320.1111057
DO - 10.1145/1111320.1111057
M3 - Article
AN - SCOPUS:33745184702
SN - 0362-1340
VL - 41
SP - 218
EP - 231
JO - SIGPLAN Notices (ACM Special Interest Group on Programming Languages)
JF - SIGPLAN Notices (ACM Special Interest Group on Programming Languages)
IS - 1
ER -