ACM Home Page
Please provide us with feedback. Feedback
Digital Library logoTake a look at the new version of this page: [ beta version ]. Tell us what you think.
Future contracts
Full text PdfPdf (409 KB)
Source
International Conference on Principles and Practice of Declarative Programming archive
Proceedings of the 11th ACM SIGPLAN conference on Principles and practice of declarative programming table of contents
Coimbra, Portugal
SESSION: Concurrency table of contents
Pages: 195-206  
Year of Publication: 2009
ISBN:978-1-60558-568-0
Authors
Christos Dimoulas  Northeastern University, Boston, MA, USA
Riccardo Pucella  Norhteastern University, Boston, MA, USA
Matthias Felleisen  Northeaster University, Boston, MA, USA
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 7,   Downloads (12 Months): 24,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1599410.1599435
What is a DOI?

ABSTRACT

Many recent research projects focus on language support for behavioral software contracts, that is, assertions that govern the boundaries between software building blocks such as procedures, classes, or modules. Contracts primarily help locate bugs in programs, but they also tend to affect the performance of the program, especially as they become complex.

In this paper, we introduce future contracts and parallel contract checking: software contracts annotated with future are checked in parallel with the main program, exploiting the now-common multiple-core architecture. We present both a model and a prototype implementation of our language design. Our model comprises a higher-order imperative language and we use it to prove the correctness of our design. Our implementation is robust enough to measure the performance of reasonably large benchmarks, demonstrating that the use of future contracts can lead to significant performance improvements.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

1
 
2
M. Barnett, K. Leino, and W. Schulte. The Spec# programming system: An overview. In CASSIS 2004, LNCS vol. 3362,
3
 
4
 
5
A. Duncan and U. Hoelzle. Adding Contracts to Java with Handshake. Technical report, Santa Barbara, CA, USA, 1998.
 
6
 
7
 
8
R. Findler and M. Blume. Contracts as Pairs of Projections. In International Symposium in Functional and Logic Programming,pages 226--241, 2006.
9
 
10
 
11
R. Findler, S. Guo, and A. Rogers. Lazy contract checking for immutable data structures. In International Symposium on Implementation and Application of Functional Languages, pages 22--34, 2007.
 
12
 
13
M. Flatt. PLT MzScheme: Language manual. Technical Report PLT-TR2009-reference-v4.1.4, PLT Scheme Inc., 2009. http://www.plt--scheme.org/techreports/.
 
14
B. Gomes, D. Stoutamire, B. Vaysman, and H. Klawitter. A Language Manual for Sather 1.1, 1996.
15
 
16
K. Havelund and G. Ros¸u. Monitoring Java Programs with Java PathExplorer. Technical report, 2001.
 
17
M. Herlihy and N. Shavit. The Art of Multiprocessor Programming. Morgan Kaufmann, 2008.
 
18
 
19
M. Karaorman, U. Holzle, and J. Bruno. jContractor: A Reflective Java Library to Support Design by Contract. Technical report, Santa Barbara, CA, USA, 1999.
 
20
 
21
M. Kölling and J. Rosenberg. Blue: Language Specification, version 0.94, 1997.
 
22
23
 
24
 
25
26
 
27
 
28
 
29
 
30
 
31
 
32
K. Zee, V. Kuncak, and M. Rinard. Runtime Checking for Program Verification Systems. In Runtime Verification, pages 202--213,2007.

Collaborative Colleagues:
Christos Dimoulas: colleagues
Riccardo Pucella: colleagues
Matthias Felleisen: colleagues