Nominal subtyping (or user-defined subtyping) and structural subtyping each have their own strengths and weaknesses. Nominal subtyping allows programmers to explicitly express design intent, and, when types are associated with run time tags, enables runtime “type ” tests (e.g., downcasts) and external/multimethod dispatch. On the other hand, structural subtyping is flexible and compositional, allowing unanticipated reuse. To date, nearly all objectoriented languages fully support only one subtyping paradigm or the other. In this paper, we describe a core calculus for a language that combines the key aspects of nominal and structural subtyping in a unified framework. Our goal is to combine the flexibility of structural subtyping while still ...
We present a simple extension of typed lambda-calculus where functions can be overloaded by putting ...
This paper uses logical relations for the first time to study the decidability of typechecking and s...
AbstractClasses play a dual role in mainstream statically typed object-oriented languages, serving a...
This paper is concerned with the relation between subtyping and subclassing and their influence on p...
Abstract. In this paper we investigate the object-oriented notion of subtyping in the context of beh...
AbstractIn a previous paper we have defined a semantic preorder called operational subsumption, whic...
AbstractWe present a simple extension of typed λ-calculus where functions can be overloaded by putti...
There are two approaches for defining subtyping relations: the syntactic and the semantic one. In th...
We present a simple extension of typed -calculus where functions can be over-loaded by putting diere...
In a previous paper we have defined a semantic preorder called operational subsumption, which compar...
Type dispatch constructs are an important feature of many programming languages. Scheme has predicat...
Static typing and subtyping are useful for the support of incremental refinement and reuse in object...
In most programming languages, type abstraction is guaranteed by syntactic scoping in a single progr...
Type dispatch constructs are an important feature of many programming languages. Scheme has predicat...
Structural subtyping is an important notion for effective static type analysis; it can be defined ei...
We present a simple extension of typed lambda-calculus where functions can be overloaded by putting ...
This paper uses logical relations for the first time to study the decidability of typechecking and s...
AbstractClasses play a dual role in mainstream statically typed object-oriented languages, serving a...
This paper is concerned with the relation between subtyping and subclassing and their influence on p...
Abstract. In this paper we investigate the object-oriented notion of subtyping in the context of beh...
AbstractIn a previous paper we have defined a semantic preorder called operational subsumption, whic...
AbstractWe present a simple extension of typed λ-calculus where functions can be overloaded by putti...
There are two approaches for defining subtyping relations: the syntactic and the semantic one. In th...
We present a simple extension of typed -calculus where functions can be over-loaded by putting diere...
In a previous paper we have defined a semantic preorder called operational subsumption, which compar...
Type dispatch constructs are an important feature of many programming languages. Scheme has predicat...
Static typing and subtyping are useful for the support of incremental refinement and reuse in object...
In most programming languages, type abstraction is guaranteed by syntactic scoping in a single progr...
Type dispatch constructs are an important feature of many programming languages. Scheme has predicat...
Structural subtyping is an important notion for effective static type analysis; it can be defined ei...
We present a simple extension of typed lambda-calculus where functions can be overloaded by putting ...
This paper uses logical relations for the first time to study the decidability of typechecking and s...
AbstractClasses play a dual role in mainstream statically typed object-oriented languages, serving a...