Results 1 
6 of
6
Bounded Quantification is Undecidable
 Information and Computation
, 1993
"... F is a typed calculus with subtyping and bounded secondorder polymorphism. First proposed by Cardelli and Wegner, it has been widely studied as a core calculus for type systems with subtyping. Curien and Ghelli proved the partial correctness of a recursive procedure for computing minimal types of ..."
Abstract

Cited by 102 (9 self)
 Add to MetaCart
F is a typed calculus with subtyping and bounded secondorder polymorphism. First proposed by Cardelli and Wegner, it has been widely studied as a core calculus for type systems with subtyping. Curien and Ghelli proved the partial correctness of a recursive procedure for computing minimal types of F terms and showed that the termination of this procedure is equivalent to the termination of its major component, a procedure for checking the subtype relation between F types. This procedure was thought to terminate on all inputs, but the discovery of a subtle bug in a purported proof of this claim recently reopened the question of the decidability of subtyping, and hence of typechecking. This question is settled here in the negative, using a reduction from the halting problem for twocounter Turing machines to show that the subtype relation of F is undecidable. 1 Introduction The notion of bounded quantification was introduced by Cardelli and Wegner [16] in the language Fun. Based on i...
ObjectOriented Programming Versus Abstract Data Types
, 1990
"... Abstract: This tutorial collects and elaborates arguments for distinguishing between objectoriented programming and abstract data types. The basic distinction is that objectoriented programming achieves data abstraction by the use of procedural abstraction, while abstract data types depend upon ty ..."
Abstract

Cited by 90 (7 self)
 Add to MetaCart
Abstract: This tutorial collects and elaborates arguments for distinguishing between objectoriented programming and abstract data types. The basic distinction is that objectoriented programming achieves data abstraction by the use of procedural abstraction, while abstract data types depend upon type abstraction. Objectoriented programming and abstract data types can also be viewed as complementary implementation techniques: objects are centered around the constructors of a data abstraction, while abstract data types are organized around the operations. These differences have consequences relating to extensibility, efficiency, typing, and verification; in many cases the strengths of one paradigm are the weaknesses of the other. Most objectoriented programming languages support aspects of both techniques, not a unification of them, so an understanding of their relative merits is useful in designing programs. Published in the Proceedings of the REX Workshop/School on the Foundations of ObjectOriented Languages, LNCS 173, SpringerVerlag, 1990, pp. 151178.
Programming with Intersection Types and Bounded Polymorphism
, 1991
"... representing the official policies, either expressed or implied, of the U.S. Government. ..."
Abstract

Cited by 67 (4 self)
 Add to MetaCart
representing the official policies, either expressed or implied, of the U.S. Government.
Intersection Types and Bounded Polymorphism
, 1996
"... this paper (Compagnoni, Intersection Types and Bounded Polymorphism 3 1994; Compagnoni, 1995) has been used in a typetheoretic model of objectoriented multiple inheritance (Compagnoni & Pierce, 1996). Related calculi combining restricted forms of intersection types with higherorder polymorphism ..."
Abstract

Cited by 37 (0 self)
 Add to MetaCart
this paper (Compagnoni, Intersection Types and Bounded Polymorphism 3 1994; Compagnoni, 1995) has been used in a typetheoretic model of objectoriented multiple inheritance (Compagnoni & Pierce, 1996). Related calculi combining restricted forms of intersection types with higherorder polymorphism and dependent types have been studied by Pfenning (Pfenning, 1993). Following a more detailed discussion of the pure systems of intersections and bounded quantification (Section 2), we describe, in Section 3, a typed calculus called F ("Fmeet ") integrating the features of both. Section 4 gives some examples illustrating this system's expressive power. Section 5 presents the main results of the paper: a prooftheoretic analysis of F 's subtyping and typechecking relations leading to algorithms for checking subtyping and for synthesizing minimal types for terms. Section 6 discusses semantic aspects of the calculus, obtaining a simple soundness proof for the typing rules by interpreting types as partial equivalence relations; however, another prooftheoretic result, the nonexistence of least upper bounds for arbitrary pairs of types, implies that typed models may be more difficult to construct. Section 7 offers concluding remarks. 2. Background
Subtyping Recursive Types in Kernel Fun
 In IEEE Symposium on Logic in Computer Science (LICS
, 1999
"... The problem of defining and checking a subtype relation between recursive types was studied in [3] for a first order type system, but for second order systems, which combine subtyping and parametric polymorphism, only negative results are known [17]. ..."
Abstract

Cited by 6 (1 self)
 Add to MetaCart
The problem of defining and checking a subtype relation between recursive types was studied in [3] for a first order type system, but for second order systems, which combine subtyping and parametric polymorphism, only negative results are known [17].
Using Kinds to Type PartiallyPolymorphic Methods
, 2002
"... We extends type constraints with kind constraints to increase the expressiveness of constraintbased nominal type systems. In the context of objectoriented programming languages, they offer an alternative to the use of Fbounded polymorphism to type homogeneous binary methods. We also introduce the ..."
Abstract

Cited by 5 (0 self)
 Add to MetaCart
We extends type constraints with kind constraints to increase the expressiveness of constraintbased nominal type systems. In the context of objectoriented programming languages, they offer an alternative to the use of Fbounded polymorphism to type homogeneous binary methods. We also introduce the notion of partially polymorphic methods to describe a common situation in object oriented hierarchies, and show how these can be typed in a modular fashion with kind constraints.