Modular Session Types for Distributed Object-Oriented Programming

被引:11
|
作者
Gay, Simon J. [1 ]
Vasconcclos, Vasco T. [2 ]
Ravara, Antonio [3 ,4 ,5 ,6 ]
Gesbert, Nils [1 ]
Caldeira, Alexandre Z. [2 ]
机构
[1] Univ Glasgow, Dept Comp Sci, Glasgow G12 8QQ, Lanark, Scotland
[2] Univ Lisbon, Dept Informat, P-1699 Lisbon, Portugal
[3] Univ Nova Lisboa, CITI, Lisbon, Portugal
[4] Univ Nova Lisboa, Dept Informat, FCT, Lisbon, Portugal
[5] Univ Tecn Lisboa, SQIG, Inst Telecomunicacoes, P-1100 Lisbon, Portugal
[6] Univ Tecn Lisboa, Dept Math, IST, P-1100 Lisbon, Portugal
关键词
Languages; Theory; Verification; Session types; object-oriented calculus; non-uniform method availability; typestates; LANGUAGE; CHECKING; STATE;
D O I
10.1145/1707801.1706335
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Session types allow communication protocols to be specified type-theoretically so that protocol implementations can be verified by static type-checking. We extend previous work on session types for distributed object-oriented languages in three ways. (1) We attach a session type to a class definition, to specify the possible sequences of method calls. (2) We allow a session type (protocol) implementation to be modularized, i.e. partitioned into separately-callable methods. (3) We treat session-typed communication channels as objects, integrating their session types with the session types of classes. The result is an elegant unification of communication channels and their session types, distributed object-oriented programming, and a form of typestates supporting non-uniform objects, i.e. objects that dynamically change the set of available methods. We define syntax, operational semantics, a sound type system, and a correct and complete type checking algorithm for a small distributed class-based object-oriented language. Static typing guarantees that both sequences of messages on channels, and sequences of method calls on objects, conform to type-theoretic specifications, thus ensuring type-safety. The language includes expected features of session types, such as delegation, and expected features of object-oriented programming, such as encapsulation of local state. We also describe a prototype implementation as an extension of Java.
引用
收藏
页码:299 / 312
页数:14
相关论文
共 50 条
  • [21] Thinking objectively object-oriented abstractions for distributed programming
    Guerraoui, R
    Fayad, ME
    COMMUNICATIONS OF THE ACM, 1999, 42 (08) : 125 - 127
  • [22] Distributed object-oriented parallel programming environment on grid
    Woo, YJ
    Jeong, CS
    COMPUTATIONAL SCIENCE AND ITS APPLICATIONS - ICCSA 2003, PT 2, PROCEEDINGS, 2003, 2668 : 562 - 570
  • [23] Object-oriented programming of distributed iterative equation solvers
    Mackie, Robert Ian
    COMPUTERS & STRUCTURES, 2008, 86 (06) : 511 - 519
  • [24] AN OBJECT-ORIENTED PROGRAMMING LANGUAGE FOR DISTRIBUTED SYSTEMS - HERAKLIT
    HINDEL, B
    SIGPLAN NOTICES, 1989, 24 (04): : 114 - 116
  • [25] Rethinking Safe Consistency in Distributed Object-Oriented Programming
    Koehler, Mirko
    Eskandani, Nafise
    Weisenburger, Pascal
    Margara, Alessandro
    Salvaneschi, Guido
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2020, 4 (OOPSLA):
  • [26] Requirements for parallel programming in object-oriented distributed systems
    Tangney, Brendan
    Condon, Andrew
    Cahill, Vinny
    Harris, Neville
    1600, Oxford Univ Press, Oxford, United Kingdom (37):
  • [27] REQUIREMENTS FOR PARALLEL PROGRAMMING IN OBJECT-ORIENTED DISTRIBUTED SYSTEMS
    TANGNEY, B
    CONDON, A
    CAHILL, V
    HARRIS, N
    COMPUTER JOURNAL, 1994, 37 (06): : 499 - 508
  • [28] OBJECT-ORIENTED PROGRAMMING WITHOUT AN OBJECT-ORIENTED LANGUAGE
    BOOCH, G
    SEIDEWITZ, E
    START, M
    FIRESMITH, D
    SIGPLAN NOTICES, 1986, 21 (11): : 508 - 508
  • [29] Modular model of a logic circuit using object-oriented programming
    Senczyna, Stefan
    Third International Conference on Information Technology: New Generations, Proceedings, 2006, : 58 - 63
  • [30] A Modular Scheme for Deadlock Prevention in an Object-Oriented Programming Model
    West, Scott
    Nanz, Sebastian
    Meyer, Bertrand
    FORMAL METHODS AND SOFTWARE ENGINEERING, 2010, 6447 : 597 - 612