Results 1  10
of
14
Comparing object encodings
 Journal of Functional Programming, 16:375 – 414
, 2006
"... Recent years have seen the development of several foundational models for statically typed objectoriented programming. But despite their intuitive similarity, di erences in the technical machinery used to formulate the various proposals have made them di cult to compare. Using the typed lambdacalc ..."
Abstract

Cited by 119 (3 self)
 Add to MetaCart
Recent years have seen the development of several foundational models for statically typed objectoriented programming. But despite their intuitive similarity, di erences in the technical machinery used to formulate the various proposals have made them di cult to compare. Using the typed lambdacalculus F! as a common basis, we nowo er a detailed comparison of four models: (1) a recursiverecord encoding similar to the ones used by Cardelli [Car84],
Polarized HigherOrder Subtyping
, 1997
"... The calculus of higher order subtyping, known as F ω ≤ , a higherorder polymorphic λcalculus with subtyping, is expressive enough to serve as core calculus for typed objectoriented languages. The versions considered in the literature usually support only pointwise subtyping of type operators, whe ..."
Abstract

Cited by 32 (1 self)
 Add to MetaCart
The calculus of higher order subtyping, known as F ω ≤ , a higherorder polymorphic λcalculus with subtyping, is expressive enough to serve as core calculus for typed objectoriented languages. The versions considered in the literature usually support only pointwise subtyping of type operators, where two types S U and T U are in subtype relation, if S and T are. In the widely cited, unpublished note [Car90], Cardelli presents F ω ≤ in a more general form going beyond pointwise subtyping of type applications in distinguishing between monotone and antimonotone operators. Thus, for instance, T U1 is a subtype of T U2, if U1 ≤ U2 and T is a monotone operator. My thesis extends F ω ≤ by polarized application, it explores its proof theory, establishing decidability of polarized F ω ≤. The inclusion of polarized application rules leads to an interdependence of the subtyping and the kinding system. This contrasts with pure F ω ≤ , where subtyping depends on kinding but not vice versa. To retain decidability of the system, the equalbounds subtyping rule for alltypes is rephrased in the polarized setting as a mutualsubtype requirement of the upper bounds.
Decidable Bounded Quantification
 IN 21ST ACM SYMP. ON PRINCIPLES OF PROGRAMMING LANGUAGES
, 1994
"... The standard formulation of bounded quantification, system F , is difficult to work with and lacks important syntactic properties, such as decidability. More tractable variants have been studied, but those studied so far either exclude significant classes of useful programs or lack a compelling ..."
Abstract

Cited by 26 (3 self)
 Add to MetaCart
The standard formulation of bounded quantification, system F , is difficult to work with and lacks important syntactic properties, such as decidability. More tractable variants have been studied, but those studied so far either exclude significant classes of useful programs or lack a compelling semantics. We propose
Bounded Existentials and Minimal Typing
 Theoretical Computer Science
, 1996
"... We study an extension of the secondorder calculus of bounded quantification, System F , with bounded existential types. Surprisingly, the most natural formulation of this extension lacks the important minimal typing property of F , which ensures that the set of types possessed by a typeable term ca ..."
Abstract

Cited by 25 (6 self)
 Add to MetaCart
