logo
    A Coalgebraic Semantics of Subtyping
    9
    Citation
    29
    Reference
    10
    Related Paper
    Citation Trend
    Abstract:
    Subtyping is a central notion in object-oriented programming. In this paper we investigate how the coalgebraic semantics of objects accounts for subtyping. We show that different characterisations of so-called behavioural subtyping found in the literature can conveniently be expressed in coalgebraic terms. We define subtyping between coalgebras and subtyping between coalgebraic specifications, and show that the latter is sound and complete w.r.t. the former. We also illustrate the subtle difference between the notions of subtyping and refinement.
    Keywords:
    Subtyping
    Abstract The purpose of subtyping is to differentiate bacterial isolates beyond the classification of species or subspecies. Subtyping methods can be grouped into two broad categories based on the cellular components targeted: (1) phenotypic subtyping methods that differentiate isolates by the enzymes, proteins, or other metabolites expressed by the cell, and (2) molecular subtyping methods that discriminate isolates based on interrogation of nucleic acid sequences. The two major types of molecular subtyping methods include band-based methods based on fragment pattern data or DNA fingerprints, and methods that generate DNA sequence data. Molecular subtyping methods have shown that Listeria monocytogenes isolates can be classified into four genetic lineages or divisions. Although band-based molecular subtyping methods continue to serve as the gold standard for routine molecular subtyping of most clinically important foodborne pathogens, including L. monocytogenes, the explosion of recently completed and ongoing DNA sequencing projects, and thus available DNA sequence data, have stimulated efforts to develop highly discriminatory and high-throughput DNA sequence-based subtyping methods for L. monocytogenes. L. monocytogenes represents one of the most highly sequenced human pathogens; more than 20 genome sequences are currently available for this organism. This review provides an overview of the concepts behind subtyping and discusses the application of molecular subtyping methods, with an emphasis on DNA sequence-based subtyping methods to characterize L. monocytogenes.
    Subtyping
    Citations (24)
    In many concurrent programming languages programs are difficult to extend and modify. This is because changes in a concurrent program (either through modification or extension) require re-implementation of some or all components. This paper presents the design of a concurrent object-oriented programming language based upon separate specifications of computations and interactions of programs. Separate specification of computations and interactions allows each to be separately modified and extended. We show that separation also facilitates extension of other language composition mechanisms such as class, inheritance, and template in order to define concurrent program abstractions. The resulting language supports extensibility and modifiability of concurrent programs as well as reusability of specifications of computations and interactions.
    Reusability
    Extensibility
    Concurrent object-oriented programming
    Inheritance
    Concurrent computing
    Citations (5)
    The majority of contemporary mainstream object-oriented (OO) software is written using statically-typed class-based OO programming languages (PLs) such as Java, C#, C++, Scala and others. Existing denotational models of OOP miss crucial features of these mainstream OO programming languages, such as nominality. This book presents the construction of NOOP as the first domain-theoretic model of OOP to include nominal information found in nominally-typed mainstream OO software. Inclusion of nominal information and asserting that type inheritance in statically-typed OO programming languages is an inherently nominal notion allow readily proving that inheritance and subtyping are completely identified in these languages. This conclusion is in full agreement with intuitions of OO developers using these languages, and contrary to the belief among PL researchers that inheritance is not subtyping, which came from developing structural non-nominal models of OOP. NOOP thus provides a firmer semantic foundation for analyzing and progressing nominally-typed mainstream OO programming languages.
    Inheritance
    Subtyping
    Scala
    Citations (4)
    Consistent subtyping is employed in some gradual type systems to validate type conversions. The original definition by Siek and Taha serves as a guideline for designing gradual type systems with subtyping. Polymorphic types à la System F also induce a subtyping relation that relates polymorphic types to their instantiations. However Siek and Taha's definition is not adequate for polymorphic subtyping. The first goal of this paper is to propose a generalization of consistent subtyping that is adequate for polymorphic subtyping, and subsumes the original definition by Siek and Taha. The new definition of consistent subtyping provides novel insights with respect to previous polymorphic gradual type systems, which did not employ consistent subtyping. The second goal of this paper is to present a gradually typed calculus for implicit (higher-rank) polymorphism that uses our new notion of consistent subtyping. We develop both declarative and (bidirectional) algorithmic versions for the type system. We prove that the new calculus satisfies all static aspects of the refined criteria for gradual typing, which are mechanically formalized using the Coq proof assistant.
    Subtyping
    Rank (graph theory)
    Type theory
    Citations (16)
    Ada 9X -the revised definition of the Ada programming language- provides support for object-oriented programming. This course offers a comprehensive view of object-oriented programming with Ada; it is divided in three parts. First, we examine the object-oriented features of the language, their use, and how they fit into Ada's strong type system and genericity mechanisms. Basic object-oriented mechanisms are covered: extension, inheritance, and polymorphism. Second, we show how to integrate these mechanisms into good programming practices; topics include incremental programming, heterogeneous data structures, mixin and sibling inheritance. Finally, we compare standard object-oriented idioms in Ada vs. major object-oriented languages (C++, Smalltalk, Eiffel).
    Smalltalk
    Inheritance
    Eiffel
    Abstract data type
    Data type
    Citations (4)
    The breast cancer is a usual and serious malignant tumor which threatens the women′s health.Molecular subtyping bases on the molecular level, and provides a new classification method for the breast cancer pathology classification, and plays an important guidance significance for the clinical treatment.At present, the breast cancer molecular subtyping is mainly divided into the following subtypes: the Luminal A type and Luminal B type, HER-2 overexpression and the triple negative breast cancer.Different molecular subtyping has different characteristics in treatment reaction, prognosis and the clinical application situation. Key words: Breast neoplasms; Molecular subtyping; Clinic Treatment
    Subtyping
    Clinical Significance
    Coalgebras have been proposed as formal basis for the semantics of objects in the sense of object-oriented programming. This paper shows that this semantics provides a smooth interpretation for subtyping, a central notion in object-oriented programming. We show that different characterisations of behavioural subtyping found in the literature can conveniently be expressed in coalgebraic terms. We also investigate the subtle difference between behavioural subtyping and refinement.
    Subtyping
    Abstract Interpretation
    Basis (linear algebra)
    Formal semantics (linguistics)
    Citations (12)