a theory of typestate-oriented programming
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 Plaid core , a core calculus for Plaid, which uses states and permissions to statically guarantee that clients use object protocols correctly.
typestate oriented programming verification