Results 1 
7 of
7
Admissible Graph Rewriting and Narrowing
 IN PROCEEDINGS OF THE JOINT INTERNATIONAL CONFERENCE AND SYMPOSIUM ON LOGIC PROGRAMMING
, 1998
"... We address the problem of graph rewriting and narrowing as the underlying operational semantics of rulebased programming languages. We propose new optimal graph rewriting and narrowing strategies in the setting of orthogonal constructorbased graph rewriting systems. For this purpose, we first char ..."
Abstract

Cited by 29 (8 self)
 Add to MetaCart
(Show Context)
We address the problem of graph rewriting and narrowing as the underlying operational semantics of rulebased programming languages. We propose new optimal graph rewriting and narrowing strategies in the setting of orthogonal constructorbased graph rewriting systems. For this purpose, we first characterize a subset of graphs, called admissible graphs. A graph is admissible if none of its defined operations belongs to a cycle. We then prove the confluence, as well as the confluence modulo bisimilarity (unraveling), of the admissible graph rewriting relation. Afterwards, we define a sequential graph rewriting strategy by using Antoy’s definitional trees. We show that the resulting strategy computes only needed redexes and develops optimal derivations w.r.t. the number of steps. Finally, we tackle the graph narrowing relation over admissible graphs and propose a sequential narrowing strategy which computes independent solutions and develops shorter derivations than most general graph narrowing.
Explicit Cyclic Substitutions
, 1993
"... In this paper we consider rewrite systems that describe the lambdacalculus enriched with recursive and nonrecursive local definitions by generalizing the `explicit substitutions' used by Abadi, Cardelli, Curien, and Lévy [1] to describe sharing in lambdaterms. This leads to `explicit cyclic ..."
Abstract

Cited by 25 (2 self)
 Add to MetaCart
(Show Context)
In this paper we consider rewrite systems that describe the lambdacalculus enriched with recursive and nonrecursive local definitions by generalizing the `explicit substitutions' used by Abadi, Cardelli, Curien, and Lévy [1] to describe sharing in lambdaterms. This leads to `explicit cyclic substitutions' that can describe the mutual sharing of local recursive definitions. We demonstrate how this may be used to describe standard binding constructions (let and letrec)  directly using substitution and fixed point induction as well as using `smallstep' rewriting semantics where substitution is interleaved with the mechanics of the following betareductions. With this we hope to contribute to the synthesis of denotational and operational specifications of sharing and recursion.
On Constructorbased Graph Rewriting Systems
 RESEARCH REPORT 985I, IMAG
, 1997
"... We address the problem of graph rewriting as the underlying operational semantics of rulebased programming languages. We define a new optimal graph rewriting strategy in the setting of orthogonal constructorbased graph rewriting systems. For this purpose, we first characterize a subset of graphs, ..."
Abstract

Cited by 16 (3 self)
 Add to MetaCart
We address the problem of graph rewriting as the underlying operational semantics of rulebased programming languages. We define a new optimal graph rewriting strategy in the setting of orthogonal constructorbased graph rewriting systems. For this purpose, we first characterize a subset of graphs, called admissible graphs. A graph is admissible if none of its defined operations belongs to a cycle. We then prove the confluence, as well as the confluence modulo bisimilarity (unraveling), of the admissible graph rewriting relation. Finally, we define a sequential graph rewriting strategy by using Antoy's definitional trees. We show that the resulting strategy computes only needed redexes and develops optimal derivations w.r.t. the number of steps.
How to Give Local Strategies to Function Symbols for Equality of Two Implementations of the Estrategy with and without Evaluated Flags
 Proceedings of Asian Symposium on Computer Mathematics
, 1998
"... . The evaluation strategy (abbr. the Estrategy) initiated by OBJ2 is one of compromises between outermost and innermost reduction strategies. Although rewriting with the Estrategy is intuitively easytounderstand, the straightforward implementation cannot lead to efficient rewriting. Then, the im ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
(Show Context)
. The evaluation strategy (abbr. the Estrategy) initiated by OBJ2 is one of compromises between outermost and innermost reduction strategies. Although rewriting with the Estrategy is intuitively easytounderstand, the straightforward implementation cannot lead to efficient rewriting. Then, the implementations of OBJ3 and CafeOBJ use evaluated flags to implement reasonably rewriting with the Estrategy. However, rewriting with evaluated flags is not always equivalent to that without evaluated flags, which depends on local strategies given to function symbols. So far we did not have any useful guidelines on how to give local strategies to function symbols. In this paper, we present a sufficient but reasonable condition (i.e. how to give local strategies to function symbols) that two implementations of the Estrategy with and without evaluated flags are equivalent, and give its proof. 1. Introduction A reduction strategy is a function that takes a set of rewrite rules (i.e. a term rew...
Operational Machine Specification in a Functional Programming Language
, 1995
"... This paper advocates the use functional programming languages for the formal specification of (abstract) machines. The presented description method describes machines by a twolevel model. At the bottom layer machine components and the micro instructions to handle them are described by using an abst ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
This paper advocates the use functional programming languages for the formal specification of (abstract) machines. The presented description method describes machines by a twolevel model. At the bottom layer machine components and the micro instructions to handle them are described by using an abstract data type. The top layer describes the machine instructions in terms of these micro instructions
Graphbased Operational Semantics of a Lazy Functional Language
 Term Graph Rewriting: Theory and Practice, chapter 22
"... Machine [Car83], the Gmachine [Joh84, BPJR88], Clean [BvEvLP87, KSvEP91], and DACTL [Ken88, GKS89]. All of these can be perceived as notations for algorithms that describe how graphs may be used to model the evaluation of the implemented language. Such notations have the advantage that they are dir ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
Machine [Car83], the Gmachine [Joh84, BPJR88], Clean [BvEvLP87, KSvEP91], and DACTL [Ken88, GKS89]. All of these can be perceived as notations for algorithms that describe how graphs may be used to model the evaluation of the implemented language. Such notations have the advantage that they are directly executable. However, they are often not very readable since all the details of the implementation have to be present in the specification. On the other hand, the idea has also been used in attempts to build models of functional languages and to prove properties of such models directly. Again starting from [Wad71] such attempts are naturally focused on models of the calculusa 2 We will use the traditional word "redex" (reducible expression) rather than some abbreviation of "reducible subgraph" even though we will always refer to the latter. GRAPHBASED OPERATIONAL SEMANTICS OF A LAZY FUNCTIONAL LANGUAGE 239 rather large are of research, so we will just mention [Sta78] and [Lam90...
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).