Nested and Dynamic Contract Boundaries [chapter]

T. Stephen Strickland, Matthias Felleisen
2010 Lecture Notes in Computer Science  
Previous work on software contracts assumes fixed and statically known boundaries between the parties to a contract. Implementations of contract monitoring systems rely on this assumption to explain the nature of contract violations and to assign blame to violators. In this paper, we explain how to implement arbitrary, nested, and dynamic contract boundaries with two examples. First, we add nestable contract regions to a static, first-order module system. Second, we show that even a dynamic,
more » ... her-order, and hierarchical module system can be equipped with software contracts that support precise blame assignment. 1 In PLT Scheme, modules can also export values for use at compile-time as well as run-time. Here we focus on run-time values.
doi:10.1007/978-3-642-16478-1_9 fatcat:ift5qgqftnbabdnegdwkgxumfi