• DocumentCode
    1298068
  • Title

    Typestate: A programming language concept for enhancing software reliability

  • Author

    Strom, Robert E. ; Yemini, Shaula

  • Author_Institution
    IBM Thomas J. Watson Res. Center, Yorktown Heights, NY, USA
  • Issue
    1
  • fYear
    1986
  • Firstpage
    157
  • Lastpage
    171
  • Abstract
    The authors introduce a new programming language concept, called typestate, which is a refinement of the concept of type. Whereas the type of a data object determines the set of operations over permitted on the object, typestate determines the subset of these operations which is permitted in a particular context. Typestate tracking is a program analysis technique which enhances program reliability by detecting at compile-time syntactically legal but semantically undefined execution sequences. These include reading a variable before it has been initialized and dereferencing a pointer after the dynamic object has been deallocated. The authors define typestate, give examples of its application, and show how typestate checking may be embedded into a compiler. They discuss the consequences of typestate checking for software reliability and software structure, and summarize their experience in using a high-level language incorporating typestate checking.
  • Keywords
    data structures; program compilers; software reliability; compile-time; compiler; data object; dynamic object; high-level language; program analysis technique; programming language; software reliability; typestate; undefined execution sequences; Computer languages; Context; Law; Program processors; Software reliability; Program analysis; program verification; security; software reliability; type checking; typestate;
  • fLanguage
    English
  • Journal_Title
    Software Engineering, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0098-5589
  • Type

    jour

  • DOI
    10.1109/TSE.1986.6312929
  • Filename
    6312929