2013
DOI: 10.1145/2518189
|View full text |Cite
|
Sign up to set email alerts
|

Contracts for First-Class Classes

Abstract: First-class classes add expressive power to class-based objectoriented languages. Most importantly, programmers can abstract over common scenarios with first-class classes. The addition of behavioral software contracts to a language with first-class classes poses significant challenges, however. In this paper, we present the first contract system for a programming language with first-class classes. The design has been implemented for PLT Scheme, which supports first-class classes and which implements mixins an… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1

Citation Types

0
3
0

Year Published

2014
2014
2019
2019

Publication Types

Select...
4
2
1

Relationship

0
7

Authors

Journals

citations
Cited by 12 publications
(3 citation statements)
references
References 51 publications
0
3
0
Order By: Relevance
“…$15.00. http://dx.doi.org/10.1145/0.0 tions [4,15,16], language integration accommodating existing semantics [6,11,19,22], and new forms of contracts [1,11,18,20,32]. Contracts are now available in a broad range of production systems.…”
Section: Introductionmentioning
confidence: 99%
“…$15.00. http://dx.doi.org/10.1145/0.0 tions [4,15,16], language integration accommodating existing semantics [6,11,19,22], and new forms of contracts [1,11,18,20,32]. Contracts are now available in a broad range of production systems.…”
Section: Introductionmentioning
confidence: 99%
“…These contracts monitor the program execution on the basis of the constraints defined by the programmer. Contract systems are habitually used in object-oriented programming languages [103]. For the sake of programming, the contracts may be written for first-order functions or higher order components for checking the truth of the claims made for the flow of values in a program.…”
Section: H Contract-based Modelingmentioning
confidence: 99%
“…Dynamic verification is possible due to executability of contracts-the runtime system can confirm that a contract holds by evaluating it. Since Eiffel advocated "Design by Contracts" [25], there has been extensive work on dynamic contract verification [33,20,11,12,43,38,8,6,7,39]. Dynamic verification is easy to use, while it brings possibly significant run-time overhead [12] and, perhaps worse, it cannot check all possible execution paths, which may lead to missing critical errors.…”
Section: Introductionmentioning
confidence: 99%