Skip to main content

Advertisement

SpringerLink
Log in
Menu
Find a journal Publish with us
Search
Cart
Book cover

European Symposium on Programming

ESOP 2012: Programming Languages and Systems pp 214–233Cite as

  1. Home
  2. Programming Languages and Systems
  3. Conference paper
Complete Monitors for Behavioral Contracts

Complete Monitors for Behavioral Contracts

  • Christos Dimoulas17,
  • Sam Tobin-Hochstadt17 &
  • Matthias Felleisen17 
  • Conference paper
  • 1518 Accesses

  • 43 Citations

Part of the Lecture Notes in Computer Science book series (LNPSE,volume 7211)

Abstract

A behavioral contract in a higher-order language may invoke methods of unknown objects. Although this expressive power allows programmers to formulate sophisticated contracts, it also poses a problem for language designers. Indeed, two distinct semantics have emerged for such method calls, dubbed lax and picky. While lax fails to protect components in certain scenarios, picky may blame an uninvolved party for a contract violation.

In this paper, we present complete monitoring as the fundamental correctness criterion for contract systems. It demands correct blame assignment as well as complete monitoring of all channels of communication between components. According to this criterion, lax and picky are indeed incorrect ways to monitor contracts. A third semantics, dubbed indy, emerges as the only correct variant.

Keywords

  • higher-order programming
  • behavioral contracts
  • contract checking

Supported in part by AFOSR grant FA9550-09-1-0110 and the DARPA CRASH program.

Download conference paper PDF

References

  1. Blume, M., McAllester, D.: Sound and complete models of contracts. Journal of Functional Programming 16(4-5), 375–414 (2006)

    CrossRef  MathSciNet  MATH  Google Scholar 

  2. Dimoulas, C., Felleisen, M.: On contract satisfaction in a higher-order world. ACM Transactions on Programming Languages and Systems (TOPLAS) 33(5), 16:1 – 16:29 (2011)

    CrossRef  Google Scholar 

  3. Dimoulas, C., Findler, R.B., Flanagan, C., Felleisen, M.: Correct blame for contracts: No more scapegoating. In: POPL, pp. 215 – 226 (2011)

    Google Scholar 

  4. Findler, R.B., Felleisen, M.: Contracts for higher-order functions. In: ICFP, pp. 48–59 (2002)

    Google Scholar 

  5. Flatt, M.: PLT: Reference: Racket. Tech. Rep. PLT-TR-2010-1, PLT Inc. (2010), http://racket-lang.org/tr1/

  6. Greenberg, M., Pierce, B.C., Weirich, S.: Contracts made manifest. In: POPL, pp. 353–364 (2010)

    Google Scholar 

  7. Meyer, B.: Eiffel: The Language. Prentice Hall (1992)

    Google Scholar 

  8. Tobin-Hochstadt, S., Felleisen, M.: Interlanguage migration: from scripts to programs. In: DLS, pp. 964–974 (2006)

    Google Scholar 

  9. Wadler, P., Findler, R.B.: Well-Typed Programs Can’t Be Blamed. In: Castagna, G. (ed.) ESOP 2009. LNCS, vol. 5502, pp. 1–16. Springer, Heidelberg (2009)

    CrossRef  Google Scholar 

  10. Wright, A.K., Felleisen, M.: A syntactic approach to type soundness. Information and Computation 115(1), 38–94 (1994)

    CrossRef  MathSciNet  MATH  Google Scholar 

  11. Zdancewic, S., Grossman, D., Morrisett, G.: Principals in programming languages: A syntactic proof technique. In: ICFP, pp. 197–207 (1999)

    Google Scholar 

Download references

Author information

Authors and Affiliations

  1. Northeastern University, Boston, Massachusetts, USA

    Christos Dimoulas, Sam Tobin-Hochstadt & Matthias Felleisen

Authors
  1. Christos Dimoulas
    View author publications

    You can also search for this author in PubMed Google Scholar

  2. Sam Tobin-Hochstadt
    View author publications

    You can also search for this author in PubMed Google Scholar

  3. Matthias Felleisen
    View author publications

    You can also search for this author in PubMed Google Scholar

Editor information

Editors and Affiliations

  1. Technische Universität München, Boltzmannstrasse 3, 85748, Garching, Germany

    Helmut Seidl

Rights and permissions

Reprints and Permissions

Copyright information

© 2012 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Dimoulas, C., Tobin-Hochstadt, S., Felleisen, M. (2012). Complete Monitors for Behavioral Contracts. In: Seidl, H. (eds) Programming Languages and Systems. ESOP 2012. Lecture Notes in Computer Science, vol 7211. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-28869-2_11

Download citation

  • .RIS
  • .ENW
  • .BIB
  • DOI: https://doi.org/10.1007/978-3-642-28869-2_11

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-28868-5

  • Online ISBN: 978-3-642-28869-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Share this paper

Anyone you share the following link with will be able to read this content:

Sorry, a shareable link is not currently available for this article.

Provided by the Springer Nature SharedIt content-sharing initiative

Search

Navigation

  • Find a journal
  • Publish with us

Discover content

  • Journals A-Z
  • Books A-Z

Publish with us

  • Publish your research
  • Open access publishing

Products and services

  • Our products
  • Librarians
  • Societies
  • Partners and advertisers

Our imprints

  • Springer
  • Nature Portfolio
  • BMC
  • Palgrave Macmillan
  • Apress
  • Your US state privacy rights
  • Accessibility statement
  • Terms and conditions
  • Privacy policy
  • Help and support

167.114.118.210

Not affiliated

Springer Nature

© 2023 Springer Nature