Behavioral software contracts

Robert Findler*

*Corresponding author for this work

Research output: Contribution to journalArticlepeer-review


The study covers technical challenges of contracts while demonstrating the non-technical motivation for contract system design choices and showing how contracts and contract research can serve practicing programmers. Meyer (1991; 1992) implemented the first full-fledged contract system and developed a matching software engineering philosophy, design by contract. Findler and Felleisen (2002) introduced contracts to the functional programming world, generalizing them to higher-order languages, and introduced the ideas of blame and boundaries as independent concepts worthy of study. Greenberg et al. (2010) studied dependent contracts, showing how there are natural variations hiding in Blume and McAllester's model. Strickland and Felleisen (2009) explore the crucial pragmatic question of how to draw boundaries between components. Herman and colleagues (2007) demonstrate how contract implementations break tail-recursion and design a virtual machine that recovers it.

Original languageEnglish (US)
Pages (from-to)137-138
Number of pages2
JournalACM SIGPLAN Notices
Issue number9
StatePublished - Sep 2014


  • Contracts

ASJC Scopus subject areas

  • Computer Science(all)


Dive into the research topics of 'Behavioral software contracts'. Together they form a unique fingerprint.

Cite this