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 条
  • [31] Object-oriented units of measurement
    Allen, E
    Chase, D
    Luchangco, V
    Maessen, JW
    Steele, GL
    ACM SIGPLAN NOTICES, 2004, 39 (10) : 384 - 403
  • [32] THE OBJECT-ORIENTED COBOL MODEL
    CLARKE, D
    GARFUNKEL, J
    COMPUTER STANDARDS & INTERFACES, 1993, 15 (2-3) : 301 - 305
  • [33] Verifiable Object-Oriented Transactions
    Alagic, Suad
    Fazeli, Adnan
    CONCURRENT OBJECTS AND BEYOND: PAPERS DEDICATED TO AKINORI YONEZAWA ON THE OCCASION OF HIS 65TH BIRTHDAY, 2014, 8665 : 251 - 275
  • [34] Secure Distributed Programming with Value-Dependent Types
    Swamy, Nikhil
    Chen, Juan
    Fournet, Cedric
    Strub, Pierre-Yves
    Bhargavan, Karthikeyan
    Yang, Jean
    ACM SIGPLAN NOTICES, 2011, 46 (09) : 266 - 278
  • [35] Mirrors: Design Principles for Meta-level Facilities of Object-Oriented Programming Languages
    Bracha, Gilad
    Ungar, David
    ACM SIGPLAN NOTICES, 2015, 50 (08) : 35 - 48
  • [36] Mirrors: Design principles for meta-level facilities of object-oriented programming languages
    Bracha, G
    Ungar, D
    ACM SIGPLAN NOTICES, 2004, 39 (10) : 331 - 344
  • [37] ThisType for Object-Oriented Languages: From Theory to Practice
    Ryu, Sukyoung
    ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2016, 38 (03):
  • [38] Associating synchronization constraints with data in an object-oriented language
    Vaziri, M
    Tip, F
    Dolby, J
    ACM SIGPLAN NOTICES, 2006, 41 (01) : 334 - 345
  • [39] A Refinement Methodology for Object-Oriented Programs
    Tafat, Asma
    Boulme, Sylvain
    Marche, Claude
    FORMAL VERIFICATION OF OBJECT-ORIENTED SOFTWARE, 2011, 6528 : 153 - +
  • [40] Static checking of GDPR-related privacy compliance for object-oriented distributed systems
    Tokas, Shukun
    Owe, Olaf
    Ramezanifarkhani, Toktam
    JOURNAL OF LOGICAL AND ALGEBRAIC METHODS IN PROGRAMMING, 2022, 125