A key idea in object-oriented programming is that objects encapsulate state and interact with each other by message exchange. This perspective suggests a model of computation that is inherently concurrent (to facilitate simultaneous message exchange) and that accounts for the effect of message exchange on an object’s state (to express valid sequences of state transitions). In this paper we show that such a model of computation arises naturally from session-based communication. We introduce an object-oriented programming language that has processes as its only objects and employs linear session types to express the protocols of message exchange and to reason about concurrency and state. Based on various examples we show that our language supports the typical patterns of object-oriented programming (e.g., encapsulation, dynamic dispatch, and subtyping) while guaranteeing session fidelity in a concurrent setting. In addition, we show that our language facilitates new forms of expression (e.g., type-directed reuse, internal choice), which are not available in current object-oriented languages.
Mon 18 JulDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
13:50 - 15:20 | |||
13:50 30mTalk | Frozen Realms: Confining effects for safer JavaScript plugins IWACO Mark Miller Google Inc. | ||
14:20 30m | Towards Enabling Low-Level Memory Optimisations at the High-Level with Ownership Annotations IWACO Juliana Franco Imperial College London, Tobias Wrigstad Uppsala University, Sophia Drossopoulou Imperial College London Pre-print | ||
14:50 30mTalk | Objects as Session-Typed Processes IWACO |