A behavioral contract in a higher-order language may invoke methods of unknown objects. Although this expressive power allows programmers to formulate sophisticated contracts, it also poses a problem for language designers. Indeed, two distinct semantics have emerged for such method calls, dubbed lax and picky. While lax fails to protect components in certain scenarios, picky may blame an uninvolved party for a contract violation. In this paper, we present complete monitoring as the fundamental correctness criterion for contract systems. It demands correct blame assignment as well as complete monitoring of all channels of communication between components. According to this criterion, lax and picky are indeed incorrect ways to monitor contracts. A third semantics, dubbed indy, emerges as the only correct variant. © 2012 Springer-Verlag.
CITATION STYLE
Dimoulas, C., Tobin-Hochstadt, S., & Felleisen, M. (2012). Complete monitors for behavioral contracts. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 7211 LNCS, pp. 214–233). https://doi.org/10.1007/978-3-642-28869-2_11
Mendeley helps you to discover research relevant for your work.