Results 1 
8 of
8
The Denotational Semantics of Programming Languages
, 1976
"... This paper is a tutorial introduction to the theory of programming language semantics developed by D. Scott and C. Strachey. The application of the theory to formal language specification is demonstrated and other applications are surveyed. The first language considered, LOOP, is very elementary and ..."
Abstract

Cited by 195 (0 self)
 Add to MetaCart
This paper is a tutorial introduction to the theory of programming language semantics developed by D. Scott and C. Strachey. The application of the theory to formal language specification is demonstrated and other applications are surveyed. The first language considered, LOOP, is very elementary and its definition merely introduces the notation and methodology of the approach. Then the semantic concepts of environments, stores, and continuations are introduced to model classes of programming language features and the underlying mathematical theory of computation due to Scott is motivated and outlined. Finally, the paper presents a formal definition of the language GEDANKEN.
Types, Abstraction, and Parametric Polymorphism, Part 2
, 1991
"... The concept of relations over sets is generalized to relations over an arbitrary category, and used to investigate the abstraction (or logicalrelations) theorem, the identity extension lemma, and parametric polymorphism, for Cartesianclosedcategory models of the simply typed lambda calculus and P ..."
Abstract

Cited by 63 (1 self)
 Add to MetaCart
The concept of relations over sets is generalized to relations over an arbitrary category, and used to investigate the abstraction (or logicalrelations) theorem, the identity extension lemma, and parametric polymorphism, for Cartesianclosedcategory models of the simply typed lambda calculus and PLcategory models of the polymorphic typed lambda calculus. Treatments of Kripke relations and of complete relations on domains are included.
Le Fun: Logic, equations, and Functions
 In Proc. 4th IEEE Internat. Symposium on Logic Programming
, 1987
"... Abstract † We introduce a new paradigm for the integration of functional and logic programming. Unlike most current research, our approach is not based on extending unification to generalpurpose equation solving. Rather, we propose a computation delaying mechanism called residuation. This allows a ..."
Abstract

Cited by 44 (1 self)
 Add to MetaCart
Abstract † We introduce a new paradigm for the integration of functional and logic programming. Unlike most current research, our approach is not based on extending unification to generalpurpose equation solving. Rather, we propose a computation delaying mechanism called residuation. This allows a clear distinction between functional evaluation and logical deduction. The former is based on the λcalculus, and the latter on Horn clause resolution. In clear contrast with equationsolving approaches, our model supports higherorder function evaluation and efficient compilation of both functional and logic programming expressions, without being plagued by nondeterministic termrewriting. In addition, residuation lends itself naturally to process synchronization and constrained search. Besides unification (equations), other residuations may be any grounddecidable goal, such as mutual exclusion (inequations), and comparisons (inequalities). We describe an implementation of the residuation paradigm as a prototype language called Le Fun—Logic, equations, and Functions.
On functors expressible in the polymorphic typed lambda calculus
 Logical Foundations of Functional Programming
, 1990
"... This is a preprint of a paper that has been submitted to Information and Computation. ..."
Abstract

Cited by 19 (1 self)
 Add to MetaCart
(Show Context)
This is a preprint of a paper that has been submitted to Information and Computation.
An Introduction to Polymorphic Lambda Calculus
 Logical Foundations of Functional Programming
, 1994
"... Introduction to the Polymorphic Lambda Calculus John C. Reynolds Carnegie Mellon University December 23, 1994 The polymorphic (or secondorder) typed lambda calculus was invented by JeanYves Girard in 1971 [11, 10], and independently reinvented by myself in 1974 [24]. It is extraordinary that ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
(Show Context)
Introduction to the Polymorphic Lambda Calculus John C. Reynolds Carnegie Mellon University December 23, 1994 The polymorphic (or secondorder) typed lambda calculus was invented by JeanYves Girard in 1971 [11, 10], and independently reinvented by myself in 1974 [24]. It is extraordinary that essentially the same programming language was formulated independently by the two of us, especially since we were led to the language by entirely different motivations. In my own case, I was seeking to extend conventional typed programming languages to permit the definition of "polymorphic" procedures that could accept arguments of a variety of types. I started with the ordinary typed lambda calculus and added the ability to pass types as parameters (an idea that was "in the air" at the time, e.g. [4]). For example, as in the ordinary typed lambda calculus one can write f int!int : x int : f(f (x)) to denote the "doubling" function for the type int, which accepts a function from integers
Under consideration for publication in J. Functional Programming 1 Translating Dependency into Parametricity
"... Abadi et al. introduced the dependency core calculus (DCC) as a unifying framework to study many important program analyses such as binding time, information flow, slicing, and function call tracking. DCC uses a lattice of monads and a nonstandard typing rule for their associated bind operations to ..."
Abstract
 Add to MetaCart
(Show Context)
Abadi et al. introduced the dependency core calculus (DCC) as a unifying framework to study many important program analyses such as binding time, information flow, slicing, and function call tracking. DCC uses a lattice of monads and a nonstandard typing rule for their associated bind operations to describe the dependency of computations in a program. Abadi et al. proved a noninterference theorem that establishes the correctness of DCC’s type system and thus the correctness of the type systems for the analyses above. In this paper, we study the relationship between DCC and the GirardReynolds polymorphic lambda calculus (also called System F). We encode the recursionfree fragment of DCC into F via a typedirected translation. Our main theoretical result is that, following from the correctness of the translation, the parametricity theorem for F implies the noninterference theorem for DCC. In addition, the translation provides insights into DCC’s type system and suggests implementation strategies of dependency calculi in polymorphic languages. Note to the reviewers: An earlier version of this paper with the same title appears in
This is a preprint of a paper that has been submitted to Information and Computation. On Functors Expressible in the Polymorphic Typed Lambda Calculus
, 1991
"... Given a model of the polymorphic typed lambda calculus based upon a Cartesian closed category K, there will be functors from K to K whose action on objects can be expressed by type expressions and whose action on morphisms can be expressed by ordinary expressions. We show that if T is such a functor ..."
Abstract
 Add to MetaCart
(Show Context)
Given a model of the polymorphic typed lambda calculus based upon a Cartesian closed category K, there will be functors from K to K whose action on objects can be expressed by type expressions and whose action on morphisms can be expressed by ordinary expressions. We show that if T is such a functor then there is a weak initial Talgebra and if, in addition, K possesses equalizers of all subsets of its morphism sets, then there is an initial Talgebra. These results are used to establish the impossibility of certain models, including those in which types denote sets and S → S ′ denotes the set of all functions from S to S ′.
Semantic and Syntactic Approaches to Simulation Relations
, 2003
"... Simulation relations are tools for establishing the correctness of data refinement steps. In the simplytyped lambda calculus, logical relations are the standard choice for simulation relations, but they su#er from certain shortcomings; these are resolved by use of the weaker notion of prelogic ..."
Abstract
 Add to MetaCart
Simulation relations are tools for establishing the correctness of data refinement steps. In the simplytyped lambda calculus, logical relations are the standard choice for simulation relations, but they su#er from certain shortcomings; these are resolved by use of the weaker notion of prelogical relations instead. Developed from a syntactic setting, abstraction barrierobserving simulation relations serve the same purpose, and also handle polymorphic operations. Meanwhile, secondorder prelogical relations directly generalise prelogical relations to polymorphic lambda calculus (System F). We compile the main refinementpertinent results of these various notions of simulation relation, and try to raise some issues for aiding their comparison and reconciliation.