skip to main content
10.1145/1924520.1924529acmotherconferencesArticle/Chapter ViewAbstractPublication PagesecoopConference Proceedingsconference-collections
research-article

A theory of typestate-oriented programming

Published:22 June 2010Publication History

ABSTRACT

Engineers in many disciplines use state machines to reason about system changes, and many object-oriented libraries require their clients to follow state machine protocols. No existing language, however, has native support for state machines, and programmers often lose productivity and introduce errors when trying to understand and follow interaction protocols. The Plaid language extends the object paradigm with explicit states and state transitions, in order to better model object state transitions. In this paper, we present Plaidcore, a core calculus for Plaid, which uses states and permissions to statically guarantee that clients use object protocols correctly.

References

  1. J. Aldrich, R. Simmons, and K. Shin. SASyLF: an educational proof assistant for language theory. In Proceedings of the 2008 international workshop on Functional and declarative programming in education, pages 31--40. ACM, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. J. Aldrich, J. Sunshine, D. Saini, and Z. Sparks. Typestate-oriented programming. In Proceeding of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications, pages 1015--1022. ACM, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. A. Bejleri, J. Aldrich, and K. Bierhoff. Ego: Controlling the power of simplicity. In Proceedings of the Workshop on Foundations of Object Oriented Languages (FOOL/WOOD 2006). Citeseer, 2006.Google ScholarGoogle Scholar
  4. K. Bierhoff and J. Aldrich. Modular typestate checking of aliased objects. In Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications, page 320. ACM, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. K. Bierhoff, N. Beckman, and J. Aldrich. Practical API protocol checking with access permissions. ECOOP 2009--Object-Oriented Programming, pages 195--219. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. J. Boyland. Checking interference with fractional permissions. Static Analysis, pages 1075--1075. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. F. Damiani, E. Giachino, P. Giannini, N. Cameron, and S. Drossopoulou. A State Abstraction for Coordination in Java-like Languages. In Proceedings of FTfJP, 2006.Google ScholarGoogle Scholar
  8. R. DeLine and M. Fähndrich. Typestates for objects. ECOOP 2004--Object-Oriented Programming, pages 465--490.Google ScholarGoogle Scholar
  9. S. Drossopoulou, F. Damiani, M. Dezani-Ciancaglini, and P. Giannini. Fickle: Dynamic object re-classification. ECOOP 2001 Object-Oriented Programming, pages 130--149. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. C. Flanagan, A. Sabry, B. Duba, and M. Felleisen. The essence of compiling with continuations. ACM SIGPLAN Notices, 28(6):237--247, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. A. Kay. The early history of Smalltalk. ACM SigPlan Notices, 28:69--69, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. D. Malayeri. Coding Without Your Crystal Ball: Unanticipated Object-Oriented Reuse. PhD thesis, Carnegie Mellon University, Pittsburgh, PA, USA, 2009.Google ScholarGoogle Scholar
  13. R. E. Strom and S. Yemini. Typestate: A Programming Language Concept for Enhancing Software Reliability. IEEE Transactions on Software Engineering, 12(1):157--171, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. J. Sunshine and J. Aldrich. Dynxml: Safely programming the dynamic web. In APLWACA '10: Proceedings of the 2010 Workshop on Analysis and Programming Languages for Web Applications and Cloud Applications. ACM, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. A. Taivalsaari. Object-oriented programming with modes. Journal of Object Oriented Programming, 6:25--25, 1993.Google ScholarGoogle Scholar
  16. D. Ungar and R. Smith. Self: The power of simplicity. Lisp and symbolic computation, 4(3):187--205, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. A theory of typestate-oriented programming

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Other conferences
        FTFJP '10: Proceedings of the 12th Workshop on Formal Techniques for Java-Like Programs
        June 2010
        66 pages
        ISBN:9781450305402
        DOI:10.1145/1924520

        Copyright © 2010 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 22 June 2010

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

        Acceptance Rates

        Overall Acceptance Rate51of75submissions,68%

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader