Results 1 
3 of
3
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 153 (26 self)
 Add to MetaCart
(Show Context)
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 Semantics for Stratified λ&early
, 1994
"... The role of λcalculus as core functional language is due to its nature as "pure" theory of functions. In the present approach we use the functional expressiveness of typed λcalculus and extend it with our understanding of some relevant features of a broadly used programming style: Object ..."
Abstract
 Add to MetaCart
The role of λcalculus as core functional language is due to its nature as "pure" theory of functions. In the present approach we use the functional expressiveness of typed λcalculus and extend it with our understanding of some relevant features of a broadly used programming style: ObjectOriented Programming (OOP). The core notion we focus on, yields a form of "dependency on input types" (or "on the types of the inputs") and formalizes "overloading" as implicitly used in OOP. The basis of this work has been laid in [CGL92], where the main syntactic properties of this extension have been shown. In this paper, we investigate an elementary approach to its mathematical meaning. The approach is elementary, as we tried to follow the most immediate semantic intuition which underlies our system; yet it gives a rigorous mathematical model. Indeed, our semantics provides an understanding of a slightly modified version of the normalizing system in [CGL92]: we had, so far, to restrict our att...
A Semantics for a Stratified λ&Early: A Calculus with Overloading and Early Binding
, 1993
"... The role of λcalculus as core functional language is due to its nature as "pure" theory of functions. In the present approach we use the functional expressiveness of typed λcalculus and extend it with our understanding of some relevant features of a broadly used programming style: Object ..."
Abstract
 Add to MetaCart
The role of λcalculus as core functional language is due to its nature as "pure" theory of functions. In the present approach we use the functional expressiveness of typed λcalculus and extend it with our understanding of some relevant features of a broadly used programming style: ObjectOriented Programming (OOP). The core notion we focus on, yields a form of "dependency on input types" (or "on the types of the inputs") and formalizes "overloading" as implicitly used in OOP. The basis of this work has been laid in [CGL92], where the main syntactic properties of this extension have been shown. In this paper, we investigate an elementary approach to its mathematical meaning. The approach is elementary, as we tried to follow the most immediate semantic intuition which underlies our system; yet it gives a rigorous mathematical model. Indeed, our semantics provides an understanding of a slightly modified version of the normalizing system in [CGL92]: we had, so far, to restrict our att...