Publicação
Modular session types for objects
| Resumo: | 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 typestate 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 sound and complete type checking algorithm for a small distributed class-based object-oriented language with structural subtyping. 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. |
|---|---|
| Autores principais: | Gay, Simon J. |
| Outros Autores: | Gesbert, Nils; Ravara, António; Vasconcelos, Vasco T. |
| Assunto: | Non-uniform method availability Object-oriented calculus Session types Typestate General Computer Science Theoretical Computer Science |
| Ano: | 2015 |
| País: | Portugal |
| Tipo de documento: | artigo |
| Tipo de acesso: | acesso aberto |
| Instituição associada: | Universidade Nova de Lisboa |
| Idioma: | inglês |
| Origem: | Repositório Institucional da UNL |
Registos relacionados
groups Verifying real-world software with contracts for concurrency
por: Lourenço, João M.
Publicado em: (2018)
por: Lourenço, João M.
Publicado em: (2018)
article A distance between populations for one-point crossover in genetic algorithms
por: Manzoni, Luca
Publicado em: (2012)
por: Manzoni, Luca
Publicado em: (2012)
groups Preserving strong equivalence while forgetting
por: Knorr, Matthias
Publicado em: (2014)
por: Knorr, Matthias
Publicado em: (2014)
article Spatial-behavioral types for concurrency and resource control in distributed systems
por: Caires, Luís
Publicado em: (2008)
por: Caires, Luís
Publicado em: (2008)
article An algebra of behavioural types
por: Ravara, António
Publicado em: (2012)
por: Ravara, António
Publicado em: (2012)
assignment Session Types for Functional Multithreading
por: Vasconcelos, Vasco T.
Publicado em: (2005)
por: Vasconcelos, Vasco T.
Publicado em: (2005)
article Session-based Type Discipline for Pi Calculus with Matching
por: Marco Giunti
Publicado em: (2009)
por: Marco Giunti
Publicado em: (2009)
groups Semi-automatic tool to identify heterogeneity zones in lge-cmr and incorporate the result into a 3d model of the left ventricle
por: Narciso, Maria
Publicado em: (2020)
por: Narciso, Maria
Publicado em: (2020)
article Classification of Abnormal Signaling SIP Dialogs through Deep Learning
por: Pereira, Diogo
Publicado em: (2021)
por: Pereira, Diogo
Publicado em: (2021)
article A Machine Learning Approach for Prediction of Signaling SIP Dialogs
por: Pereira, Diogo
Publicado em: (2021)
por: Pereira, Diogo
Publicado em: (2021)
article Language Primitives and Type Discipline for Structured Communication-Based Programming Revisited - Two Systems for Higher-Order Session Communication,
por: Nobuko Yoshida
Publicado em: (2007)
por: Nobuko Yoshida
Publicado em: (2007)
article A spatial logic for concurrency - II
por: Caires, Luís
Publicado em: (2004)
por: Caires, Luís
Publicado em: (2004)
school Type inference for conversation types
por: Lourenço, Maria Luísa Sobreira Gouveia
Publicado em: (2009)
por: Lourenço, Maria Luísa Sobreira Gouveia
Publicado em: (2009)
school Retrofitting Typestates into Rust
por: Duarte, José Miguel Gonçalves
Publicado em: (2021)
por: Duarte, José Miguel Gonçalves
Publicado em: (2021)
article A Session Engine Approach for Synchronous Collaborative Environments
por: Luís Duarte
Publicado em: (2009)
por: Luís Duarte
Publicado em: (2009)
article Spiking neural network Based on cusp catastrophe Theory
por: Huderek, Damian
Publicado em: (2019)
por: Huderek, Damian
Publicado em: (2019)
groups Multi-start local search procedure for the maximum fire risk insured capital problem
por: Gomes, Maria Isabel
Publicado em: (2018)
por: Gomes, Maria Isabel
Publicado em: (2018)
article Enhancing Modularity and Feedback in Computer Aided Assessment
por: Duarte P.
Publicado em: (2006)
por: Duarte P.
Publicado em: (2006)
article Modular Product1ion of Flexible Digital Talking Books
por: Luís Carriço
Publicado em: (2004)
por: Luís Carriço
Publicado em: (2004)
article Designing Modular and Redundant Cyber Architectures for Process Control: Lessons learned
por: Paulo Veríssimo
Publicado em: (2009)
por: Paulo Veríssimo
Publicado em: (2009)
article Dynamic modularity in protein interaction networks predicts breast cancer outcome
por: I.W. Taylor
Publicado em: (2009)
por: I.W. Taylor
Publicado em: (2009)
school Non-uniform replication for replicated objects
por: Cabrita, Gonçalo Mendes
Publicado em: (2017)
por: Cabrita, Gonçalo Mendes
Publicado em: (2017)
groups Introducing Crossover in SLIM-GSGP
por: Pietropolli, Gloria
Publicado em: (2025)
por: Pietropolli, Gloria
Publicado em: (2025)
article Scalability issues in MOOs: the role of object migration and replication
por: L. Rodrigues
Publicado em: (1999)
por: L. Rodrigues
Publicado em: (1999)
article Event-Driven Support of Real-Time Sentient Objects
por: Paulo Veríssimo
Publicado em: (2003)
por: Paulo Veríssimo
Publicado em: (2003)
article CORTEX: Towards Supporting Autonomous and Cooperating Sentient Objects
por: P. Veríssimo
Publicado em: (2002)
por: P. Veríssimo
Publicado em: (2002)
article The GlobData Fault-Tolerant Replicated Distributed Object Database
por: L. Rodrigues
Publicado em: (2002)
por: L. Rodrigues
Publicado em: (2002)
article Automatic Support for Model-Driven Specialization of Object-Oriented Frameworks
por: André Leal Santos
Publicado em: (2007)
por: André Leal Santos
Publicado em: (2007)
school CLASS: A Logical Foundation for Typeful Programming with Shared State
por: Rocha, Pedro Manuel Sabino
Publicado em: (2022)
por: Rocha, Pedro Manuel Sabino
Publicado em: (2022)
article Using Object Replication for Building a Dependable Version Control System
por: Rüdiger Kapitza
Publicado em: (2008)
por: Rüdiger Kapitza
Publicado em: (2008)
article Configuring the Communication Middleware to Support Multi-user Object-Oriented Environments
por: S. Teixeira
Publicado em: (2002)
por: S. Teixeira
Publicado em: (2002)
assignment Type-Based Verification of Message-Passing Parallel Programs
por: Vasconcelos, Vasco T.
Publicado em: (2014)
por: Vasconcelos, Vasco T.
Publicado em: (2014)
article Type-directed compilation for multicore programming
por: Kohei Honda
Publicado em: (2008)
por: Kohei Honda
Publicado em: (2008)
category Corrigendum: “Novel Big Data-supported dynamic toll charging system: Impact assessment on Portugal's shadow-toll highways” (Computers & Industrial Engineering (2019) 135 (476–491), (S0360835219303742), (10.1016/j.cie.2019.06.043))
por: Figueiras, Paulo
Publicado em: (2020)
por: Figueiras, Paulo
Publicado em: (2020)
article Type-based approach to multi-core programming
por: Francisco Martins
Publicado em: (2008)
por: Francisco Martins
Publicado em: (2008)
groups Vectorial GP for Alzheimer’s Disease Prediction Through Handwriting Analysis
por: Azzali, Irene
Publicado em: (2022)
por: Azzali, Irene
Publicado em: (2022)
school Joint Session-Item Encoding for Session-Based Recommendation: A Metric- Learning Approach with Temporal Smoothing
por: Rodrigues, Jonas Gouveia de
Publicado em: (2022)
por: Rodrigues, Jonas Gouveia de
Publicado em: (2022)
article Identities in plactic, hypoplactic, sylvester, Baxter, and related monoids
por: Cain, Alan J.
Publicado em: (2018)
por: Cain, Alan J.
Publicado em: (2018)
article Compiling the pi-calculus into a multi-threaded typed assembly language
por: Tiago Cogumbreiro
Publicado em: (2008)
por: Tiago Cogumbreiro
Publicado em: (2008)
groups Supporting medical decisions for treating rare diseases through genetic programming
por: Bakurov, Illya
Publicado em: (2019)
por: Bakurov, Illya
Publicado em: (2019)
Registos relacionados
-
groups Verifying real-world software with contracts for concurrency
por: Lourenço, João M.
Publicado em: (2018) -
article A distance between populations for one-point crossover in genetic algorithms
por: Manzoni, Luca
Publicado em: (2012) -
groups Preserving strong equivalence while forgetting
por: Knorr, Matthias
Publicado em: (2014) -
article Spatial-behavioral types for concurrency and resource control in distributed systems
por: Caires, Luís
Publicado em: (2008) -
article An algebra of behavioural types
por: Ravara, António
Publicado em: (2012)