Pict: a programming language based on the Pi-Calculus
Proof, language, and interaction
Language Primitives and Type Discipline for Structured Communication-Based Programming
ESOP '98 Proceedings of the 7th European Symposium on Programming: Programming Languages and Systems
An Interaction-based Language and its Typing System
PARLE '94 Proceedings of the 6th International PARLE Conference on Parallel Architectures and Languages Europe
Modern concurrency abstractions for C#
ACM Transactions on Programming Languages and Systems (TOPLAS)
Subtyping for session types in the pi calculus
Acta Informatica
A Conversation with Steve Ross-Talbot
Queue - Workflow Systems
Language support for fast and reliable message-based communication in singularity OS
Proceedings of the 1st ACM SIGOPS/EuroSys European Conference on Computer Systems 2006
Secure Implementations for Typed Session Abstractions
CSF '07 Proceedings of the 20th IEEE Computer Security Foundations Symposium
Streamflex: high-throughput stream programming in java
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Multiparty asynchronous session types
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Structured communication-centred programming for web services
ESOP'07 Proceedings of the 16th European conference on Programming
Asynchronous session types and progress for object oriented languages
FMOODS'07 Proceedings of the 9th IFIP WG 6.1 international conference on Formal methods for open object-based distributed systems
Inference of Session Types From Control Flow
Electronic Notes in Theoretical Computer Science (ENTCS)
Session types for object-oriented languages
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
Communicating mobile processes
CSP'04 Proceedings of the 2004 international conference on Communicating Sequential Processes: the First 25 Years
DirectFlow: a domain-specific language for information-flow systems
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Structured Interactional Exceptions in Session Types
CONCUR '08 Proceedings of the 19th international conference on Concurrency Theory
Global Progress in Dynamically Interleaved Multiparty Sessions
CONCUR '08 Proceedings of the 19th international conference on Concurrency Theory
Formal Methods for Web Services
Asynchronous Session Types: Exceptions and Multiparty Interactions
Formal Methods for Web Services
Session-Based Communication Optimisation for Higher-Order Mobile Processes
TLCA '09 Proceedings of the 9th International Conference on Typed Lambda Calculi and Applications
Proving Copyless Message Passing
APLAS '09 Proceedings of the 7th Asian Symposium on Programming Languages and Systems
Sessions and session types: an overview
WS-FM'09 Proceedings of the 6th international conference on Web services and formal methods
Type-safe eventful sessions in java
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
Buffered communication analysis in distributed multiparty sessions
CONCUR'10 Proceedings of the 21st international conference on Concurrency theory
Dynamic multirole session types
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Scribbling interactions with a formal foundation
ICDCIT'11 Proceedings of the 7th international conference on Distributed computing and internet technology
Implementing a practical spatio-temporal composite event language
From active data management to event-based systems and more
Session typing for a featherweight Erlang
COORDINATION'11 Proceedings of the 13th international conference on Coordination models and languages
Safe parallel programming with session Java
COORDINATION'11 Proceedings of the 13th international conference on Coordination models and languages
On asynchronous session semantics
FMOODS'11/FORTE'11 Proceedings of the joint 13th IFIP WG 6.1 and 30th IFIP WG 6.1 international conference on Formal techniques for distributed systems
Parameterised multiparty session types
FOSSACS'10 Proceedings of the 13th international conference on Foundations of Software Science and Computational Structures
Tracking heaps that hop with heap-hop
TACAS'10 Proceedings of the 16th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Efficient session type guided distributed interaction
COORDINATION'10 Proceedings of the 12th international conference on Coordination Models and Languages
Programming services with correlation sets
ICSOC'11 Proceedings of the 9th international conference on Service-Oriented Computing
Linear logical relations for session-based concurrency
ESOP'12 Proceedings of the 21st European conference on Programming Languages and Systems
Multiparty session c: safe parallel programming with message optimisation
TOOLS'12 Proceedings of the 50th international conference on Objects, Models, Components, Patterns
Science of Computer Programming
Deadlock-freedom-by-design: multiparty asynchronous global programming
POPL '13 Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Session types: towards safe and fast reconfigurable programming
ACM SIGARCH Computer Architecture News - ACM SIGARCH Computer Architecture News/HEART '12
Hi-index | 0.00 |
This paper demonstrates the impact of integrating session types and object-oriented programming, through their implementation in Java. Session types provide high-level abstraction for structuring a series of interactions in a concise syntax, and ensure type-safe communications between distributed peers. We present the first full implementation of a language and runtime for session-based distributed programming featuring asynchronous message passing, delegation, and session subtyping and interleaving, combined with class downloading and failure handling. The compilation-runtime framework of our language effectively maps session abstraction onto underlying transports and guarantees communication safety through static and dynamic session type checking. We have implemented two alternative mechanisms for performing distributed session delegation and prove their correctness. Benchmark results show session abstraction can be realised with low runtime overhead.