ACM Home Page
Please provide us with feedback. Feedback
Haskell session types with (almost) no class
Full text PdfPdf (278 KB)
Source
Haskell archive
Proceedings of the first ACM SIGPLAN symposium on Haskell table of contents
Victoria, BC, Canada
SESSION: Session 1 table of contents
Pages 25-36  
Year of Publication: 2008
ISBN:978-1-60558-064-7
Also published in ...
Authors
Riccardo Pucella  Northeastern University, Boston, MA, USA
Jesse A. Tov  Northeastern University, Boston, MA, USA
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 9,   Downloads (12 Months): 99,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1411286.1411290
What is a DOI?

ABSTRACT

We describe an implementation of session types in Haskell. Session types statically enforce that client-server communication proceeds according to protocols. They have been added to several concurrent calculi, but few implementations of session types are available.

Our embedding takes advantage of Haskell where appropriate, but we rely on no exotic features. Thus our approach translates with minimal modification to other polymorphic, typed languages such as ML and Java. Our implementation works with existing Haskell concurrency mechanisms, handles multiple communication channels and recursive session types, and infers protocols automatically.

While our implementation uses unsafe operations in Haskell, it does not violate Haskell's safety guarantees. We formalize this claim in a concurrent calculus with unsafe communication primitives over which we layer our implementation of session types, and we prove that the session types layer is safe. In particular, it enforces that channel-based communication follows consistent protocols.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

1
 
2
K. Asai and Y. Kameyama. Polymorphic delimited continuations. In Programming Languages and Systems, volume 4807 of Lecture Notes in Computer Science, pages 239--254. Springer-Verlag, 2007.
 
3
R. Atkey. Parameterized notions of computation. In Proc. Workshop on Mathematically Structured Functional Programming (MSFP'06). BCS, 2006.
 
4
E. Barendsen and S. Smetsers. Uniqueness typing for functional languages with graph rewriting semantics. Mathematical Structures in Computer Science, 6:579--612, 1996.
5
6
 
7
M. Dezani-Ciancaglini, N. Yoshida, A. Ahern, and S. Drossopolou. A distributed object-oriented language with session types. In Proc. Symposium on Trustworthy Global Computing, volume 3706 of Lecture Notes in Computer Science. Springer-Verlag, 2005.
 
8
M. Dezani-Ciancaglini, D. Mostrous, N. Yoshida, and S. Drossopolou. Session types for object-oriented languages. In Proc. European Conference on Object-Oriented Programming (ECOOP'06). Springer-Verlag, 2006.
9
 
10
 
11
 
12
S. J. Gay and V. T. Vasconcelos. Asynchronous functional session types. Technical Report 2007--251, Department of Computing, University of Glasgow, May 2007.
 
13
J.-Y. Girard. Une extension de l'interprétation de Gödel à l'analyse, et son application à l'élimination des coupures dans l'analyse et la théorie des types. In J. E. Fenstad, editor, Proc. Second Scandinavian Logic Symposium, pages 63--92. North-Holland, 1971.
 
14
J.-Y. Girard. Interprétation fonctionelle et élimination des coupures de l'arithmétique d'ordre supérieur. PhD thesis, Université Paris VI, 1972.
 
15
16
 
17
 
18
 
19
O. Kiselyov. Simple variable-state 'monad'. Mailing list message, December 2006. URL http://www.haskell.org/pipermail/haskell/2006-December/018917.html.
 
20
O. Kiselyov. Genuine shift/reset in Haskell98. Mailing list message, December 2007. URL http://www.haskell.org/pipermail/haskell/2007-December/020034.html.
21
 
22
M. Neubauer and P. Thiemann. An implementation of session types. In Proc. 7th International Symposium on Practical Aspects of Declarative Languages (PADL'04), volume 3057 of Lecture Notes in Computer Science, pages 56--70, 2004.
23
 
24
S. Peyton Jones, M. P. Jones, and E. Meijer. Type classes: An exploration of the design space, 1997.
 
25
R. Pucella and A. Heller. Capability-based calculi for session types. Unpublished manuscript, 2008.
 
26
27
 
28
29
30
 
31
A. Vallecillo, V. T. Vasconcelos, and A. Ravara. Typing the behavior of objects and components using session types. In Proc. International Workshop on Foundations of Coordination Languages and Software Architectures, volume 68(3) of Electronic Notes in Theoretical Computer Science. Elsevier Science Publishers, 2003.
 
32
 
33

Collaborative Colleagues:
Riccardo Pucella: colleagues
Jesse A. Tov: colleagues