We study an extension of the secondorder calculus of bounded quantification, System F , with bounded existential types. Surprisingly, the most natural formulation of this extension lacks the important minimal typing property of F , which ensures that the set of types possessed by a typeable term can be characterized by a single least element. We consider alternative formulations and give an algorithm computing minimal types for the slightly weaker Kernel Fun variant of F . 1 Introduction F is a typed lambdacalculus combining subtyping and secondorder bounded quantification [4, 5, 7, 3]. Besides its utility as a vehicle for theoretical investigations, it has come to be seen as a good basis for the design of programming languages incorporating subtyping and polymorphism. The extension of F with bounded existential quantifiers to support programming with abstract data types is commonly regarded as a straightforward task; indeed, in a sense, pure F already contains bounded existentials...
A simple typed intermediate language for objectoriented languages
 In Proceedings of the 32nd ACM Symposium on Principles of Programming Languages (POPL05
, 2005
"... Traditional class and object encodings are difficult to use in practical typepreserving compilers because of the complexity of the encodings. We propose a simple typed intermediate language for compiling objectoriented languages and prove its soundness. The key ideas are to preserve lightweight no ..."
Abstract

Cited by 18 (6 self)
 Add to MetaCart
Traditional class and object encodings are difficult to use in practical typepreserving compilers because of the complexity of the encodings. We propose a simple typed intermediate language for compiling objectoriented languages and prove its soundness. The key ideas are to preserve lightweight notions of classes and objects instead of compiling them away and to separate namebased subclassing from structurebased subtyping. The language can express standard implementation techniques for both dynamic dispatch and runtime type tests. It has decidable type checking even with subtyping between quantified types with different bounds. Because of its simplicity, the language is a more suitable starting point for a practical typepreserving compiler than traditional encoding techniques.
Divergence of F≤ Type Checking
"... System F≤ is an extension of secondorder typed lambda calculus, where a subtype hierarchy among types is defined, and bounded secondorder lambda abstraction is allowed. This language is a basis for much of the current research on integration of typed functional languages with subtypes and inherita ..."
Abstract

Cited by 14 (4 self)
 Add to MetaCart
System F≤ is an extension of secondorder typed lambda calculus, where a subtype hierarchy among types is defined, and bounded secondorder lambda abstraction is allowed. This language is a basis for much of the current research on integration of typed functional languages with subtypes and inheritance. An algorithm to perform type checking for F≤ expressions has been known since the language Fun was defined. The algorithm has been proved complete, by the author and P.L. Curien, which means that it is a semidecision procedure for the typechecking problem. In this paper we show that this algorithm is not a decision procedure, by exhibiting a term which makes it diverge. This result was the basis of Pierce's proof of undecidability of typing for F≤. We study the behavior of the algorithm to show that our diverging judgement is in some sense contained in any judgement which makes the algorithm diverge. On the basis of this result, and of other results in the paper, we claim that the c...
Programming in the picalculus: A tutorial introduction to Pict (Pict Version 3.8d)
, 1996
"... Pict is a programming language in the ML tradition, formed by adding highlevel derived forms and a powerful static type system to a tiny core language. The core, Milner's picalculus, has been used as a theoretical foundation for a broad class of concurrent computations. The goal in Pict is to iden ..."
Abstract

Cited by 7 (2 self)
 Add to MetaCart
Pict is a programming language in the ML tradition, formed by adding highlevel derived forms and a powerful static type system to a tiny core language. The core, Milner's picalculus, has been used as a theoretical foundation for a broad class of concurrent computations. The goal in Pict is to identify idioms that arise naturally when these primitives are used to build working programs  idioms such as basic data structures, protocols for returning results, higherorder programming, selective communication, and concurrent objects. The type system integrates a number of features found in recent work on theoretical foundations for typed objectoriented languages: higherorder polymorphism, simple recursive types, subtyping, and a useful partial type inference algorithm. This is a tutorial introduction to Pict, with examples and exercises. Consumer Safety Warning Pict is an evolving language design and the current implementation is experimental software. You are welcome to use Pict in...
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].
Logic of subtyping
 Theoretical Computer Science
, 2005
"... We introduce new modal logical calculi that describe subtyping properties of Cartesian product and disjoint union type constructors as well as mutuallyrecursive types defined using those type constructors. Basic Logic of Subtyping S extends classical propositional logic by two new binary modalities ..."
Abstract

Cited by 3 (2 self)
 Add to MetaCart
We introduce new modal logical calculi that describe subtyping properties of Cartesian product and disjoint union type constructors as well as mutuallyrecursive types defined using those type constructors. Basic Logic of Subtyping S extends classical propositional logic by two new binary modalities ⊗ and ⊕. An interpretation of S is a function that maps standard connectives into settheoretical operations (intersection, union, and complement) and modalities into Cartesian product and disjoint union type constructors. This allows S to capture many subtyping properties of the above type constructors. We also consider logics Sρ and S ω ρ that incorporate into S mutuallyrecursive types over arbitrary and wellfounded universes correspondingly. The main results are completeness of the above three logics with respect to appropriate type universes. In addition, we prove Cut elimination theorem for S and establish decidability of S and S ω ρ.
A symbolic labelled transition system for coinductive subtyping of Fµ
 In 16th Annual IEEE Symposium on Logic in Computer Science
, 2001
"... Abstract. F is a typed λcalculus with subtyping and It is routine to develop an algorithm to check the subtyping bounded polymorphism. Typechecking for F is known to property of Kernel F, but subtyping for Full F has turned be undecidable, because the subtyping relation on types is out to be surpri ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
Abstract. F is a typed λcalculus with subtyping and It is routine to develop an algorithm to check the subtyping bounded polymorphism. Typechecking for F is known to property of Kernel F, but subtyping for Full F has turned be undecidable, because the subtyping relation on types is out to be surprisingly complex. Curien and Ghelli [5] gave undecidable. Fµ is an extension of F with recursive types. an algorithm for checking subtyping, with a correctness proof In this paper, we show how symbolic labelled transition system techniques from concurrency theory can be used to reaprovided by Ghelli [7]. Later, Ghelli [9] showed that this algorithm is not guaranteed to terminate. Pierce [14] showed son about subtyping for Fµ. We provide a symbolic labelled that Ghelli’s example of nontermination can be generalized transition system for Fµ types, together with an an appro to code a Turing machine, and so subtyping (and hence typepriate notion of simulation, which coincides with the existing checking) for F is undecidable. coinductive definition of subtyping. We then provide a ‘simulation up to ’ technique for proving subtyping, for which there Subtyping and recursive types. Recursive types are a is a simple model checking algorithm. The algorithm is more common programming language feature, typified by ML’s powerful than the usual one for F, for example it terminates construct. Amadio and Cardelli [17] investion Ghelli’s canonical example of nontermination. gated the relationship between subtyping and recursive types. 1