Results 1  10
of
25
Mixin modules in a callbyvalue setting
 In European Symposium on Programming
, 2002
"... Abstract. The ML module system provides powerful parameterization facilities, but lacks the ability to split mutually recursive definitions across modules, and does not provide enough facilities for incremental programming. A promising approach to solve these issues is Ancona and Zucca’s mixin modul ..."
Abstract

Cited by 67 (8 self)
 Add to MetaCart
Abstract. The ML module system provides powerful parameterization facilities, but lacks the ability to split mutually recursive definitions across modules, and does not provide enough facilities for incremental programming. A promising approach to solve these issues is Ancona and Zucca’s mixin modules calculus CMS. However, the straightforward way to adapt it to ML fails, because it allows arbitrary recursive definitions to appear at any time, which ML does not support. In this paper, we enrich CMS with a refined type system that controls recursive definitions through the use of dependency graphs. We then develop a separate compilation scheme, directed by dependency graphs, that translate mixin modules down to a CBV λcalculus extended with a nonstandard let rec construct. 1
August) Compilation of extended recursion in callbyvalue functional languages
 In Proceedings of PPDP: the 5th International ACM SIGPLAN Conference on Principles and Practice of Declarative Programming
, 2003
"... Abstract. This paper formalizes and proves correct a compilation scheme for mutuallyrecursive definitions in callbyvalue functional languages. This scheme supports a wider range of recursive definitions than standard callbyvalue recursive definitions. We formalize our technique as a translation ..."
Abstract

Cited by 22 (6 self)
 Add to MetaCart
Abstract. This paper formalizes and proves correct a compilation scheme for mutuallyrecursive definitions in callbyvalue functional languages. This scheme supports a wider range of recursive definitions than standard callbyvalue recursive definitions. We formalize our technique as a translation scheme to a lambdacalculus featuring inplace update of memory blocks, and prove the translation to be faithful.
On the Safety of Nöcker’s Strictness Analysis
 FRANKFURT AM MAIN, GERMANY
"... Abstract. 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 correctne ..."
Abstract

Cited by 8 (7 self)
 Add to MetaCart
Abstract. 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.
Modes of Convergence for Term Graph Rewriting
"... Term graph rewriting provides a simple mechanism to finitely represent restricted forms of infinitary term rewriting. The correspondence between infinitary term rewriting and term graph rewriting has been studied to some extent. However, this endeavour is impaired by the lack of an appropriate count ..."
Abstract

Cited by 4 (4 self)
 Add to MetaCart
Term graph rewriting provides a simple mechanism to finitely represent restricted forms of infinitary term rewriting. The correspondence between infinitary term rewriting and term graph rewriting has been studied to some extent. However, this endeavour is impaired by the lack of an appropriate counterpart of infinitary rewriting on the side of term graphs. We aim to fill this gap by devising two modes of convergence based on a partial order resp. a metric on term graphs. The thus obtained structures generalise corresponding modes of convergence that are usually studied in infinitary term rewriting. We argue that this yields a common framework in which both term rewriting and term graph rewriting can be studied. In order to substantiate our claim, we compare convergence on term graphs and on terms. In particular, we show that the resulting infinitary calculi of term graph rewriting exhibit the same correspondence as we know it from term rewriting: Convergence via the partial order is a conservative extension of the metric convergence.
Equivalence of callbyname and callbyneed for lambdacalculi with letrec. Frank report 25
 Inst. f. Informatik
, 2006
"... Abstract. 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 copyop ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
Abstract. 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. 1
A Fresh Calculus for Name Management
 In Karsai and Visser [KV04
"... We define a basic calculus for name management, which is obtained by an appropriate combination of three ingredients: extensible records (in a simplified form), names (as in FreshML), computational types (to allow computational e#ects, including generation of fresh names). The calculus supports the ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
We define a basic calculus for name management, which is obtained by an appropriate combination of three ingredients: extensible records (in a simplified form), names (as in FreshML), computational types (to allow computational e#ects, including generation of fresh names). The calculus supports the use of symbolic names for programming inthelarge, e.g. it subsumes Ancona and Zucca's calculus for module systems, and for metaprogramming (but not the intensional analysis of object level terms supported by FreshML), e.g. it subsumes (and improves) Nanevski and Pfenning's calculus for metaprogramming with names and necessity. Moreover, it models some aspects of Java's class loaders. 1
Dynamic rebinding for marshalling and update, via redextime and destructtime reduction
, 2008
"... ..."
Mixin modules, modules and extended value binding in a callbyvalue setting
, 2003
"... Mixin modules, modules and extended value binding ..."
Christiansen: Callbyname Calculus of Records and its Basic Properties. Working Papers Series
"... This technical report contains definitions and proofs of properties of a callbyname calculus of records. The purpose of the calculus is to describe unordered collections of (possibly mutually recursive) named components. The system resembles a callbyvalue calculus of records defined in [5], but t ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
This technical report contains definitions and proofs of properties of a callbyname calculus of records. The purpose of the calculus is to describe unordered collections of (possibly mutually recursive) named components. The system resembles a callbyvalue calculus of records defined in [5], but the proof method
Lifting Infinite Normal Form Definitions From Term Rewriting to Term Graph Rewriting
 Proceedings of the Fourth Annual Workshop on Empirical Studies of Programmers, ESP 91
, 2002
"... Infinite normal forms are a way of giving semantics to nonterminating rewrite systems. The notion is a generalization of the Bohm tree in the lambda calculus. It was first introduced in [AB97] to provide semantics for a lambda calculus on terms with letrec. In that paper infinite normal forms were ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
Infinite normal forms are a way of giving semantics to nonterminating rewrite systems. The notion is a generalization of the Bohm tree in the lambda calculus. It was first introduced in [AB97] to provide semantics for a lambda calculus on terms with letrec. In that paper infinite normal forms were defined directly on the graph rewrite system. In [Blo01] the framework was improved by defining the infinite normal form of a term graph using the infinite normal form on terms. This approach of lifting the definition makes the nonconfluence problems introduced into term graph rewriting by substitution rules much easier to deal with. In this paper, we give a simplified presentation of the latter approach. 2000 Mathematics Subject Classification: 68Q42, 68Q55 Keywords and Phrases: term graph, Bohm tree, infinite term, rewriting, lambda calculus, combinatory reduction system Note: Work carried out under project SEN2 "Specification and Analysis of Embedded Systems" 1.