Intersection and union types: syntax and semantics
Information and Computation
Featherweight Java: a minimal core calculus for Java and GJ
ACM Transactions on Programming Languages and Systems (TOPLAS)
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
Inheritance in the Join Calculus
FST TCS 2000 Proceedings of the 20th Conference on Foundations of Software Technology and Theoretical Computer Science
Correspondence assertions for process synchronization in concurrent communications
Journal of Functional Programming
A gentle introduction to semantic subtyping
PPDP '05 Proceedings of the 7th ACM SIGPLAN international conference on Principles and practice of declarative programming
Semantic Subtyping for the p-Calculus
LICS '05 Proceedings of the 20th Annual IEEE Symposium on Logic in Computer Science
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)
A theory of contracts for web services
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
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
CC-Pi: a constraint-based language for specifying service level agreements
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
Bounded session types for object oriented languages
FMCO'06 Proceedings of the 5th international conference on Formal methods for components and objects
Multipoint session types for a distributed calculus
TGC'07 Proceedings of the 3rd conference on Trustworthy global computing
On progress for structured communications
TGC'07 Proceedings of the 3rd conference on Trustworthy global computing
A distributed object-oriented language with session types
TGC'05 Proceedings of the 1st international conference on Trustworthy global computing
SCC: a service centered calculus
WS-FM'06 Proceedings of the Third international conference on Web Services and Formal Methods
Session types for object-oriented languages
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
Formal Methods for Web Services
Contracts for Mobile Processes
CONCUR 2009 Proceedings of the 20th International Conference on Concurrency Theory
Sessions and session types: an overview
WS-FM'09 Proceedings of the 6th international conference on Web services and formal methods
Hi-index | 0.00 |
In network applications it is crucial to have a mechanism to guarantee that communications evolve correctly according to the agreed protocol. Session types offer a method for abstracting and validating structured communication sequences (sessions). In this paper we propose union types for refining and enhancing the flexibility of session types in the context of communication centred and object oriented programming. We demonstrate our ideas through an example and a calculus formalising the main issues of the present approach. The type system garantees that, in well-typed executable programs, after a session has started, the values sent and received will be of the appropriate type, and no process can get stuck forever.