2011
DOI: 10.1145/2034574.2034800
|View full text |Cite
|
Sign up to set email alerts
|

Temporal higher-order contracts

Abstract: Behavioral contracts are embraced by software engineers because they document module interfaces, detect interface violations, and help identify faulty modules (packages, classes, functions, etc). This paper extends prior higher-order contract systems to also express and enforce temporal properties, which are common in software systems with imperative state, but which are mostly left implicit or are at best informally specified. The paper presents both a programmatic contract API as well as a temporal contract … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
27
0

Year Published

2013
2013
2018
2018

Publication Types

Select...
4
1
1

Relationship

0
6

Authors

Journals

citations
Cited by 18 publications
(27 citation statements)
references
References 43 publications
0
27
0
Order By: Relevance
“…The interplay between higher-order contracts and behavioral/temporal aspects of modules, such as restricting the order in which functions can be invoked, has been previously addressed by Disney et al [2011] and Scholliers et al [2015]. In both approaches, the enforcement of temporal constraints is done dynamically and the contract language allows for the specification of both allowed and disallowed traces.…”
Section: Related Workmentioning
confidence: 99%
See 2 more Smart Citations
“…The interplay between higher-order contracts and behavioral/temporal aspects of modules, such as restricting the order in which functions can be invoked, has been previously addressed by Disney et al [2011] and Scholliers et al [2015]. In both approaches, the enforcement of temporal constraints is done dynamically and the contract language allows for the specification of both allowed and disallowed traces.…”
Section: Related Workmentioning
confidence: 99%
“…On the contrary, in 位CoS, the usage of endpoints is regulated by a combination of static and dynamic constraints: static constraints are enforced by session types, which guarantee that processes use session endpoints according to their protocol; dynamic constraints, which concern the content of exchanged messages and may affect the selection and availability of choices and branches (Section 6.3), are checked at runtime by monitors. None of the previous works on behavioral/temporal contracts Scholliers et al [2015], Disney et al [2011] provides a characterisation of module correctness or a formal statement about the correctness of blame assignment akin to our blame soundness result (Section 5). Swords et al [2015] proposed 位 CC , a language tailored to the implementation of alternative approaches to monitoring, and discussed a possible implementation of the temporal contracts of Disney et al [2011] on top of 位 CC .…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation
“…In this section we show computational contracts where the programmer describes a partial specification of the path of applications a certain function should or should not follow. In our implementation this path is expressed by a finite state machine 6 . As shown in Figure 8, this finite state machine describes which functions can be applied successively.…”
Section: Usage Protocolsmentioning
confidence: 99%
“…Finally, Higher Order Temporal (HOT) Contracts [6] extend prior higher-order contract systems to also express and enforce temporal properties between modules. In their formalisation, module behaviour is modelled as a trace of events such as function calls and returns, which does not include internal module calls.…”
Section: Grey Box Verification Techniquesmentioning
confidence: 99%