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 151 (28 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...
Dynamic Typing for Distributed Programming in Polymorphic Languages
 ACM Transactions on Programming Languages and Systems
, 1996
"... While static typing is widely accepted as being necessary for secure program execution, dynamic typing is also viewed as being essential in some applications. Dynamics have been proposed as a way of introducing dynamic typing into statically typed languages, with particular application to programmin ..."
Abstract

Cited by 22 (6 self)
 Add to MetaCart
(Show Context)
While static typing is widely accepted as being necessary for secure program execution, dynamic typing is also viewed as being essential in some applications. Dynamics have been proposed as a way of introducing dynamic typing into statically typed languages, with particular application to programming in distributed environments. However proposals for incorporating dynamics into languages with parametric polymorphism, such as ML, have serious shortcomings. A new approach is presented to extending MLlike languages with dynamic typing. This approach has particular usefulness for programming in distributed environments, where many of the practical applications of dynamic typing arise. At the heart of the approach is the use of typebased computation, where polymorphic functions may analyse the structure of their type arguments. This approach solves several open problems with the use of traditional dynamics in polymorphic languages. Typebased computation is also the basis for programmerd...
A Game Semantics For Generic Polymorphism
, 1971
"... Genericity is the idea that the same program can work at many dierent data types. Longo, Milstead and Soloviev proposed to capture the inability of generic programs to probe the structure of their instances by the following equational principle: if two generic programs, viewed as terms of type 8X ..."
Abstract

Cited by 9 (4 self)
 Add to MetaCart
Genericity is the idea that the same program can work at many dierent data types. Longo, Milstead and Soloviev proposed to capture the inability of generic programs to probe the structure of their instances by the following equational principle: if two generic programs, viewed as terms of type 8X:A[X ], are equal at any given instance A[T ], then they are equal at all instances. They proved that this rule is admissible in a certain extension of System F, but nding a semantically motivated model satisfying this principle remained an open problem.
βηcomplete models for System F
, 2000
"... We show that Friedman's proof of the existence of nontrivial βηcomplete models of λ→ can be extended to system F. We isolate a set of conditions which are sufficient to ensure βηcompleteness for a model of F (and αcompleteness at the level of types), and we dis ..."
Abstract

Cited by 4 (3 self)
 Add to MetaCart
We show that Friedman's proof of the existence of nontrivial βηcomplete models of &lambda;&rarr; can be extended to system F. We isolate a set of conditions which are sufficient to ensure βηcompleteness for a model of F (and &alpha;completeness at the level of types), and we discuss which class of models we get. In particular, the model introduced in [5], having as polymorphic maps exactly all possible Scott continuous maps, is &beta;&eta;complete and is hence the first known complete nonsyntactic model of F. In order to have a suitable framework where to express the conditions and develop the proof, we also introduce the very natural notion of "polymax models" of System F.
Syntactical properties of an extension of Girard's System F where types can be taken as "generic" inputs
, 1995
"... We investigate from a syntactical point of view the theory FC introduced by Longo, Milsted and Soloviev. This theory is an extension of Girard's System F with axiom C which implies that types are "generic" inputs for polymorphic functions (i.e. if a polymorphic term M gives outputs in ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
We investigate from a syntactical point of view the theory FC introduced by Longo, Milsted and Soloviev. This theory is an extension of Girard's System F with axiom C which implies that types are "generic" inputs for polymorphic functions (i.e. if a polymorphic term M gives outputs inhabiting in the same type then it must be constant). This theory is interesting because it sheds more light on the nature of parametric polymorphism. In this paper we define the theory FC by means of a confluent and normalizing reduction system !C . It follows that the theory FC is decidable. 1 Introduction The starting point of this work is the dependency of the polymorphic calculus terms on types in the paper by Longo, Milsted and Soloviev [5]. The main characteristic of polymorphic lambda calculus, introduced in logic by Girard [2] and in computer science by Reynolds [6], is the possibility of abstracting a term with respect to a type variable. By this it allows for a natural representation of polymo...
Subtyping Parametric and Dependent Types
, 1996
"... A type may be a subtype of another type. The intuition about this should be clear: a type is a type of data, some data then may live in a given type as well as in a larger one, up to a simple "transformation". The advantage is that those data may be "seen" or used in different c ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
A type may be a subtype of another type. The intuition about this should be clear: a type is a type of data, some data then may live in a given type as well as in a larger one, up to a simple "transformation". The advantage is that those data may be "seen" or used in different contexts. The formal treatment of this intuition, though, is not so obvious, in particular when data may be programs. In Object Oriented Programming, where the issue of "reusing data" is crucial, there has been a longlasting discussion on "inheritance" and ... little agreement. There are several ways to understand and formalize inheritance, which depend on the specific programming environment used. Since early work of Cardelli and Wegner, there has been a large amount of papers developing several possible functional approaches to inheritance, as subtyping. Indeed, functional subtyping captures only one point of view on inheritance, yet this notion largely motivated most of that work. Whethe
Prototype Proofs in Type Theory
, 2000
"... The proofs of universally quantified statements, in mathematics, are given as "schemata" or as "prototypes" which may be applied to each specific instance of the quantified variable. Type Theory allows to turn into a rigorous notion this informal intuition described by many, i ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
The proofs of universally quantified statements, in mathematics, are given as "schemata" or as "prototypes" which may be applied to each specific instance of the quantified variable. Type Theory allows to turn into a rigorous notion this informal intuition described by many, including Herbrand. In this constructive approach where propositions are types, proofs are viewed as terms of \Gammacalculus and act as "proofschemata", as for universally quantified types. We examine here the critical case of Impredicative Type Theory, i.e. Girard's system F, where typequantification ranges over all types. Coherence and decidability properties are proved for prototype proofs in this impredicative context.
Carnap's remarks on Impredicative Definitions and the Genericity Theorem
 IN LOGIC, METHODOLOGY AND PHILOSOPHY OF SCIENCE: LOGIC IN FLORENCE
, 1997
"... In a short, but relevant paper [Car31], Rudolf Carnap summarizes the logicist foundation of mathematics, largely following Frege and Russell 's view. Carnap moves away though from Russell's approach on a crucial aspect: a detailed justification of impredicative definitions (a formal versio ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
In a short, but relevant paper [Car31], Rudolf Carnap summarizes the logicist foundation of mathematics, largely following Frege and Russell 's view. Carnap moves away though from Russell's approach on a crucial aspect: a detailed justification of impredicative definitions (a formal version of Russell's "vicious circle"), that he accepts. In this note we revisit Carnap's justification of impredicativity, within the frame of impredicative Type Theory. More precisely, we recall the treatment of impredicativity given in Girard's System F and justify it by reference to a recent result, the Genericity Theorem in [LMS93], which may help to set on mathematical grounds Carnap's informal remark. We then discuss the logical complexity of (the proof of) that theorem. Finally, the role of the Genericity Theorem in understanding the surprising "uniformities" of the consistency proof of Arithmetic, via System F, is hinted. The problem A definition is said to be impredicative, if it defines a concep...
Subtyping Parametric and Dependent Types  An introduction
, 1996
"... A type may be a subtype of another type. The intuition about this should be clear: a type is a type of data, some data then may live in a given type as well as in a larger one, up to a simple "transformation". The advantage is that those data may be "seen" or used in different ..."
Abstract
 Add to MetaCart
A type may be a subtype of another type. The intuition about this should be clear: a type is a type of data, some data then may live in a given type as well as in a larger one, up to a simple "transformation". The advantage is that those data may be "seen" or used in different contexts. The formal treatment of this intuition, though, is not so obvious, in particular when data may be programs. In Object Oriented Programming, where the issue of "reusing data" is crucial, there has been a longlasting discussion on "inheritance" and ... little agreement. There are several ways to understand and formalize inheritance, which depend on the specific programming environment used. Since early work of Cardelli and Wegner, there has been a large amount of papers developing several possible functional approaches to inheritance, as subtyping. Indeed, functional subtyping captures only one point of view on inheritance, yet this notion largely motivated most of that work. Whethe
Kinded Parameteric Overloading
, 1994
"... The combination of overloading and parametric polymorphism has received some attention in the functional programming community. The main approach has been that of Haskell type classes. An approach to the typechecking and semantics of parametric overloading is presented, based on using structured ..."
Abstract
 Add to MetaCart
(Show Context)
The combination of overloading and parametric polymorphism has received some attention in the functional programming community. The main approach has been that of Haskell type classes. An approach to the typechecking and semantics of parametric overloading is presented, based on using structured kinds to constrain type variables. Open kinds constrain type variables by sets of operations and are useful for the incremental development of reusable procedures (in a similar manner to Haskell classes), while closed kinds constrain type variables by sets of types (essentially providing a typesafe form of dynamic typing). The type system includes a rule for "closing up" an open kind to a closed kind. Applications of these faciities include local overloading, the combination of parametric overloading with a Standard MLlike module system, and an optimization which replaces callsite closure construction with dynamic dispatching based on explicit type tags. A set difference operation ...