Results 1  10
of
11
Lazy rewriting on eager machinery
 ACM Transactions on Programming Languages and Systems
, 2000
"... The article introduces a novel notion of lazy rewriting. By annotating argument positions as lazy, redundant rewrite steps are avoided, and the termination behaviour of a term rewriting system can be improved. Some transformations of rewrite rules enable an implementation using the same primitives a ..."
Abstract

Cited by 23 (1 self)
 Add to MetaCart
The article introduces a novel notion of lazy rewriting. By annotating argument positions as lazy, redundant rewrite steps are avoided, and the termination behaviour of a term rewriting system can be improved. Some transformations of rewrite rules enable an implementation using the same primitives as an implementation of eager rewriting. 1
Grammar Rewriting
 Proceedings 11th International Conference on Automated Deduction
, 1991
"... We present a term rewriting procedure based on congruence closure that can be used with arbitrary equational theories. This procedure is motivated by the pragmatic need to prove equations in equational theories where confluence can not be achieved. The procedure uses context free grammars to represe ..."
Abstract

Cited by 13 (3 self)
 Add to MetaCart
(Show Context)
We present a term rewriting procedure based on congruence closure that can be used with arbitrary equational theories. This procedure is motivated by the pragmatic need to prove equations in equational theories where confluence can not be achieved. The procedure uses context free grammars to represent equivalence classes of terms. The procedure rewrites grammars rather than terms and uses congruence closure to maintain certain congruence properties of the grammar. Grammars provide concise representations of large term sets. Infinite term sets can be represented with finite grammars and exponentially large term sets can be represented with linear sized grarmnars. Although the procedure is primarily intended for use in nonconfluent theories, it also provides a new kind of confluence that can be used to give canoni cal rewriting systems for theories that are difficult to handle in other ways. For example, under grammar rewriting there is a finite canonical rewrite system for idempotent semigroups, a theory which has been shown not to have any finite canonical system under traditional notions of rewriting.
Unique normal forms and confluence of rewrite systems: Persistence
 In Proc. 14th IJCAI
, 1995
"... Programming language interpreters, proving theorems of the form A = 2?, abstract data types, and program optimization can all be represented by a finite set of rules called a rewrite system. In this paper, we study two fundamental concepts, uniqueness of normal forms and confluence, for nonlinear sy ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
Programming language interpreters, proving theorems of the form A = 2?, abstract data types, and program optimization can all be represented by a finite set of rules called a rewrite system. In this paper, we study two fundamental concepts, uniqueness of normal forms and confluence, for nonlinear systems in the absence of termination. This is a difficult topic with only a few results so far. Through a novel approach, we show that every persistent system has unique normal forms. This result is tight and a substantial generalization of previous work. In the process we derive a necessary and sufficient condition for persistence for the first time and give new classes of persistent systems. We also prove the confluence of the union (function symbols can be shared) of a nonlinear system with a leftlinear system under fairly general conditions. Again persistence plays a key role in this proof. We are not aware of any confluence result that allows the same level of function symbol sharing. 1
EM code Semantics, Analysis, and Optimization
"... This paper is a complete presentation of EM code, an intermediate code for representing the patternmatching automata produced by the Equational Logic Programming system. We present the abstract syntax and operational and denotational semantics of EM code. We then describe in detail methods for ..."
Abstract
 Add to MetaCart
This paper is a complete presentation of EM code, an intermediate code for representing the patternmatching automata produced by the Equational Logic Programming system. We present the abstract syntax and operational and denotational semantics of EM code. We then describe in detail methods for analysis, optimization, and partial evaluation of EM code programs. This paper is intended as a general reference, and does not assume any prior knowledge of EM code or equational logic programming (except as motivation for reading this paper). Familiarity with termrewriting systems and lazy evaluation is helpful. Contents 1 Introduction 3 2 Abstract Syntax and Operational Semantics 5 2.1 Abstract Machine : : : : : : : : : : : : : : : : : : : : : : : : : : : 5 2.2 Abstract Syntax : : : : : : : : : : : : : : : : : : : : : : : : : : : 7 2.3 Operational Semantics : : : : : : : : : : : : : : : : : : : : : : : : 8 2.3.1 Heap Memory : : : : : : : : : : : : : : : : : : : : : : : : : 8 2.3.2...
TermRewriting Implementation of Equational Logic Programming
 In Lescanne
, 1987
"... In 1975 I started a small project to explore the consequences of implementing equational programs with no semantic compromises. Latest results include a compiler that executes exactly the logical consequences of an equational program, with runtime speed comparable to compiled Franz LISP. This paper ..."
Abstract
 Add to MetaCart
In 1975 I started a small project to explore the consequences of implementing equational programs with no semantic compromises. Latest results include a compiler that executes exactly the logical consequences of an equational program, with runtime speed comparable to compiled Franz LISP. This paper describes the accomplishments of the project very briefly, concentrating on shortcomings and directions for future work. 1 Introduction The most common approach to providing semantics for programming languages is to regard a program as the definition of a collection of functions. In some cases great ingenuity is required to construct the unique function associated with each symbol in a program. Inputs and outputs are regarded as values in the domains of the defined functions, and the input/output behavior of the implementation of a program is expected to be exactly the function associated with some designated symbol in the program. I prefer, This work was supported by NSF grant DCR8601...
Survey of the Equational Logic Programming Project
 In Colloquium on Resolution of Equations in Algebraic Structures
, 1987
"... In 1975 I started a small project to explore the consequences of implementing equational programs with no semantic compromises. Latest results include a compiler that executes exactly the logical consequences of an equational program, with runtime speed comparable to compiled Franz LISP. This paper ..."
Abstract
 Add to MetaCart
In 1975 I started a small project to explore the consequences of implementing equational programs with no semantic compromises. Latest results include a compiler that executes exactly the logical consequences of an equational program, with runtime speed comparable to compiled Franz LISP. This paper surveys the development of the project, through theoretical foundations, algorithm development, design and implementation, application, and directions for the future. 1 Introduction This paper surveys a small project aimed at providing a style of logic programming based on equational logic. The project was always intended as an exploration of radical possibilities in programming languages, rather than as an attempt to support any particular application. Christoph Hoffmann was an equal collaborator from 1977 to 1983. Paul Chew and Robert Strandh made significant contributions in their doctoral dissertations, and Paul Golick This work was supported by NSF grant DCR8601843. This paper was...
On Referential Transparency in the Presence of Uniform Sharing
, 1997
"... Factotum, a software system for implementing symbolic computing systems, provides an uniform subterm sharing facility based on congruence that automatically detects and imposes sharing of equivalent structures independantly of client code. In the presence of this automatic facility, the meaning of s ..."
Abstract
 Add to MetaCart
Factotum, a software system for implementing symbolic computing systems, provides an uniform subterm sharing facility based on congruence that automatically detects and imposes sharing of equivalent structures independantly of client code. In the presence of this automatic facility, the meaning of structure updates is dangerously ambiguous. We explain how we resolve this problem in the Factotum system by providing a formal distinction between global updates, which are immediate; and local updates, which are relative to a declared root and become available only after finalization. This distinction has interesting consequences for coupled traversals. 1 Introduction Sharing equivalent data structures is an important algorithmic tool for certain kinds of symbolic computation, such as those based on decision diagrams or on term rewriting. Sharing can result in exponential improvements in running time and memory usage, and is critically necessary for many applications. Runtime support for a...