Results 1  10
of
11
Games and Full Abstraction for the Lazy lambdacalculus
 In Proceedings, Tenth Annual IEEE Symposium on Logic in Computer Science
, 1995
"... ion for the Lazy calculus Samson Abramsky Guy McCusker Department of Computing Imperial College of Science, Technology and Medicine 180 Queen's Gate London SW7 2BZ United Kingdom Abstract We define a category of games G, and its extensional quotient E . A model of the lazy calculus, a typefre ..."
Abstract

Cited by 133 (9 self)
 Add to MetaCart
ion for the Lazy calculus Samson Abramsky Guy McCusker Department of Computing Imperial College of Science, Technology and Medicine 180 Queen's Gate London SW7 2BZ United Kingdom Abstract We define a category of games G, and its extensional quotient E . A model of the lazy calculus, a typefree functional language based on evaluation to weak head normal form, is given in G, yielding an extensional model in E . This model is shown to be fully abstract with respect to applicative simulation. This is, so far as we know, the first purely semantic construction of a fully abstract model for a reflexivelytyped sequential language. 1 Introduction Full Abstraction is a key concept in programming language semantics [9, 12, 23, 26]. The ingredients are as follows. We are given a language L, with an `observational preorder'  on terms in L such that P  Q means that every observable property of P is also satisfied by Q; and a denotational model MJ\DeltaK. The model M is then said to be f...
Classical Logic, Continuation Semantics and Abstract Machines
, 1998
"... Machines Th. STREICHER Fachbereich 4 Mathematik, TU Darmstadt, Schlossgartenstr. 7, 64289 Darmstadt, streiche@mathematik.thdarmstadt.de B. REUS Institut fur Informatik, LudwigMaximiliansUniversitat, Oettingenstr. 67, D80538 Munchen, reus@informatik.unimuenchen.de Abstract One of the ..."
Abstract

Cited by 51 (4 self)
 Add to MetaCart
Machines Th. STREICHER Fachbereich 4 Mathematik, TU Darmstadt, Schlossgartenstr. 7, 64289 Darmstadt, streiche@mathematik.thdarmstadt.de B. REUS Institut fur Informatik, LudwigMaximiliansUniversitat, Oettingenstr. 67, D80538 Munchen, reus@informatik.unimuenchen.de Abstract One of the goals of this paper is to demonstrate that denotational semantics is useful for operational issues like implementation of functional languages by abstract machines. This is exemplified in a tutorial way by studying the case of extensional untyped callbyname calculus with Felleisen's control operator C. We derive the transition rules for an abstract machine from a continuation semantics which appears as a generalization of the ::translation known from logic. The resulting abstract machine appears as an extension of Krivine's Machine implementing head reduction. Though the result, namely Krivine's Machine, is well known our method of deriving it from continuation semantics is new and applicable to other languages (as e.g. callbyvalue variants).
Improvement in a Lazy Context: An Operational Theory for CallByNeed
 Proc. POPL'99, ACM
, 1999
"... Machine The semantics presented in this section is essentially Sestoft's \mark 1" abstract machine for laziness [Sestoft 1997]. In that paper, he proves his abstract machine 6 A. K. Moran and D. Sands h fx = Mg; x; S i ! h ; M; #x : S i (Lookup) h ; V; #x : S i ! h fx = V g; V; S i (Update) h ; ..."
Abstract

Cited by 38 (7 self)
 Add to MetaCart
Machine The semantics presented in this section is essentially Sestoft's \mark 1" abstract machine for laziness [Sestoft 1997]. In that paper, he proves his abstract machine 6 A. K. Moran and D. Sands h fx = Mg; x; S i ! h ; M; #x : S i (Lookup) h ; V; #x : S i ! h fx = V g; V; S i (Update) h ; M x; S i ! h ; M; x : S i (Unwind) h ; x:M; y : S i ! h ; M [ y = x ]; S i (Subst) h ; case M of alts ; S i ! h ; M; alts : S i (Case) h ; c j ~y; fc i ~x i N i g : S i ! h ; N j [ ~y = ~x j ]; S i (Branch) h ; let f~x = ~ Mg in N; S i ! h f~x = ~ Mg; N; S i ~x dom(;S) (Letrec) Fig. 1. The abstract machine semantics for callbyneed. semantics sound and complete with respect to Launchbury's natural semantics, and we will not repeat those proofs here. Transitions are over congurations consisting of a heap, containing bindings, the expression currently being evaluated, and a stack. The heap is a partial function from variables to terms, and denoted in an identical manner to a coll...
Functional Computation as Concurrent Computation
, 1995
"... We investigate functional computation as a special form of concurrent computation. ..."
Abstract

Cited by 13 (3 self)
 Add to MetaCart
We investigate functional computation as a special form of concurrent computation.
A Fully Abstract Semantics for a HigherOrder Functional Language With Nondeterministic Computation
, 1994
"... . This paper is about the relationship between the theory of monadic types and the practice of concurrent functional programming. We present a typed functional programming language CMML, with a type system based on Moggi's monadic metalanguage, and concurrency based on Reppy's Concurrent ML. We pre ..."
Abstract

Cited by 9 (3 self)
 Add to MetaCart
. This paper is about the relationship between the theory of monadic types and the practice of concurrent functional programming. We present a typed functional programming language CMML, with a type system based on Moggi's monadic metalanguage, and concurrency based on Reppy's Concurrent ML. We present an operational and denotational semantics for the language, and show that the denotational semantics is fully abstract for maytesting. We show that a fragment of CML can be translated into CMML, and that the translation is correct up to weak bisimulation. Contents 1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 Mathematical preliminaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.1 Categories and monads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.2 Partial orders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ....
Process Semantics of Graph Reduction
 Proc. CONCUR '95, volume 962 of Lecture Notes in Computer Science
