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 crucial featu ..."
Abstract
-
Cited by 131 (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 "run-time type" of the argument, which may differ from its compile-time 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 type-dependent calculus, which differs from the various -calculi where types do not play any role during computation. We prove Confluence and a generalized Subject-Reduction 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-Oriented ..."
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: Object-Oriented 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-Oriented ..."
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: Object-Oriented 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...

