Future contracts

  • Authors:
  • Christos Dimoulas;Riccardo Pucella;Matthias Felleisen

  • Affiliations:
  • Northeastern University, Boston, MA, USA;Norhteastern University, Boston, MA, USA;Northeaster University, Boston, MA, USA

  • Venue:
  • PPDP '09 Proceedings of the 11th ACM SIGPLAN conference on Principles and practice of declarative programming
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

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.