Results 11 - 20
of
31
Coercion Completion and Conservativity in Coercive Subtyping
- ANNALS OF PURE AND APPLIED LOGIC
, 2000
"... Coercive subtyping offers a general approach to subtyping and inheritance by introducing a simple abbreviational mechanism to constructive type theories. In this paper, we study coercion completion in coercive subtyping and prove that the formal extension with coercive subtyping of a type theory suc ..."
Abstract
-
Cited by 10 (7 self)
- Add to MetaCart
Coercive subtyping offers a general approach to subtyping and inheritance by introducing a simple abbreviational mechanism to constructive type theories. In this paper, we study coercion completion in coercive subtyping and prove that the formal extension with coercive subtyping of a type theory such as Martin-Lof's type theory and UTT is a conservative extension. The importance of coherence conditions for the conservativity result is also discussed.
A Core Calculus of Classes and Objects
- ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE
, 1999
"... We present an imperative calculus for a class-based language. By introducing classes as the basic object-oriented construct in a -calculus with records and references, we obtain a system with an intuitive operational semantics. Objects are instantiated from classes and represented by records. The ty ..."
Abstract
-
Cited by 9 (3 self)
- Add to MetaCart
We present an imperative calculus for a class-based language. By introducing classes as the basic object-oriented construct in a -calculus with records and references, we obtain a system with an intuitive operational semantics. Objects are instantiated from classes and represented by records. The type system for objects uses only functional, record, and reference types, and there is a clean separation between subtyping and inheritance. We demonstrate that the calculus is sound and suciently expressive to model advanced language features such as inheritance with method rede nition, multi-level encapsulation, and modular object construction.
Type Destructors
, 1998
"... We study a variant of System F that integrates and generalizes several existing proposals for calculi with structural typing rules. To the usual type constructors (!, \Theta, All, Some, Rec) we add a number of type destructors, each internalizing a useful fact about the subtyping relation. For exa ..."
Abstract
-
Cited by 7 (0 self)
- Add to MetaCart
We study a variant of System F that integrates and generalizes several existing proposals for calculi with structural typing rules. To the usual type constructors (!, \Theta, All, Some, Rec) we add a number of type destructors, each internalizing a useful fact about the subtyping relation. For example, in F with products every closed subtype of a product S\ThetaT must itself be a product S 0 \ThetaT 0 with S 0 !:S and T 0 !:T. We internalise this observation by introducing type destructors .1 and .2 and postulating an equivalence T = j T.1\ThetaT.2 whenever T !: U\ThetaV (including, for example, when T is a variable). In other words, every subtype of a product type literally is a product type, modulo j-conversion. Adding type destructors provides a clean solution to the problem of polymorphic update without introducing new term formers, new forms of polymorphism, or quantification over type operators. We illustrate this by giving elementary presentations of two well-known e...
Towards equal rights for higher-kinded types
- 6TH INTERNATIONAL WORKSHOP ON MULTIPARADIGM PROGRAMMING WITH LANGUAGES AT THE EUROPEAN CONFERENCE ON OBJECT-ORIENTED PROGRAMMING (ECOOP
, 2007
"... Generics are a very popular feature of contemporary OO languages, such as Java, C # or Scala. Their support for genericity is lacking, however. The problem is that they only support abstracting over proper types, and not over generic types. This limitation makes it impossible to, e.g., define a pre ..."
Abstract
-
Cited by 6 (1 self)
- Add to MetaCart
Generics are a very popular feature of contemporary OO languages, such as Java, C # or Scala. Their support for genericity is lacking, however. The problem is that they only support abstracting over proper types, and not over generic types. This limitation makes it impossible to, e.g., define a precise interface for Iterable, a core abstraction in Scala’s collection API. We implemented “type constructor polymorphism” in Scala 2.5, which solves this problem at the root, thus greatly reducing the duplication of type signatures and code.
Bounded Quantification with Bottom
- Computer Science Department, Indiana University
, 1997
"... While numerous extensions of Cardelli and Wegner's calculus of polymorphism and subtyping, Kernel Fun, have been studied during the past decade, one quite simple one has received little attention: the addition of a minimal type Bot, dual to the familiar maximal type Top. We develop basic meta-theory ..."
Abstract
-
Cited by 5 (3 self)
- Add to MetaCart
While numerous extensions of Cardelli and Wegner's calculus of polymorphism and subtyping, Kernel Fun, have been studied during the past decade, one quite simple one has received little attention: the addition of a minimal type Bot, dual to the familiar maximal type Top. We develop basic meta-theory for this extension. Although most of the usual properties of Kernel Fun (existence of meets and joins, decidability of subtyping and typing, subject reduction, etc.) also hold for the extended system, the presence of Bot introduces some surprising intricacies. In particular, a type variable bounded by Bot is actually a synonym for Bot; such "bottom variables" must be treated specially at several points. 1 Introduction The typed lambda-calculus Kernel Fun [CW85] and its wilder sibling, F [CG92, Ghe90, CMMS94] have become standard tools for the foundational study of programming languages combining subtyping and impredicative polymorphism. Their syntax and semantics have been investigated in ...
Order-Sorted Inductive Types
, 1999
"... System F ! is an extension of system F ! with subtyping and bounded quantification. Order-sorted algebra is an extension of many-sorted algebra with overloading and subtyping. We combine both formalisms to obtain IF ! , a higher-order typed -calculus with subtyping, bounded quantification a ..."
Abstract
-
Cited by 4 (3 self)
- Add to MetaCart
System F ! is an extension of system F ! with subtyping and bounded quantification. Order-sorted algebra is an extension of many-sorted algebra with overloading and subtyping. We combine both formalisms to obtain IF ! , a higher-order typed -calculus with subtyping, bounded quantification and order-sorted inductive types, i.e. data types with built-in subtyping and overloading. Moreover we show that IF ! enjoys important meta-theoretic properties, including confluence, strong normalization, subject reduction and decidability of type-checking. 1 Introduction Typed functional programming languages such as Haskell and ML and typetheory based proof-development systems such as Coq and Lego support the introduction of inductively defined types such as natural numbers or booleans, parameterized inductively defined types such as lists and even parameterized mutual inductively defined types such as trees and forests. In addition, those languages support the definition of functions ...
A Predicative Type-Theoretic Interpretation of Objects
, 1997
"... Predicative type theories are powerful tools for giving foundational interpretations of programming languages. Due to their explicit inductive construction, predicative type theories have multiple mathematical models that provide precise definitions of programming language features. However, not all ..."
Abstract
-
Cited by 4 (0 self)
- Add to MetaCart
Predicative type theories are powerful tools for giving foundational interpretations of programming languages. Due to their explicit inductive construction, predicative type theories have multiple mathematical models that provide precise definitions of programming language features. However, not all features have predicative interpretations, and current interpretations of objects rely on impredicative type theories, such as Girard's System F, because of the difficulty in specifying a type for objects in the presence of self-application. In this paper we show that objects have a predicative interpretation. We show that predicativity is associated with method monotonicity, and that binary methods prevent the inductive type construction. Our interpretation differs from impredicative accounts by replacing the use of recursive types for objects with conditions for method polymorphism over the self type. We further give a propositional meaning to objects in the type theory, providing a calc...
A Type System for Record Concatenation and Subtyping
, 1996
"... We define an extension of a second-order type system with records, subtyping and record concatenation. This system can model the most important concepts of object-oriented languages. The novelty in our approach is that concatenation is only permitted if the types on common fields agree. We give exam ..."
Abstract
-
Cited by 4 (0 self)
- Add to MetaCart
We define an extension of a second-order type system with records, subtyping and record concatenation. This system can model the most important concepts of object-oriented languages. The novelty in our approach is that concatenation is only permitted if the types on common fields agree. We give examples of how object-oriented concepts can be modeled and show how the system can be translated to a type system without subtyping.
Operational Subsumption, an Ideal Model of Subtyping
, 1998
"... In a previous paper we have defined a semantic preorder called operational subsumption, which compares terms according to their error generation behaviour. Here we apply this abstract framework to a concrete language, namely the Abadi-Cardelli object calculus. Unlike most semantic studies of objects ..."
Abstract
-
Cited by 3 (0 self)
- Add to MetaCart
In a previous paper we have defined a semantic preorder called operational subsumption, which compares terms according to their error generation behaviour. Here we apply this abstract framework to a concrete language, namely the Abadi-Cardelli object calculus. Unlike most semantic studies of objects, which deal with typed equalities and therefore require explicitly typed languages, we start here from a untyped world. Type inference is introduced in a second step, together with an ideal model of types and subtyping. We show how this approach flexibly accommodates for several variants, and finally propose a novel semantic interpretation of structural subtyping as embedding-projection pairs. 1 Introduction In a previous paper [10] we have defined a semantic preorder called operational subsumption, which compares terms according to their error generation behaviour. Together with the technical device of labeled reductions, used as a syntactic characterization of finite approximations, thi...
Anti-Symmetry of Higher-Order Subtyping
- In Proceedings of the 8th Annual Conference on Computer Science Logic (CSL’99), J. Flum and M. RodríguezArtalejo, Eds. Springer-Verlag LNCS 1683
, 1999
"... . This paper shows that the subtyping relation of a higherorder lambda calculus, F ! , is anti-symmetric. It exhibits the rst such proof, establishing in the process that the subtyping relation is a partial order|reexive, transitive, and anti-symmetric up to -equality. While a subtyping relat ..."
Abstract
-
Cited by 3 (1 self)
- Add to MetaCart
. This paper shows that the subtyping relation of a higherorder lambda calculus, F ! , is anti-symmetric. It exhibits the rst such proof, establishing in the process that the subtyping relation is a partial order|reexive, transitive, and anti-symmetric up to -equality. While a subtyping relation is reexive and transitive by denition, anti-symmetry is a derived property. The result, which may seem obvious to the nonexpert, is technically challenging, and had been an open problem for almost a decade. In this context, typed operational semantics for subtyping oers a powerful new technology to solve the problem: of particular importance is our extended rule for the well-formedness of types with head variables. The paper also gives a presentation of F ! without a relation for -equality, apparently the rst such, and shows its equivalence with the traditional presentation. 1 Introduction Object-oriented programming languages such as Smalltalk, C++, Modula 3, and ...

