Results 1 
8 of
8
Term Graph Rewriting
, 1998
"... Term graph rewriting is concerned with the representation of functional expressions as graphs, and the evaluation of these expressions by rulebased graph transformation. Representing expressions as graphs allows to share common subexpressions, improving the efficiency of term rewriting in space ..."
Abstract

Cited by 89 (5 self)
 Add to MetaCart
Term graph rewriting is concerned with the representation of functional expressions as graphs, and the evaluation of these expressions by rulebased graph transformation. Representing expressions as graphs allows to share common subexpressions, improving the efficiency of term rewriting in space and time. Besides efficiency, term graph rewriting differs from term rewriting in properties like termination and confluence. This paper is a survey of (acyclic) term graph rewriting, where emphasis is given to the relations between term and term graph rewriting. We focus on soundness of term graph rewriting with respect to term rewriting, on completeness for proving validity of equations and for computing term normal forms, on termination and confluence, and on term graph narrowing. Keywords: term graph rewriting, termination, confluence, term rewriting, narrowing Classification: 68Q05, 68Q40, 68Q42 (AMS '91); D.1.1, F.1.1, F.4.2, I.1.1 (CR '98) Note: This paper will appear in H...
Cyclic Lambda Calculi
, 1997
"... . We precisely characterize a class of cyclic lambdagraphs, and then give a sound and complete axiomatization of the terms that represent a given graph. The equational axiom system is an extension of lambda calculus with the letrec construct. In contrast to current theories, which impose restrictio ..."
Abstract

Cited by 43 (5 self)
 Add to MetaCart
. We precisely characterize a class of cyclic lambdagraphs, and then give a sound and complete axiomatization of the terms that represent a given graph. The equational axiom system is an extension of lambda calculus with the letrec construct. In contrast to current theories, which impose restrictions on where the rewriting can take place, our theory is very liberal, e.g., it allows rewriting under lambdaabstractions and on cycles. As shown previously, the reduction theory is nonconfluent. We thus introduce an approximate notion of confluence. Using this notion we define the infinite normal form or L'evyLongo tree of a cyclic term. We show that the infinite normal form defines a congruence on the set of terms. We relate our cyclic lambda calculus to the traditional lambda calculus and to the infinitary lambda calculus. Since most implementations of nonstrict functional languages rely on sharing to avoid repeating computations, we develop a variant of our calculus that enforces the ...
Properties of a Firstorder Functional Language with Sharing
 THEORETICAL COMPUTER SCIENCE
, 1994
"... A calculus and a model for a firstorder functional language with sharing is presented. In most implementations of... ..."
Abstract

Cited by 23 (4 self)
 Add to MetaCart
A calculus and a model for a firstorder functional language with sharing is presented. In most implementations of...
Recursion is a Computational Effect
, 2000
"... In a recent paper, Launchbury, Lewis, and Cook observe that some Haskell applications could benefit from a combinator mfix for expressing recursion over monadic types. We investigate three possible definitions of mfix and implement them in Haskell. Like traditional fixpoint operators, there are ..."
Abstract

Cited by 8 (1 self)
 Add to MetaCart
