Results 1  10
of
15
Adequacy of compositional translations for observational semantics
 INTERNATIONAL CONFERENCE ON THEORETICAL COMPUTER SCIENCE
, 2008
"... We investigate methods and tools for analyzing translations between programming languages with respect to observational semantics. The behavior of programs is observed in terms of may and mustconvergence in arbitrary contexts, and adequacy of translations, i.e., the reflection of program equivalenc ..."
Abstract

Cited by 11 (8 self)
 Add to MetaCart
We investigate methods and tools for analyzing translations between programming languages with respect to observational semantics. The behavior of programs is observed in terms of may and mustconvergence in arbitrary contexts, and adequacy of translations, i.e., the reflection of program equivalence, is taken to be the fundamental correctness condition. For compositional translations we propose a notion of convergence equivalence as a means for proving adequacy. This technique avoids explicit reasoning about contexts, and is able to deal with the subtle role of typing in implementations of language extensions.
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
On Conservativity of Concurrent Haskell
, 2011
"... Abstract. The calculus CHF models Concurrent Haskell extended by concurrent, implicit futures. It is a process calculus with concurrent threads, monadic concurrent evaluation, and includes a pure functional lambdacalculus which comprises data constructors, caseexpressions, letrecexpressions, and ..."
Abstract

Cited by 4 (1 self)
 Add to MetaCart
Abstract. The calculus CHF models Concurrent Haskell extended by concurrent, implicit futures. It is a process calculus with concurrent threads, monadic concurrent evaluation, and includes a pure functional lambdacalculus which comprises data constructors, caseexpressions, letrecexpressions, and Haskell’s seq. Futures can be implemented in Concurrent Haskell using the primitive unsafeInterleaveIO, which is available in most implementations of Haskell. Our main result is conservativity of CHF, that is, all equivalences of pure functional expressions are also valid in CHF. This implies that compiler optimizations and transformations from pure Haskell remain valid in Concurrent Haskell even if it is extended by futures. We also show that this is no longer valid if Concurrent Haskell is extended by the arbitrary use of unsafeInterleaveIO. 1
Equivalence of callbyname and callbyneed for lambdacalculi with letrec
, 2007
"... We develop a proof method to show that in a (deterministic) lambda calculus with letrec and equipped with contextual equivalence the callbyname and the callbyneed evaluation are equivalent, and also that the unrestricted copyoperation is correct. Given a letbinding x = t, the copyoperation re ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
We develop a proof method to show that in a (deterministic) lambda calculus with letrec and equipped with contextual equivalence the callbyname and the callbyneed evaluation are equivalent, and also that the unrestricted copyoperation is correct. Given a letbinding x = t, the copyoperation replaces an occurrence of the variable x by the expression t, regardless of the form of t. This gives an answer to unresolved problems in several papers, it adds a strong method to the tool set for reasoning about contextual equivalence in higherorder calculi with letrec, and it enables a class of transformations that can be used as optimizations. The method can be used in different kind of lambda calculi with cyclic sharing. Probably it can also be used in nondeterministic lambda calculi if the variable x is “deterministic”, i.e., has no interference with nondeterministic executions. The main technical idea is to use a restricted variant of the infinitary lambdacalculus, whose objects are the expressions that are unrolled w.r.t. let, to define the infinite developments as a reduction calculus on the infinite trees and showing a standardization theorem.
StepIndexed Relational Reasoning for Countable Nondeterminism
"... Programming languages with countable nondeterministic choice are computationally interesting since countable nondeterminism arises when modeling fairness for concurrent systems. Because countable choice introduces noncontinuous behaviour, it is wellknown that developing semantic models for program ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
Programming languages with countable nondeterministic choice are computationally interesting since countable nondeterminism arises when modeling fairness for concurrent systems. Because countable choice introduces noncontinuous behaviour, it is wellknown that developing semantic models for programming languages with countable nondeterminism is challenging. We present a stepindexed logical relations model of a higherorder functional programming language with countable nondeterminism and demonstrate how it can be used to reason about contextually defined may and mustequivalence. In earlier stepindexed models, the indices have been drawn from ω. Here the stepindexed relations for mustequivalence are indexed over an ordinal greater than ω.
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 2 (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.
Contextual Equivalence in LambdaCalculi extended with letrec and with a Parametric Polymorphic Type System
, 2009
"... This paper describes a method to treat contextual equivalence in polymorphically typed lambdacalculi, and also how to transfer equivalences from the untyped versions of lambdacalculi to their typed variant, where our specific calculus has letrec, recursive types and is nondeterministic. An additio ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
This paper describes a method to treat contextual equivalence in polymorphically typed lambdacalculi, and also how to transfer equivalences from the untyped versions of lambdacalculi to their typed variant, where our specific calculus has letrec, recursive types and is nondeterministic. An addition of a type label to every subexpression is all that is needed, together with some natural constraints for the consistency of the type labels and wellscopedness of expressions. One result is that an elementary but typed notion of program transformation is obtained and that untyped contextual equivalences also hold in the typed calculus as long as the expressions are welltyped. In order to have a nice interaction between reduction and typing, some reduction rules have to be accompanied with a type modification by generalizing or instantiating types.
Correctness of an STM Haskell Implementation
, 2013
"... Abstract. A concurrent implementation of software transactional memory in Concurrent Haskell using a callbyneed functional language with processes and futures is given. The description of the smallstep operational semantics is precise and explicit, and employs an early abort of conflicting transa ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
Abstract. A concurrent implementation of software transactional memory in Concurrent Haskell using a callbyneed functional language with processes and futures is given. The description of the smallstep operational semantics is precise and explicit, and employs an early abort of conflicting transactions. A proof of correctness of the implementation is given for a contextual semantics with may and shouldconvergence. This implies that our implementation is a correct evaluator for an abstract specification equipped with a bigstep semantics. 1
found at the ENTCS Macro Home Page. Observational Semantics for a Concurrent Lambda Calculus with Reference Cells and Futures
, 2007
"... Replace this file with prentcsmacro.sty for your meeting, or with entcsmacro.sty for your meeting. Both can be ..."
Abstract
 Add to MetaCart
Replace this file with prentcsmacro.sty for your meeting, or with entcsmacro.sty for your meeting. Both can be