Results 1 
5 of
5
Operations on records
 Mathematical Structures in Computer Science
, 1991
"... We define a simple collection of operations for creating and manipulating record structures, where records are intended as finite associations of values to labels. A secondorder type system over these operations supports both subtyping and polymorphism. We provide typechecking algorithms and limite ..."
Abstract

Cited by 141 (13 self)
 Add to MetaCart
We define a simple collection of operations for creating and manipulating record structures, where records are intended as finite associations of values to labels. A secondorder type system over these operations supports both subtyping and polymorphism. We provide typechecking algorithms and limited semantic models. Our approach unifies and extends previous notions of records, bounded quantification, record extension, and parametrization by rowvariables. The general aim is to provide foundations for concepts found in objectoriented languages, within a framework based on typed lambdacalculus.
Formal Parametric Polymorphism
 THEORETICAL COMPUTER SCIENCE
, 1993
"... A polymorphic function is parametric if its behavior does not depend on the type at which it is instantiated. Starting with Reynolds's work, the study of parametricity is typically semantic. In this paper, we develop a syntactic approach to parametricity, and a formal system that embodies this appro ..."
Abstract

Cited by 122 (6 self)
 Add to MetaCart
A polymorphic function is parametric if its behavior does not depend on the type at which it is instantiated. Starting with Reynolds's work, the study of parametricity is typically semantic. In this paper, we develop a syntactic approach to parametricity, and a formal system that embodies this approach, called system R . Girard's system F deals with terms and types; R is an extension of F that deals also with relations between types. In R , it is possible to derive theorems about functions from their types, or "theorems for free", as Wadler calls them. An easy "theorem for free" asserts that the type "(X)XBool contains only constant functions; this is not provable in F. There are many harder and more substantial examples. Various metatheorems can also be obtained, such as a syntactic version of Reynolds's abstraction theorem.
A semantic basis for Quest
 JOURNAL OF FUNCTIONAL PROGRAMMING
, 1991
"... Quest is a programming language based on impredicative type quantifiers and subtyping within a threelevel structure of kinds, types and type operators, and values. The semantics of Quest is rather challenging. In particular, difficulties arise when we try to model simultaneously features such as c ..."
Abstract

Cited by 63 (13 self)
 Add to MetaCart
Quest is a programming language based on impredicative type quantifiers and subtyping within a threelevel structure of kinds, types and type operators, and values. The semantics of Quest is rather challenging. In particular, difficulties arise when we try to model simultaneously features such as contravariant function spaces, record types, subtyping, recursive types, and fixpoints. In this paper we describe in detail the type inference rules for Quest, and we give them meaning using a partial equivalence relation model of types. Subtyping is interpreted as in previous work by Bruce and Longo, but the interpretation of some aspects, namely subsumption, power kinds, and record subtyping, is novel. The latter is based on a new encoding of record types. We concentrate on modeling quantifiers and subtyping; recursion is the subject of current work.
Computability structures, simulations and realizability
, 2011
"... We generalize the standard construction of realizability models (specifically, of categories of assemblies) to a very wide class of computability structures, broad enough to embrace models of computation such as labelled transition systems and process algebras. We also discuss a general notion of si ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
We generalize the standard construction of realizability models (specifically, of categories of assemblies) to a very wide class of computability structures, broad enough to embrace models of computation such as labelled transition systems and process algebras. We also discuss a general notion of simulation between such computability structures, and show that such simulations correspond precisely to certain functors between the realizability models. Furthermore, we show that our class of computability structures has good closure properties — in particular, it is ‘cartesian closed ’ in a slightly relaxed sense. We also investigate some important subclasses of computability structures and of simulations between them. We suggest that our 2category of computability structures and simulations may offer a framework for a general investigation of questions of computational power, abstraction and simulability for a wide range of computation models from across computer science.
Formal Parametric Polymorphism
 Theoretical Computer Science
, 1993
"... A polymorphic function is parametric if its behavior does not depend on the type at which it is instantiated. Starting with Reynolds's work, the study of parametricity is typically semantic. In this paper, we develop a syntactic approach to parametricity, and a formal system that embodies this appro ..."
Abstract
 Add to MetaCart
A polymorphic function is parametric if its behavior does not depend on the type at which it is instantiated. Starting with Reynolds's work, the study of parametricity is typically semantic. In this paper, we develop a syntactic approach to parametricity, and a formal system that embodies this approach, called system R . Girard's system F deals with terms and types; R is an extension of F that deals also with relations between types. In R , it is possible to derive theorems about functions from their types, or "theorems for free", as Wadler calls them. An easy "theorem for free" asserts that the type "(X)XBool contains only constant functions; this is not provable in F. There are many harder and more substantial examples. Various metatheorems can also be obtained, such as a syntactic version of Reynolds's abstraction theorem. 1. Explicit relations A polymorphic function is parametric if its behavior does not depend on the type at which it is instantiated [Strachey 1967] . A function that reverses lists, for example, is parametric because it does not look at the types of the elements of the lists given as inputs. There are important nonparametric polymorphic functions, such as a print function that maps values of any type to text representations. With this caveat, it can be argued that "truly" polymorphic functions are parametric, and in any case it is the parametric polymorphic functions that form the core of languages such as ML [Milner, Tofte, Harper 1989] . Reynolds's work provides a precise counterpart to the informal definition of parametricity just given [Reynolds 1983; Ma, Reynolds 1991] . Reynolds's abstraction theorem concerns a language similar to Girard 's system F [Girard, Lafont, Taylor 1989], and implies that the instances of a polymorphic function at d...