, 1995
"... This paper introduces an operational semantics for callbyneed reduction in terms of Milner's ßcalculus. The functional programming interest lies in the use of ßcalculus as an abstract yet realistic target language. The practical value of the encoding is demonstrated with an outline for a paralle ..."
Abstract

Cited by 6 (1 self)
 Add to MetaCart
This paper introduces an operational semantics for callbyneed reduction in terms of Milner's ßcalculus. The functional programming interest lies in the use of ßcalculus as an abstract yet realistic target language. The practical value of the encoding is demonstrated with an outline for a parallel code generator. From a theoretical perspective, the ßcalculus representation of computational strategies with shared reductions is novel and solves a problem posed by Milner [13]. The compactness of the process calculus presentation makes it interesting as an alternative definition of callbyneed. Correctness of the encoding is proved with respect to the callbyneed calculus of Ariola et al. [3]. 1 Introduction Graph reduction of extended calculi has become a mature field of applied research. The efficiency of the implementations is due in great measure to a technique known as `sharing', whereby argument values are computed (at most) once and then memoized for future reference. Both...
Correctness of copy in calculi with letrec, case and constructors
, 2007
"... Callbyneed lambda calculi with letrec provide a rewritingbased operational semantics for (lazy) callbyname functional languages. These calculi model the sharing behavior during evaluation more closely than letbased calculi that use a fixpoint combinator. In a previous paper we showed that the ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
Callbyneed lambda calculi with letrec provide a rewritingbased operational semantics for (lazy) callbyname functional languages. These calculi model the sharing behavior during evaluation more closely than letbased calculi that use a fixpoint combinator. In a previous paper we showed that the copytransformation is correct for the small calculus LRλ. In this paper we demonstrate that the proof method based on a calculus on infinite trees for showing correctness of instantiation operations can be extended to the calculus LRCCλ with case and constructors, and show that copying at compiletime can be done without restrictions. We also show that the callbyneed and callbyname strategies are equivalent w.r.t. contextual equivalence. A consequence is correctness of all the transformations like instantiation, inlining, specialization and common subexpression elimination in LRCCλ. We are confident that the method scales up for proving correctness of copyrelated transformations in nondeterministic lambda calculi if restricted to “deterministic” subterms.
Uniform Confluence in Concurrent Computation
, 1999
"... Indeterminism is typical for concurrent computation. If several concurrent actors compete for the same resource then at most one of them may succeed, whereby the choice of the successful actor is indeterministic. As a consequence, the execution of a concurrent program may be nonconfluent. Even worse ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
Indeterminism is typical for concurrent computation. If several concurrent actors compete for the same resource then at most one of them may succeed, whereby the choice of the successful actor is indeterministic. As a consequence, the execution of a concurrent program may be nonconfluent. Even worse, most observables (termination, computational result, and time complexity) typically depend on the scheduling of actors created during program execution. This property contrast concurrent programs from purely functional programs. A functional program is uniformly confluent in the sense that all its possible executions coincide modulo reordering of execution steps. In this paper, we investigate concurrent programs that are uniformly confluent and their relation to eager and lazy functional programs.
A Three Syntactic Theories for Combinatory Graph Reduction
"... We present a purely syntactic theory of graph reduction for the canonical combinators S, K, and I, where graph vertices are represented with evaluation contexts and let expressions. We express this first syntactic theory as a storeless reduction semantics of combinatory terms. We then factor out the ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
We present a purely syntactic theory of graph reduction for the canonical combinators S, K, and I, where graph vertices are represented with evaluation contexts and let expressions. We express this first syntactic theory as a storeless reduction semantics of combinatory terms. We then factor out the introduction of let expressions to denote as many graph vertices as possible upfront instead of on demand. The factored terms can be interpreted as term graphs in the sense of Barendregt et al. We express this second syntactic theory, which we prove equivalent to the first, as a storeless reduction semantics of combinatory term graphs. We then recast let bindings as bindings in a global store, thus shifting, in Strachey’s words, from denotable entities to storable entities. The storebased terms can still be interpreted as term graphs. We express this third syntactic theory, which we prove equivalent to the second, as a storebased reduction semantics of machine. The architecture of this storebased abstract machine coincides with that of Turner’s original reduction machine. The three syntactic theories presented here therefore properly account for combinatory graph reduction As We Know It. These three syntactic theories scale to handling the Y combinator. This article therefore illustrates the scientific consensus of theoreticians and implementors about graph reduction: it is the same combinatory
SIMULATION IN THE CALLBYNEED LAMBDACALCULUS WITH LETREC
"... Abstract. This paper shows the equivalence of applicative similarity and contextual approximation, and hence also of bisimilarity and contextual equivalence, in the deterministic callbyneed lambda calculus with letrec. Bisimilarity simplifies equivalence proofs in the calculus and opens a way for ..."
Abstract
 Add to MetaCart
Abstract. This paper shows the equivalence of applicative similarity and contextual approximation, and hence also of bisimilarity and contextual equivalence, in the deterministic callbyneed lambda calculus with letrec. Bisimilarity simplifies equivalence proofs in the calculus and opens a way for more convenient correctness proofs for program transformations. Although this property may be a natural one to expect, to the best of our knowledge, this paper is the first one providing a proof. The proof technique is to transfer and surjective translation. This also shows that the natural embedding of Abramsky’s lazy lambda calculus into the callbyneed lambda calculus with letrec is an isomorphism between the respective termmodels. We show that the equivalence property proven in this paper transfers to a callbyneed letrec calculus developed by Ariola and Felleisen. 1.