A syntactic approach to type soundness
Information and Computation
Concurrent programming in ERLANG (2nd ed.)
Concurrent programming in ERLANG (2nd ed.)
Making the future safe for the past: adding genericity to the Java programming language
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Featherweight Java: a minimal core calculus for Java and GJ
ACM Transactions on Programming Languages and Systems (TOPLAS)
Types and programming languages
Types and programming languages
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
CONCUR '93 Proceedings of the 4th International Conference on Concurrency Theory
Correspondence assertions for process synchronization in concurrent communications
Journal of Functional Programming
Subtyping for session types in the pi calculus
Acta Informatica
A Conversation with Steve Ross-Talbot
Queue - Workflow Systems
BASS: boxed ambients with safe sessions
Proceedings of the 8th ACM SIGPLAN international conference on Principles and practice of declarative programming
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
Type checking a multithreaded functional language with session types
Theoretical Computer Science
A Calculus of Global Interaction based on Session Types
Electronic Notes in Theoretical Computer Science (ENTCS)
Linear type theory for asynchronous session types
Journal of Functional Programming
Structured communication-centred programming for web services
ESOP'07 Proceedings of the 16th European conference on Programming
Actors that unify threads and events
COORDINATION'07 Proceedings of the 9th international conference on Coordination models and languages
Two session typing systems for higher-order mobile processes
TLCA'07 Proceedings of the 8th international conference on Typed lambda calculi and applications
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
Bounded session types for object oriented languages
FMCO'06 Proceedings of the 5th international conference on Formal methods for components and objects
On progress for structured communications
TGC'07 Proceedings of the 3rd conference on Trustworthy global computing
Session types for object-oriented languages
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
Information and Computation
Formal Methods for Web Services
Modular session types for distributed object-oriented programming
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Linear type theory for asynchronous session types
Journal of Functional Programming
Sessions and session types: an overview
WS-FM'09 Proceedings of the 6th international conference on Web services and formal methods
Hi-index | 5.23 |
We suggest an amalgamation of communication-based programming (centered on sessions) and object-oriented programming, whereby sessions between concurrent threads are amalgamated with methods. In our proposal, threads consist of the execution of session bodies on objects and communicate with each other by asynchronously sending/receiving objects on channels. The response to a session request is based on the name of the request and the class of the object receiving the request. The decision of how to continue a session is based on the class of the object sent/received. Sessions can be delegated to other sessions, although sessions themselves are not first class objects. We demonstrate our ideas through a core language with generic types, SAM^g, and an example. We then formalize a small calculus, FSAM^g, and prove subject reduction and progress. The latter property is notoriously difficult to achieve in concurrent calculi.