2010
DOI: 10.1007/978-3-642-16478-1_9
|View full text |Cite
|
Sign up to set email alerts
|

Nested and Dynamic Contract Boundaries

Abstract: Abstract. 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, higher-o… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1

Citation Types

0
2
0

Year Published

2013
2013
2014
2014

Publication Types

Select...
3

Relationship

1
2

Authors

Journals

citations
Cited by 3 publications
(2 citation statements)
references
References 29 publications
0
2
0
Order By: Relevance
“…Instead of having that lexer call directly the language lexers, we could insert a lexer manager function that accesses the list of trusted lexers and attaches to each lexer an appropriate contract. In Racket we can implement this idea easily with with-contract, a construct for creating nested contract regions inside a component [27]:…”
Section: Contract Checking Only When Necessarymentioning
confidence: 99%
“…Instead of having that lexer call directly the language lexers, we could insert a lexer manager function that accesses the list of trusted lexers and attaches to each lexer an appropriate contract. In Racket we can implement this idea easily with with-contract, a construct for creating nested contract regions inside a component [27]:…”
Section: Contract Checking Only When Necessarymentioning
confidence: 99%
“…Delimited and composable control operators provide new ways for values to flow and thus require special contract support ). Classes and object systems also lead to new concerns for contracts, from behavioral subtyping to support for first-class classes (Strickland and Felleisen 2010; Strickland and Felleisen (2009) explore the crucial pragmatic question of how to draw boundaries between components. A number of researchers have also explored parametric polymorphic contracts (Guha et al 2007;Matthews and Ahmed 2008;Ahmed et al 2011), using the idea that runtime sealing is the dynamic analog of polymorphic type checking.…”
mentioning
confidence: 99%