Results 1  10
of
10
A Calculus for Overload Functions with Subtyping

, 1992
"... We present a simple extension of typed calculus where functions can be overloaded by putting different "branches of code" together. When the function is applied, the branch to execute is chosen according to a particular selection rule which depends on the type of the argument. The cru ..."
Abstract

Cited by 139 (28 self)
 Add to MetaCart
We present a simple extension of typed calculus where functions can be overloaded by putting different "branches of code" together. When the function is applied, the branch to execute is chosen according to a particular selection rule which depends on the type of the argument. The crucial feature of the present approach is that the branch selection depends on the "runtime type" of the argument, which may differ from its compiletime type, because of the existence of a subtyping relation among types. Hence overloading cannot be eliminated by a static analysis of code, but is an essential feature to be dealt with during computation. We obtain in this way a typedependent calculus, which differs from the various calculi where types do not play any role during computation. We prove Confluence and a generalized SubjectReduction theorem for this calculus. We prove Strong Normalization for a "stratified" subcalculus. The definition of this calculus is guided by the understand...
A MetaLanguage for Typed ObjectOriented Languages
, 1993
"... In [12] we defined the &calculus, a simple extension of the typed calculus to model typed objectoriented languages. This paper is the continuation or, rather, the companion of [12] since it analyzes the practical counterpart of the theoretical issues introduced there. Indeed, to develop a for ..."
Abstract

Cited by 17 (5 self)
 Add to MetaCart
In [12] we defined the &calculus, a simple extension of the typed calculus to model typed objectoriented languages. This paper is the continuation or, rather, the companion of [12] since it analyzes the practical counterpart of the theoretical issues introduced there. Indeed, to develop a formal study of type systems for objectoriented languages we define a metalanguage based on & and we show, by a practical example, how it can be used it to prove properties of a language. To this purpose, we define a toy objectoriented language and its typechecking algorithm; then we translate this toy language into our metalanguage. The translation gives the semantics of the toy language and a theorem on the translation of welltyped programs proves the correctness of the typechecker of the toy language. As an aside we also illustrate the expressivity of the &based model by showing how to translate existing features like multiple inheritance and multiple dispatch, but also by integrating in ...
Foundations for Extensible Objects with Roles
 IN WORKSHOP ON FOUNDATIONS OF OBJECTORIENTED LANGUAGES
, 1999
"... ..."
Dependent Types With Subtyping and LateBound Overloading
 INFORMATION AND COMPUTATION 168(1):167
, 2001
"... We present a calculus with dependent types, subtyping and latebound overloading. Besides its theoretical interest this work is motivated by several practical needs that range from the definition of logic encodings, to proof specialization and reuse, and to objectoriented extension of the SML modul ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
We present a calculus with dependent types, subtyping and latebound overloading. Besides its theoretical interest this work is motivated by several practical needs that range from the definition of logic encodings, to proof specialization and reuse, and to objectoriented extension of the SML module system. The theoretical study of this calculus is not straightforward. While confluence is relatively easy to prove, subject reduction is much harder. We were not able to add overloading to any existing system with dependent types and subtyping, and prove subject reduction. This is why we also define here as byproduct a new subtyping system for dependent types that improves previous systems and enjoys several properties (notably the transitivity elimination property). The calculus with overloading is then obtained as a conservative extension of this new system. Another difficult point is strong normalization, which is a necessary condition to the decidability of subtyping and typing relations. The calculus with overloading is not strongly normalizing. However, we show that a reasonably useful fragment of the calculus enjoys this property, and that its strong normalization implies the decidability of its subtyping and typing relations. The article is divided into two parts: the first three sections provide a general overview of the systems and its motivations, and can be read separately; the remaining sections develop the formal study.
A Computationally Adequate Model for Overloading Via DomainValued Functors
, 1993
"... this paper, we construct a domain theoretic model of ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
this paper, we construct a domain theoretic model of
Integration of Parametric and "ad Hoc" Second Order Polymorphism in a Calculus With Subtyping
, 1995
"... In this paper we define an extension of F [CG92] to which we add functions that dispatch on different terms according to the type they receive as argument. In other words, we enrich the explicit parametric polymorphism of F by an explicit "ad hoc" polymorphism (according the classification ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
In this paper we define an extension of F [CG92] to which we add functions that dispatch on different terms according to the type they receive as argument. In other words, we enrich the explicit parametric polymorphism of F by an explicit "ad hoc" polymorphism (according the classification of [Str67]). We prove that the calculus we obtain, called F & , enjoys the properties of ChurchRosser and Subject Reduction and that its proof system is coherent. We also define a significant subcalculus for which the subtyping is decidable. This extension has not only a logical interest but it is strongly motivated by the foundation of a broadly used programming style: objectoriented programming. The connections between F & and objectoriented languages are widely stressed, and the modeling by F & of some features of the objectoriented style is described, continuing the work of [CGL92]. In this paper we present a calculus where the computation of a function can depend on the type the ...
On Extensions of. . . : SecondOrder LambdaCalculus with Subtyping
, 1994
"... F was an extension of a secondorder calculus F which has parametric polymorphism with subtyping and bounded quantification, introduced by Ghelli to apply secondorder calculi to the framework of objectoriented languages. However, it is impossible to know the amount of information of a typeche ..."
Abstract
 Add to MetaCart
F was an extension of a secondorder calculus F which has parametric polymorphism with subtyping and bounded quantification, introduced by Ghelli to apply secondorder calculi to the framework of objectoriented languages. However, it is impossible to know the amount of information of a typechecked term before evaluation since the subsumption rules are included in F . To overcome this problem, we provided new calculi cF + and cF ++ as extensions of F , and investigated their prooftheoretic properties. cF + includes a new type Range(X) , and cF ++ includes two new types Range(X) and Inst(X; T ) . For example, the type Range(X) is provided for a type variable X whose upper bound is a function type, as a codomain type of X . When a function type S ! T is substituted for X , Range(S ! T ) is reduced to T . For a type variable X whose upper bound is a universal type, the type Inst(X; U) is provided. When a universal type 8Y S:T is substituted for X , Inst(8Y S:T;U) is re...
A Semantics for ...: A Calculus With Overloading and LateBinding
, 2000
"... Up to now there was no interpretation available for #calculi featuring overloading and latebinding, although these are two of the main principles of any objectoriented programming language. In this paper we provide a new semantics for a stratified version of Castagna's # {} , a #calculus co ..."
Abstract
 Add to MetaCart
Up to now there was no interpretation available for #calculi featuring overloading and latebinding, although these are two of the main principles of any objectoriented programming language. In this paper we provide a new semantics for a stratified version of Castagna's # {} , a #calculus combining overloading with latebinding. The modelconstruction is carried out in EETJ + (Tot) + (FI N ), a system of explicit mathematics. We will prove the soundness of our model with respect to subtyping, typechecking and reductions. Furthermore, we show that our semantics yields a solution to the problem of loss of information in the context of type dependent computations.
SousTypage Et Programmation Orientée à Objets
"... this paper, simple records suffice. We do not give the definition of the encoding. Just remember that all the terms and types written below are encodable in &. ..."
Abstract
 Add to MetaCart
this paper, simple records suffice. We do not give the definition of the encoding. Just remember that all the terms and types written below are encodable in &.