Results 1 
7 of
7
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
Safety of Strictness Analysis via Term Graph Rewriting
, 2000
"... . A safe abstraction is presented for a restricted form of term graph rewriting. This abstraction can be seen as a formalisation of the rewrite system employed by the strictness analyser in the Concurrent Clean compiler. Programs written in a core functional language are interpreted as graph rewriti ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
. A safe abstraction is presented for a restricted form of term graph rewriting. This abstraction can be seen as a formalisation of the rewrite system employed by the strictness analyser in the Concurrent Clean compiler. Programs written in a core functional language are interpreted as graph rewriting systems using a form of equational term graph rewriting due to Ariola and Arvind. Abstract graphs are dened by extending the signature of ordinary graphs and it is shown how to extend a rewriting system on ordinary graphs to one on abstract graphs. An abstraction relation between abstract graphs is used to dene a notion of safety with respect to a variant of Ariola and Arvind's direct approximation semantics, and this notion of safety is shown to be adequate for strictness analysis. Abstract reduction is dened as the union of the extended rewrite system with additional `heuristic' reductions and shown to be safe. 1 Introduction In this paper we present a safe abstraction for a restric...
Addressed Term rewriting Systems: . . .
, 2006
"... We present a formalism called Addressed Term Rewriting Systems, which can be used to model implementations of theorem proving, symbolic computation, and programming languages, especially aspects of sharing, recursive computations and cyclic data structures. Addressed Term Rewriting Systems are there ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
We present a formalism called Addressed Term Rewriting Systems, which can be used to model implementations of theorem proving, symbolic computation, and programming languages, especially aspects of sharing, recursive computations and cyclic data structures. Addressed Term Rewriting Systems are therefore well suited for describing objectbased languages, and as an example we present a language called λObj a, incorporating both functional and objectbased features. As a case study in how reasoning about languages is supported in the ATRS formalism a type system for λObj a is defined and a type soundness result is proved.
Transformational Design Of Digital Systems Related To Graph Rewriting
 PROC. OF WORKSHOP ON DESIGN METHODOLOGIES FOR MICRO ELECTRONICS
, 1995
"... For highlevel synthesis transformational design is a promising design methodology which combines correctness by construction and interactive design. In this design methodology the design steps are behaviour preserving transformations of one design representation into another. Because of the import ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
For highlevel synthesis transformational design is a promising design methodology which combines correctness by construction and interactive design. In this design methodology the design steps are behaviour preserving transformations of one design representation into another. Because of the importance of visualisation of designinformation several kinds of graphs are used as design representations. Transformational design based on graph representation is closely related to rewriting of (sub)graphs. In this paper the formal aspects of transformational design are related to graph rewriting theory. It is shown how a formal framework for transformational design can benefit from graph rewriting theory. Especially preconditions for the application of transformation rules can be based on generally formulated preconditions from graph rewriting theory. Moreover a general graph concept unifies graph representations and a formal framework for transformational design based on this general graph...
A NEW FINITE DIFFERENCE METHOD FOR THE HELMHOLTZ EQUATION USING SYMBOLIC COMPUTATION
"... Abstract. A new finite difference method for the Helmholtz equation is presented. The method involves replacing the standard “weights ” in the central difference quotients (Sects. 2.1, 2.2, and 2.3) by weights that are optimal in a sense that will be explained in the Sects. just mentioned. The calcu ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
Abstract. A new finite difference method for the Helmholtz equation is presented. The method involves replacing the standard “weights ” in the central difference quotients (Sects. 2.1, 2.2, and 2.3) by weights that are optimal in a sense that will be explained in the Sects. just mentioned. The calculation of the optimal weights involves some complicated and error prone manipulations of integral formulas that is best done using computer aided symbolic computation (SC). In addition, we discuss the important problem of interpolation involving meshes that have been refined in certain subregions. Analytic formulae are derived using SC for these interpolation schemes. Our results are discussed in Sect. 5. Some hints about the computer methods we used to accomplish these results are given in the Appendix. More information is available and access to that information is referenced. While we do not want to make SC the focus of this work, we also do not want to underestimate its value. Armed with robust and efficient SC libraries, a researcher can comfortably and conveniently experiment with ideas that he or she might not examine otherwise. 1.
Compiling Rewriting onto SIMD and MIMD/SIMD Machines
, 1994
"... . We present compilation techniques for Simple Maude, a declarative programming language based on Rewriting Logic which supports term, graph, and objectoriented rewriting. We show how to compile various constructs of Simple Maude onto SIMD and MIMD/SIMD massively parallel architectures, and in part ..."
Abstract
 Add to MetaCart
. We present compilation techniques for Simple Maude, a declarative programming language based on Rewriting Logic which supports term, graph, and objectoriented rewriting. We show how to compile various constructs of Simple Maude onto SIMD and MIMD/SIMD massively parallel architectures, and in particular onto the Rewrite Rule Machine, a special purpose MIMD/SIMD architecture for rewriting. We show how to compile SIMD graph rewriting onto MIMD/SIMD architectures, and discuss mapping 3D structures into 2D SIMD meshes. We show how to compile objectoriented rewriting into efficient MIMD/SIMD code. We thus show that Simple Maude is an efficient, machineindependent parallel programming language. 1 Introduction Rewriting, that is, the process of replacing instances of a lefthand side pattern by corresponding instances of a righthand side pattern, has been recognized as a basic computational paradigm for implementing functional languages. Rewrite rules are intrinsicly concurrent, since t...
KRAM  Extended Report
"... Term rewriting proved to be a simple, uniform and powerful computational paradigm. Rewrite rules independently match and apply anywhere, unconstrained by the context. Rewriting is particularly appealing for defining truly concurrent systems, since rewrite rules can apply in parallel. Unfortunately, ..."
Abstract
 Add to MetaCart
Term rewriting proved to be a simple, uniform and powerful computational paradigm. Rewrite rules independently match and apply anywhere, unconstrained by the context. Rewriting is particularly appealing for defining truly concurrent systems, since rewrite rules can apply in parallel. Unfortunately, there is an inherent impediment in using term rewriting for defining concurrent systems or programming languages: overlapping rewrite rules cannot proceed concurrently. This limitation enforces an interleaving semantics in situations where one may not want it. For example, two threads accessing different regions of memory need to interleave since the corresponding rewrite rules overlap on the memory subterm. Or two message receiving operations of two distributed agents need to interleave since the corresponding rewrite rules overlap on the message pool subterm. This paper presents the concurrent rewrite abstract machine (KRAM), a generalization of term rewriting in which rules explicitly state what can be concurrently shared with other rules, like in graph rewriting. A parallel rewrite relation is defined and proved sound, complete and serializable with respect to conventional rewriting. The KRAM serves as the computational infrastructure of K, an executable semantic framework in which programming languages, calculi, as well as type systems or formal analysis tools can be defined, making use of configurations, computations and rules. A series of examples are discussed, including a nontrivial higherorder multithreaded distributed language; all examples were defined and executed using the KMaude tool.