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 条
  • [41] Specification and Verification of Object-Oriented Software
    Leino, K. Rustan M.
    ENGINEERING METHODS AND TOOLS FOR SOFTWARE SAFETY AND SECURITY, 2009, 22 : 231 - 266
  • [42] Evaluation Criteria for Object-oriented Metrics
    Misra, Sanjay
    ACTA POLYTECHNICA HUNGARICA, 2011, 8 (05) : 109 - 136
  • [43] Extending object-oriented systems with roles
    Gottlob, G
    Schrefl, M
    Rock, B
    ACM TRANSACTIONS ON INFORMATION SYSTEMS, 1996, 14 (03) : 268 - 296
  • [44] Object-Oriented Constraints for XML Schema
    Alagic, Suad
    Bernstein, Philip A.
    Jairath, Ruchi
    OBJECTS AND DATABASES, 2010, 6348 : 100 - +
  • [45] Aliasing, Confinement, and Ownership in Object-Oriented Programming Report on the Workshop IWACO'08 at ECOOP 2008
    Clarke, Dave
    Drossopoulou, Sophia
    Mueller, Peter
    Noble, James
    Wrigstad, Tobias
    OBJECT-ORIENTED TECHNOLOGY: ECOOP 2008 WORKSHOP READER, 2009, 5475 : 30 - +
  • [46] Ownership confinement ensures representation independence for object-oriented programs
    Banerjee, A
    Naumann, DA
    JOURNAL OF THE ACM, 2005, 52 (06) : 894 - 960
  • [47] On the Use of Type Predicates in Object-Oriented Software: The Case of Smalltalk
    Callau, Oscar
    Robbes, Romain
    Tanter, Eric
    Roethlisberger, David
    Bergel, Alexandre
    ACM SIGPLAN NOTICES, 2015, 50 (02) : 135 - 146
  • [48] PolyTOIL: A type-safe polymorphic object-oriented language
    Bruce, KB
    Schuett, A
    Van Gent, R
    Fiech, A
    ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2003, 25 (02): : 225 - 290
  • [49] Affine Refinement Types for Secure Distributed Programming
    Bugliesi, Michele
    Calzavara, Stefano
    Eigner, Fabienne
    Maffei, Matteo
    ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2015, 37 (04):
  • [50] Session Types for Linear Multithreaded Functional Programming
    Vasconcelos, Vasco T.
    PPDP'09: PROCEEDINGS OF THE 11TH INTERNATIONAL ACM SIGPLAN SYMPOSIUM ON PRINCIPLES AND PRACTICE OF DECLARATIVE PROGRAMMING, 2009, : 1 - 6