TY - JOUR
T1 - On contract satisfaction in a higher-order world
AU - Dimoulas, Christos
AU - Felleisen, Matthias
PY - 2011/11/1
Y1 - 2011/11/1
N2 - Behavioral software contracts have become a popular mechanism for specifying and ensuring logical claims about a program's flow of values. While contracts for first-order functions come with a natural interpretation and are well understood, the various incarnations of higher-order contracts adopt, implicitly or explicitly, different views concerning the meaning of contract satisfaction. In this article, we define various notions of contract satisfaction in terms of observational equivalence and compare them with each other and notions in the literature. Specifically, we introduce a small model language with higher-order contracts and use it to formalize different notions of contract satisfaction. Each of them demands that the contract parties satisfy certain observational equivalences.
AB - Behavioral software contracts have become a popular mechanism for specifying and ensuring logical claims about a program's flow of values. While contracts for first-order functions come with a natural interpretation and are well understood, the various incarnations of higher-order contracts adopt, implicitly or explicitly, different views concerning the meaning of contract satisfaction. In this article, we define various notions of contract satisfaction in terms of observational equivalence and compare them with each other and notions in the literature. Specifically, we introduce a small model language with higher-order contracts and use it to formalize different notions of contract satisfaction. Each of them demands that the contract parties satisfy certain observational equivalences.
KW - Contract satisfaction
KW - Higher-order contracts
UR - http://www.scopus.com/inward/record.url?scp=82155164516&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=82155164516&partnerID=8YFLogxK
U2 - 10.1145/2039346.2039348
DO - 10.1145/2039346.2039348
M3 - Article
AN - SCOPUS:82155164516
SN - 0164-0925
VL - 33
JO - ACM Transactions on Programming Languages and Systems
JF - ACM Transactions on Programming Languages and Systems
IS - 5
M1 - 16
ER -