Imperial College London

Emeritus ProfessorSusanEisenbach

Faculty of EngineeringDepartment of Computing

Emeritus Professor of Computing
 
 
 
//

Contact

 

s.eisenbach Website

 
 
//

Location

 

Huxley BuildingSouth Kensington Campus

//

Summary

 

Publications

Citation

BibTex format

@techreport{Sackman:2008,
author = {Sackman, M and Eisenbach, S},
title = {Session Types in Haskell: Updating Message Passing for the 21st Century},
url = {http://hdl.handle.net/10044/1/5918},
year = {2008}
}

RIS format (EndNote, RefMan)

TY  - RPRT
AB - Session Types allow plans of conversation between two concurrent processes to be treated as types. Type checking then ensures that communication between processes is safe: i.e. it obeys the protocol specified by the session type. Thus Session Types offer a means to establish conformance to protocols in both distributed applications and multi-threaded programming.\r\n\r\nWe incorporate Session Types into Haskell as a tool for concurrent programming. Our implementation, which is a standard Haskell library, presents a monadic API to the programmer. Using the library looks and feels very much like normal monadic computation and thus there is a shallow learning curve for the Haskell programmer. Our implementation lifts the invariants and properties of Session Types into Haskell's rich type system. This allows our implementation to statically verify the use of the communication primitives provided without an additional type checker, preprocessor or modification to the compiler.\r\n\r\nOur implementation supports multiple concurrent communication channels, individual processes can interleave actions across any number of open channels, and channels themselves can be sent and received. New channels can be created between pre-existing processes as well as to newly created processes. Communication is asynchronous and fully polymorphic. To our knowledge, no other implementation of Session Types is available in any language which matches our library in terms of functionality and supported features. We describe the key aspects of our implementation and demonstrate, through a running example, its usage and flexibility.
AU - Sackman,M
AU - Eisenbach,S
PY - 2008///
TI - Session Types in Haskell: Updating Message Passing for the 21st Century
UR - http://hdl.handle.net/10044/1/5918
ER -