2010 · 86 citations · 41 references
ComputingComputer ScienceDistributed SystemsFormal MethodsProgramming LanguagesObject-oriented DesignObject-oriented ProgrammingProtocol VerificationSpecification LanguagesType CheckingType SystemsCommunication ChannelsCommunication ProtocolsObjectsOperational SemanticsSession TypesStatic Type CheckingType SoundnessUnification
Session types allow communication protocols to be specified type-theoretically so that protocol implementations can be verified by static type-checking. We extend previous work on session types for distributed object-oriented languages in three ways. (1) We attach a session type to a class definition, to specify the possible sequences of method calls. (2) We allow a session type (protocol) implementation to be modularized , i.e. partitioned into separately-callable methods. (3) We treat session-typed communication channels as objects, integrating their session types with the session types of classes. The result is an elegant unification of communication channels and their session types, distributed object-oriented programming, and a form of typestates supporting non-uniform objects, i.e. objects that dynamically change the set of available methods. We define syntax, operational semantics, a sound type system, and a correct and complete type checking algorithm for a small distributed class-based object-oriented language. Static typing guarantees that both sequences of messages on channels, and sequences of method calls on objects, conform to type-theoretic specifications, thus ensuring type-safety. The language includes expected features of session types, such as delegation, and expected features of object-oriented programming, such as encapsulation of local state. We also describe a prototype implementation as an extension of Java.
41
A Syntactic Approach to Type Soundness
Andy Wright, Matthias Felleisen · Information and Computation · 1994 · 1.1K citations
Multiparty asynchronous session types
Kohei Honda, Nobuko Yoshida, Marco Carbone · 2008 · 659 citations · Full text
Ownership types for flexible alias protection
David G. Clarke, John Potter, James Noble · 1998 · 578 citations · Full text
Enforcing high-level protocols in low-level software
Robert DeLine, Manuel Fähndrich · 2001 · 487 citations