Results 1  10
of
18
Dactl: An Experimental Graph Rewriting Language
 Proc. 4th International Workshop on Graph Grammars
, 1991
"... This paper gives some examples of how computation in a number of languages may be described as graph rewriting, giving the Dactl notation for the examples shown. It goes on to present the Dactl model more formally before giving a formal definition of the syntax and semantics of the language. 2 Examp ..."
Abstract

Cited by 34 (7 self)
 Add to MetaCart
This paper gives some examples of how computation in a number of languages may be described as graph rewriting, giving the Dactl notation for the examples shown. It goes on to present the Dactl model more formally before giving a formal definition of the syntax and semantics of the language. 2 Examples of Computation by Graph Rewriting
Mechanical Translation of Set Theoretic Problem Specifications Into Efficient RAM Code  A Case Study
 Proc. EUROCAL 85
, 1985
"... This paper illustrates a fully automatic topdown approach to program development in which formal problem specifications are mechanically translated into efficient RAM code. This code is guaranteed to be totally correct and an upper bound on its worst case asymptotic running time is automatically de ..."
Abstract

Cited by 26 (8 self)
 Add to MetaCart
This paper illustrates a fully automatic topdown approach to program development in which formal problem specifications are mechanically translated into efficient RAM code. This code is guaranteed to be totally correct and an upper bound on its worst case asymptotic running time is automatically determined. The user is only required to supply the system with a formal problem specification, and is relieved of all responsibilities in the rest of the program development process. These results are obtained, in part, by greatly restricting the system to handle a class of determinate, set theoretic, tractable problems. The most essential transformational techniques that are used are fixed point iteration, finite differencing, and data structure selection. Rudimentary forms of these techniques have been implemented and used effectively in the RAPTS transformational programming system. This paper explains the conceptual underpinnings of our approach by considering the problem of attribute closure for relational databases and systematically deriving a program that implements a linear time solution. 1.
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
Open Problems in Rewriting
 Proceeding of the Fifth International Conference on Rewriting Techniques and Application (Montreal, Canada), LNCS 690
, 1991
"... Introduction Interest in the theory and applications of rewriting has been growing rapidly, as evidenced in part by four conference proceedings #including this one# #15, 26, 41,66#; three workshop proceedings #33, 47, 77#; #ve special journal issues #5,88, 24, 40, 67#; more than ten surveys #2,7,27 ..."
Abstract

Cited by 19 (2 self)
 Add to MetaCart
Introduction Interest in the theory and applications of rewriting has been growing rapidly, as evidenced in part by four conference proceedings #including this one# #15, 26, 41,66#; three workshop proceedings #33, 47, 77#; #ve special journal issues #5,88, 24, 40, 67#; more than ten surveys #2,7,27, 28, 44, 56,57,76, 82, 81#; one edited collection of papers #1#; four monographs #3, 12,55,65#; and seven books #four of them still in progress# #8,9, 35, 54, 60,75, 84#. To encourage and stimulate continued progress in this area, wehave collected #with the help of colleagues# a number of problems that appear to us to be of interest and regarding whichwe do not know the answer. Questions on rewriting and other equational paradigms have been included; manyhave not aged su#ciently to be accorded the appellation #open problem". Wehave limited ourselves to theoretical questions, though there are certainly many additional interesting questions relating to applications and implementation
A Simple Solver for Linear Equations Containing Nonlinear Operators
 SoftwarePractice & Experience
, 1996
"... This paper presents a simple equation solver. The solver finds solutions for sets of linear equations extended with several nonlinear operators, including integer division and modulus, sign extension, and bit slicing. The solver uses a new technique called balancing, which can eliminate some nonline ..."
Abstract

Cited by 12 (10 self)
 Add to MetaCart
This paper presents a simple equation solver. The solver finds solutions for sets of linear equations extended with several nonlinear operators, including integer division and modulus, sign extension, and bit slicing. The solver uses a new technique called balancing, which can eliminate some nonlinear operators from a set of equations before applying Gaussian elimination. The solver's principal advantages are its simplicity and its ability to handle some nonlinear operators, including nonlinear functions of more than one variable. The solver is part of an application generator that provides encoding and decoding of machine instructions based on equational specifications. The solver is presented not as pseudo code but as a literate program, which guarantees that the code shown in the paper is the same code that is actually used. Using real code exposes more detail than using pseudocode, but literateprogramming techniques help manage the detail. The detail should benefit readers who wan...
A New Algorithm for Linear Regular Tree Pattern Matching
 Theoretical Computer Science
, 1998
"... ..."
Normalization via Rewrite Closures
 Rewriting Techniques and Applications, 10th International Conference, RTA99, volume 1631 of LNCS
, 1999
"... We present an abstract completionbased method for finding normal forms of terms with respect to given rewrite systems. The method uses the concept of a rewrite closure, which is a generalization of the idea of a congruence closure. Our results generalize previous results on "nonoblivious" normaliza ..."
Abstract

Cited by 6 (3 self)
 Add to MetaCart
We present an abstract completionbased method for finding normal forms of terms with respect to given rewrite systems. The method uses the concept of a rewrite closure, which is a generalization of the idea of a congruence closure. Our results generalize previous results on "nonoblivious" normalization. The presentation simplifies the description and allows a better understanding of known algorithms, apart from extending the results to performing normalization by convergent rewrite systems.
Deciding Strong Sequentiality for orthogonal term rewriting systems is in CoNP
, 1995
"... In [KM91], Klop and Middeldorp conjectured that deciding strong sequentiality for orthogonal term rewriting systems is NPComplete. This problem appeared as "Problem 8" in the list of open problems in rewriting published in [DJK91]. In this article we show that the problem is in coNP. If, as we con ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
In [KM91], Klop and Middeldorp conjectured that deciding strong sequentiality for orthogonal term rewriting systems is NPComplete. This problem appeared as "Problem 8" in the list of open problems in rewriting published in [DJK91]. In this article we show that the problem is in coNP. If, as we conjecture, the problem is also in NP , this reduces its chances of being NPComplete.
FineGrain Partial Evaluation of Intermediate Code from Equational Programs
, 1991
"... Partial evaluation is greatly simplified if the target language is simple. In [SS90] we define an extremely simple language that is used as an intermediate language for equational programming [O'D85]. Although the intermediate language is a general graph manipulation language, we take advantage of t ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
Partial evaluation is greatly simplified if the target language is simple. In [SS90] we define an extremely simple language that is used as an intermediate language for equational programming [O'D85]. Although the intermediate language is a general graph manipulation language, we take advantage of the particular properties of programs generated from equational programs. For partial evaluation to be successful, we need both a set of transformations that preserve the semantics of the program and a strategy that tells us when to apply a particular transformation. The strategy includes termination criteria to avoid infinite computations. In this paper we concentrate on a set of transformations that preserve the semantics of the program. We also show a small example of how these transformations can be applied to a program in order to improve its execution speed. The strategy, however, is only sketchy at the present time. The complete strategy is left for a future paper. Furthermore, we do n...