(Show Context)
In a recent paper, Launchbury, Lewis, and Cook observe that some Haskell applications could benefit from a combinator mfix for expressing recursion over monadic types. We investigate three possible definitions of mfix and implement them in Haskell. Like traditional fixpoint operators, there are two approaches to the definition of mfix: an unfolding one based on mathematical semantics, and an updating one based on operational semantics. The two definitions are equivalent in pure calculi but have different behaviors when used within monads. The unfolding version can be easily defined in Haskell if one restricts fixpoints to function types. The updating version is much more challenging to define in Haskell despite the fact that its definition is straightforward in Scheme. After studying the Scheme definition in detail, we mirror it in Haskell using the primitive unsafePerformIO. The resulting definition of mfix appears to work well but proves to be unsafe, in the sense that i...
Skew and ωSkew Confluence and Abstract Böhm Semantics
"... Abstract. Skew confluence was introduced as a characterization of nonconfluent term rewriting systems that had unique infinite normal forms or Böhm like trees. This notion however is not expressive enough to deal with all possible sources of nonconfluence in the context of infinite terms or terms e ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
(Show Context)
Abstract. Skew confluence was introduced as a characterization of nonconfluent term rewriting systems that had unique infinite normal forms or Böhm like trees. This notion however is not expressive enough to deal with all possible sources of nonconfluence in the context of infinite terms or terms extended with letrec. We present a new notion called ωskew confluence which constitutes a sufficient and necessary condition for uniqueness. We also present a theory that can lift uniqueness results from term rewriting systems to rewriting systems on terms with letrec. We present our results in the setting of Abstract Böhm Semantics, which is a generalization of Böhm like trees to abstract reduction systems. 1
Skew and ωSkew Confluence and Infinite Normal Forms
"... Abstract. The notion of skew confluence was introduced to characterize nonconfluent term rewriting systems that had unique infinite normal forms or Böhm like trees. This notion however is not expressive enough to deal with all possible sources of nonconfluence in the context of infinite terms or t ..."
Abstract
 Add to MetaCart
(Show Context)
Abstract. The notion of skew confluence was introduced to characterize nonconfluent term rewriting systems that had unique infinite normal forms or Böhm like trees. This notion however is not expressive enough to deal with all possible sources of nonconfluence in the context of infinite terms or terms extended with letrec. To that end, we present a new notion called ωskew confluence. We show that ωskew confluence constitutes a sufficient and necessary condition for uniqueness of infinite normal forms over infinite terms or terms with letrec. 1
Proof Systems for Nested Term Graphs
"... In this report we present some proof systems for possibly cyclic term graphs over a firstorder signature. This is done first for 'flat' term graphs (which are just systems of recursion equations) and next for 'nested' term graphs. In the latter, the recursion construct may be nes ..."
Abstract
 Add to MetaCart
In this report we present some proof systems for possibly cyclic term graphs over a firstorder signature. This is done first for 'flat' term graphs (which are just systems of recursion equations) and next for 'nested' term graphs. In the latter, the recursion construct may be nested. We prove soundness and completeness of the proof systems. The completeness refers to equivalence with respect to tree unwinding, which is the same as bisimulation equivalence. Bisimulation equivalence is generated by the copying transformation. In the first part of the paper we consider sequential copying, and show that this notion is strictly weaker than general copying. Note This report was written in partial fulfilment of the requirements for the Master's degree, under the supervision of prof.dr J.W. Klop. Contents Introduction 3 1 Terms, term graphs and trees. 5 1.1 Syntax. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 5 1.2 Copying and bisimulation. : : : : : : : ...
Implementing χ
, 2004
"... Calculi are used to reason about functional languages from a theoretical perspective. They allows us to make bold statements about programs based on sound and correct deductive methods. Methods of visualization allow us to gain a better understanding of the communication and interaction involved bet ..."
Abstract
 Add to MetaCart
Calculi are used to reason about functional languages from a theoretical perspective. They allows us to make bold statements about programs based on sound and correct deductive methods. Methods of visualization allow us to gain a better understanding of the communication and interaction involved between processes. Often, graphs are used because of the level of intuition they can bring to a system. A specific type of graph, called a ‘TermGraph ’ is one method of implementing functional programming languages. It has the added benefit of increasing the efficiency of computations through a concept known as sharing. In this report we present the design and implementation of a termgraph rewriting system that implements a higherorder calculus. We evaluate the tool and present the main conclusions of the project. Acknowledgements I would like to thank the following people who have helped throughout the project. First and foremost, Dr. Steffen van Bakel, my supervisor, who not only gave great help and excellent guidance throughout the course of the project, but also kept me motivated through continued enthusiasm and positive feedback on my progress. Professor Chris Hankin, for taking the time to explain concepts I was unsure of, and giving guidance on where to research certain aspects of the project. Alex Summers, for testing the many implementations of the project (and giving insightful feedback).