Session Types for Linear Multithreaded Functional Programming

被引:7
作者
Vasconcelos, Vasco T. [1 ]
机构
[1] Univ Lisbon, Dept Informat, Fac Sci, P-1699 Lisbon, Portugal
来源
PPDP'09: PROCEEDINGS OF THE 11TH INTERNATIONAL ACM SIGPLAN SYMPOSIUM ON PRINCIPLES AND PRACTICE OF DECLARATIVE PROGRAMMING | 2009年
关键词
Session types; Functional programming; Linear type systems; Concurrency;
D O I
10.1145/1599410.1599411
中图分类号
TP18 [人工智能理论];
学科分类号
081104 ; 0812 ; 0835 ; 1405 ;
摘要
The construction of reliable concurrent and distributed systems is an extremely difficult endeavour. For complex systems, it requires modular development strategies based on precise interface specifications that allow the various modules to interact properly. In this extended abstract we are concerned with message passing systems where partners engage in long and complex interactions, as opposed to, say, remote procedure calls composed of a pair of simple interactions. Session types allow for the description of continuous series of interactions between several partners. In the simpler case, they detail protocols between two partners [Honda et al. 1998]; recently the original setting was widened to encompass multiple partners [Honda et al. 2008]. In this paper we deal with binary sessions only. Through a running example we visit session types and a functional concurrent language equipped with buffered semantics. Apart from the traditional "well typed programs do not go wrong", the semantics proposed allows for two extra interesting results: the ability to predict the required buffer size, and that of anticipating an output with respect to an input operation.
引用
收藏
页码:1 / 6
页数:6
相关论文
共 14 条
  • [11] Vallecillo A, 2006, FUND INFORM, V73, P583
  • [12] Vasconcelos V, 2004, LECT NOTES COMPUT SC, V3170, P497
  • [13] Type checking a multithreaded functional language with session types
    Vasconcelos, Vasco T.
    Gay, Simon J.
    Ravara, Antonio
    [J]. THEORETICAL COMPUTER SCIENCE, 2006, 368 (1-2) : 64 - 87
  • [14] Vasconcelos VT, 2009, LECT NOTES COMPUT SC, V5569, P158