Results 1  10
of
24
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 (Up ..."
Abstract

Cited by 44 (8 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...
Representations of stream processors using nested fixed points
 Logical Methods in Computer Science
"... Abstract. We define representations of continuous functions on infinite streams of discrete values, both in the case of discretevalued functions, and in the case of streamvalued functions. We define also an operation on the representations of two continuous functions between streams that yields a ..."
Abstract

Cited by 24 (2 self)
 Add to MetaCart
(Show Context)
Abstract. We define representations of continuous functions on infinite streams of discrete values, both in the case of discretevalued functions, and in the case of streamvalued functions. We define also an operation on the representations of two continuous functions between streams that yields a representation of their composite. In the case of discretevalued functions, the representatives are wellfounded (finitepath) trees of a certain kind. The underlying idea can be traced back to Brouwer’s justification of barinduction, or to Kreisel and Troelstra’s elimination of choicesequences. In the case of streamvalued functions, the representatives are nonwellfounded trees pieced together in a coinductive fashion from wellfounded trees. The definition requires an alternating fixpoint construction of some ubiquity.
Unique Fixed Point Induction for McCarthy's Amb
 IN: PROCEEDINGS OF THE 24TH INTERNATIONAL SYMPOSIUM ON MATHEMATICAL FOUNDATIONS OF COMPUTER SCIENCE, ”LNCS” 1672
, 1999
"... We develop an operational theory of higherorder functions, recursion, and fair nondeterminism for a nontrivial, higherorder, callbyname functional programming language extended with McCarthy's amb. Implemented via fair parallel evaluation, functional programming with amb is very expres ..."
Abstract

Cited by 10 (2 self)
 Add to MetaCart
We develop an operational theory of higherorder functions, recursion, and fair nondeterminism for a nontrivial, higherorder, callbyname functional programming language extended with McCarthy's amb. Implemented via fair parallel evaluation, functional programming with amb is very expressive. However, conventional semantic fixed point principles for reasoning about recursion fail in the presence of fairness. Instead, we adapt higherorder operational methods to deal with fair nondeterminism. We present two natural semantics, describing mayand mustconvergence, and define a notion of contextual equivalence over these two modalities. The presence of amb raises special difficulties when reasoning about contextual equivalence. In particular, we report on a challenging open problem with regard to the validity of bisimulation proof methods. We develop two sound and useful reasoning methods which, in combination, enable us to prove a rich collection of laws for contextual...
FUNDIO: A LambdaCalculus with a letrec, case, Constructors, and an IOInterface: Approaching a Theory of unsafePerformIO. Frank report 16, Institut für
 Informatik, J.W. GoetheUniversität Frankfurt, September 2003. SSSS04. Manfred SchmidtSchauß, Marko Schütz, and
"... Abstract. A nondeterministic callbyneed lambdacalculus λndlr with case, constructors, letrec and a (nondeterministic) erratic choice, based on rewriting rules is investigated. A standard reduction is defined as a variant of leftmost outermost reduction. The semantics is defined by contextual e ..."
Abstract

Cited by 8 (0 self)
 Add to MetaCart
(Show Context)
Abstract. A nondeterministic callbyneed lambdacalculus λndlr with case, constructors, letrec and a (nondeterministic) erratic choice, based on rewriting rules is investigated. A standard reduction is defined as a variant of leftmost outermost reduction. The semantics is defined by contextual equivalence of expressions instead of using αβ(η)equivalence. It is shown that several program transformations are correct, for example all (deterministic) rules of the calculus, and in addition the rules for garbage collection, removing indirections and unique copy. This shows that the combination of a context lemma and a metarewriting on reductions using complete sets of commuting (forking, resp.) diagrams is a useful and successful method for providing a semantics of a functional programming language and proving correctness of program transformations. 1
On the Safety of Nöcker’s Strictness Analysis
 FRANKFURT AM MAIN, GERMANY
"... This paper proves correctness of Nöcker’s method of strictness analysis, implemented for Clean, which is an effective way for strictness analysis in lazy functional languages based on their operational semantics. We improve upon the work of Clark, Hankin and Hunt, which addresses correctness of the ..."
Abstract

Cited by 8 (7 self)
 Add to MetaCart
This paper proves correctness of Nöcker’s method of strictness analysis, implemented for Clean, which is an effective way for strictness analysis in lazy functional languages based on their operational semantics. We improve upon the work of Clark, Hankin and Hunt, which addresses correctness of the abstract reduction rules. Our method also addresses the cycle detection rules, which are the main strength of Nöcker’s strictness analysis. We reformulate Nöcker’s strictness analysis algorithm in a higherorder lambdacalculus with case, constructors, letrec, and a nondeterministic choice operator ⊕ used as a union operator. Furthermore, the calculus is expressive enough to represent abstract constants like Top or Inf. The operational semantics is a smallstep semantics and equality of expressions is defined by a contextual semantics that observes termination of expressions. The correctness of several reductions is proved using a context lemma and complete sets of forking and commuting diagrams. The
Imprecise Exceptions, CoInductively
"... In a recent paper, Peyton Jones et al. proposed a design for imprecise exceptions in the lazy functional programming language Haskell [PJRH + 99]. The main contribution of the design was that it allowed the language to continue to enjoy its current rich algebra of transformations. However, the den ..."
Abstract

Cited by 8 (2 self)
 Add to MetaCart
In a recent paper, Peyton Jones et al. proposed a design for imprecise exceptions in the lazy functional programming language Haskell [PJRH + 99]. The main contribution of the design was that it allowed the language to continue to enjoy its current rich algebra of transformations. However, the denotational semantics used to formalise the design does not combine easily with other extensions, most notably that of concurrency. We present an alternative semantics for a lazy functional language with imprecise exceptions which is entirely operational in nature, and combines well with other extensions, such as I/O and concurrency. The semantics is based upon a convergence relation, which describes evaluation, and an exceptional convergence relation, which describes the raising of exceptions. Convergence and exceptional convergence lead naturally to a simple notion of renement, where a term M is re ned by N whenever they have identical convergent behaviour, and any exception raised by N c...
Congruence of bisimulation in a nondeterministic callbyneed lambda calculus
 Electron. Notes Theor. Comput. Sci
, 2005
"... We present a callbyneed λcalculus λND with an erratic nondeterministic operator pick and a nonrecursive let. A definition of a bisimulation is given, which has to be based on a further calculus named λ≈, since the näıve bisimulation definition is useless. The main result is that bisimulation i ..."
Abstract

Cited by 6 (2 self)
 Add to MetaCart
(Show Context)
We present a callbyneed λcalculus λND with an erratic nondeterministic operator pick and a nonrecursive let. A definition of a bisimulation is given, which has to be based on a further calculus named λ≈, since the näıve bisimulation definition is useless. The main result is that bisimulation in λ ≈ is a congruence and contained in the contextual equivalence. The proof is a nontrivial extension of Howe’s method. This might be a step towards defining useful bisimulation relations and proving them to be congruences in calculi that extend the λNDcalculus.
On generic context lemmas for lambda calculi with sharing
, 2008
"... This paper proves several generic variants of context lemmas and thus contributes to improving the tools for observational semantics of deterministic and nondeterministic higherorder calculi that use a smallstep reduction semantics. The generic (sharing) context lemmas are provided for may as we ..."
Abstract

Cited by 5 (3 self)
 Add to MetaCart
This paper proves several generic variants of context lemmas and thus contributes to improving the tools for observational semantics of deterministic and nondeterministic higherorder calculi that use a smallstep reduction semantics. The generic (sharing) context lemmas are provided for may as well as two variants of mustconvergence, which hold in a broad class of extended process and extended lambda calculi, if the calculi satisfy certain natural conditions. As a guideline, the proofs of the context lemmas are valid in callbyneed calculi, in callbyvalue calculi if substitution is restricted to variablebyvariable and in process calculi like variants of the πcalculus. For calculi employing betareduction using a callbyname or callbyvalue strategy or similar reduction rules, some iuvariants of ciutheorems are obtained from our context lemmas. Our results reestablish several context lemmas already proved in the literature, and also provide some new context lemmas as well as some new variants of the ciutheorem. To make the results widely applicable, we use a higherorder abstract syntax that allows untyped calculi as well as certain simple typing schemes. The approach may lead to a unifying view of higherorder calculi, reduction, and observational equality.
Correctness of Copy in Calculi with Letrec,
, 2007
"... Abstract. This paper extends the internal frank report 28 as follows: It is shown that for a callbyneed lambda calculus LRCCPλ extending the calculus LRCCλ by por, i.e in a lambdacalculus with letrec, case, constructors, seq and por, copying can be done without restrictions, and also that callby ..."
Abstract

Cited by 5 (3 self)
 Add to MetaCart
Abstract. This paper extends the internal frank report 28 as follows: It is shown that for a callbyneed lambda calculus LRCCPλ extending the calculus LRCCλ by por, i.e in a lambdacalculus with letrec, case, constructors, seq and por, copying can be done without restrictions, and also that callbyneed and callbyname strategies are equivalent w.r.t. contextual equivalence. 1
Reasoning about Contextual Equivalence: From Untyped to Polymorphically Typed Calculi
"... Abstract: This paper describes a syntactical method for contextual equivalence in polymorphically typed lambdacalculi. Our specific calculus has letrec as cyclic let, data constructors, caseexpressions, seq, and recursive types. The typed language is a subset of the untyped language. Normalorder ..."
Abstract

Cited by 3 (3 self)
 Add to MetaCart
Abstract: This paper describes a syntactical method for contextual equivalence in polymorphically typed lambdacalculi. Our specific calculus has letrec as cyclic let, data constructors, caseexpressions, seq, and recursive types. The typed language is a subset of the untyped language. Normalorder reduction is defined for the untyped language. Since there are less typed contexts the typed contextual preorder and equivalence are coarser than the untyped ones. We use typelabels for all subexpressions of the typed expressions, and prove a context lemma for the typelabeled calculus. We show how to reason about correctness of program transformations in the typed language, and how to easily transfer the methods and results from untyped program calculi to polymorphically typed ones. 1