• Home
  • Search
  • Modular session types for distributed object-oriented programming
  • Open Access IconOpen Access
  • Cite Icon17
  • https://doi.org/10.1145/1707801.1706335Copy DOI Icon

Modular session types for distributed object-oriented programming

Show More
  • Abstract
  • Literature Map
  • References
  • Citations
  • Similar Papers
Abstract

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.

Similar Papers
  • Book Chapter
  • Citations60

Session Types for Functional Multithreading

  • Jan 01, 2004
  • Vasco Vasconcelos +2
  • Research Article

Partial and Complete Processes in Multiparty Sessions

  • Apr 01, 2016
  • Electronic Notes in Theoretical Computer Science
  • Mario Coppo +3
  • Conference Article
  • Citations5

Session Logical Relations for Noninterference

  • Jun 29, 2021
  • Farzaneh Derakhshan +2
  • Research Article
  • Citations12

Session Types at the Mirror

  • Dec 03, 2009
  • Electronic Proceedings in Theoretical Computer Science
  • Luca Padovani
  • Research Article
  • Citations57

FeatherTrait

  • Mar 01, 2008
  • ACM Transactions on Programming Languages and Systems
  • Luigi Liquori +1
  • Conference Article
  • Citations106

Haskell session types with (almost) no class

  • Sep 25, 2008
  • Riccardo Pucella +1
  • Conference Article
  • Citations10

Towards a Session Logic for Communication Protocols

  • Dec 01, 2015
  • Florin Craciun +2
  • Book Chapter
  • Citations17

Discretionary Information Flow Control for Interaction-Oriented Specifications

  • Jan 01, 2015
  • Alberto Lluch Lafuente +2
  • Conference Article
  • Citations3

A Fitness Function to Find Feasible Sequences of Method Calls for Evolutionary Testing of Object-Oriented Programs

  • Apr 01, 2008
  • Myoung Yee Kim +1
  • Book Chapter
  • Citations6

A Session Subtyping Tool

  • Jan 01, 2021
  • Lorenzo Bacchiani +3
  • Research Article
  • Citations113

MultiJava

  • May 01, 2006
  • ACM Transactions on Programming Languages and Systems
  • Curtis Clifton +3
  • Book Chapter
  • Citations96

First-Class Relationships in an Object-Oriented Language

  • Jan 01, 2005
  • Gavin Bierman +1
  • Supplementary Content

Co-Contextual Type Systems: Contextless Deductive Reasoning for Correct Incremental Type Checking

  • Mar 02, 2020
  • TUbilio (Technical University of Darmstadt)
  • Edlira Kuci
  • Research Article
  • Citations29

Synchronous Multiparty Session Types

  • Jun 18, 2009
  • Electronic Notes in Theoretical Computer Science
  • Andi Bejleri +1
  • Research Article
  • Citations7

An object-oriented SECS programming environment

  • May 01, 1993
  • IEEE Transactions on Semiconductor Manufacturing
  • E.J Wood
Cactus Communications logo

Copyright 2026 Cactus Communications. All rights reserved.