Results 11  20
of
36
A Three Syntactic Theories for Combinatory Graph Reduction
"... We present a purely syntactic theory of graph reduction for the canonical combinators S, K, and I, where graph vertices are represented with evaluation contexts and let expressions. We express this first syntactic theory as a storeless reduction semantics of combinatory terms. We then factor out the ..."
Abstract

Cited by 4 (1 self)
 Add to MetaCart
We present a purely syntactic theory of graph reduction for the canonical combinators S, K, and I, where graph vertices are represented with evaluation contexts and let expressions. We express this first syntactic theory as a storeless reduction semantics of combinatory terms. We then factor out the introduction of let expressions to denote as many graph vertices as possible upfront instead of on demand. The factored terms can be interpreted as term graphs in the sense of Barendregt et al. We express this second syntactic theory, which we prove equivalent to the first, as a storeless reduction semantics of combinatory term graphs. We then recast let bindings as bindings in a global store, thus shifting, in Strachey’s words, from denotable entities to storable entities. The storebased terms can still be interpreted as term graphs. We express this third syntactic theory, which we prove equivalent to the second, as a storebased reduction semantics of machine. The architecture of this storebased abstract machine coincides with that of Turner’s original reduction machine. The three syntactic theories presented here therefore properly account for combinatory graph reduction As We Know It. These three syntactic theories scale to handling the Y combinator. This article therefore illustrates the scientific consensus of theoreticians and implementors about graph reduction: it is the same combinatory
Graph Algorithm Animation with Grrr
 In Agtive99: Applications of Graph Transformations with Industrial Relevance, LNCS 1779
, 2000
"... . We discuss geometric positioning, highlighting of visited nodes and user defined highlighting that form the algorithm animation facilities in the Grrr graph rewriting programming language. The main purpose of animation was initially for the debugging and profiling of Grrr code, but recently it ..."
Abstract

Cited by 4 (3 self)
 Add to MetaCart
(Show Context)
. We discuss geometric positioning, highlighting of visited nodes and user defined highlighting that form the algorithm animation facilities in the Grrr graph rewriting programming language. The main purpose of animation was initially for the debugging and profiling of Grrr code, but recently it has been extended for the purpose of teaching algorithms to undergraduate students. The animation is restricted to graph based algorithms such as graph drawing, list manipulation or more traditional graph theory. The visual nature of the Grrr system allows much animation to be gained for free, with no extra user effort beyond the coding of the algorithm, but we also discuss user defined animations, where custom algorithm visualisations can be explicitly defined for teaching and demonstration purposes. 1 Introduction Grrr is a visual graph rewriting programming language [16,17]. It is general purpose, allowing the implementation of complex graph algorithms and has a visual view of gr...
Modeling Pointer Redirection as Cyclic Termgraph Rewriting
 TERMGRAPH 2006 PRELIMINARY VERSION
, 2006
"... We tackle the problem of datastructure rewriting including global and local pointer redirections. Each basic rewrite step may perform three kinds of actions: (i) Local redirection, the aim of which is to redirect specific pointers determined by means of a pattern; (ii) Replacement, that may add new ..."
Abstract

Cited by 3 (3 self)
 Add to MetaCart
We tackle the problem of datastructure rewriting including global and local pointer redirections. Each basic rewrite step may perform three kinds of actions: (i) Local redirection, the aim of which is to redirect specific pointers determined by means of a pattern; (ii) Replacement, that may add new information to datastructures; (iii) Global redirection, which is aimed at redirecting all pointers targeting a node towards another one. We define a new framework, following the doublepushout approach, where graph rewrite rules may mix these three kinds of actions in a row. We define first the category of graphs we consider and then we define rewrite rules as pairs of graph homomorphisms of the form L ← K → R. In our setting, graph K is not arbitrary, it is used to encode pointer redirection. Furthermore, pushouts do not always exist and complement pushouts, when they exist, are not unique. Despite these concerns, our definition of rewriting steps is such that a rewrite rule can always be fired, once a matching is found.
ObjectOriented Term Graph Rewriting
 International Journal of Computer Systems Science and Engineering, CRL Publs., (in print
, 1997
"... The relationship between the generalised computational model of Term Graph Rewriting Systems (TGRS) and ObjectOriented Programming (OOP) is explored and exploited by extending the TGRS model with records where access to parameters is done by naming rather than position. Records are then used as the ..."
Abstract

Cited by 3 (3 self)
 Add to MetaCart
(Show Context)
The relationship between the generalised computational model of Term Graph Rewriting Systems (TGRS) and ObjectOriented Programming (OOP) is explored and exploited by extending the TGRS model with records where access to parameters is done by naming rather than position. Records are then used as the basis for expressing objectoriented techniques such as object encapsulation and (various forms of) inheritance. The effect is that TGRS with records can now be used as an implementation model for a variety of (concurrent) objectoriented (functional, logic or otherwise) languages but also as a common formalism for comparing various related techniques (such as different forms of inheritance or approaches for providing solutions to problems caused by the combination of concurrency and interaction between objects). Keywords: ObjectOriented Programming; Concurency and Parallelism; Programming Language Extensions; Rewriting Systems. ObjectOriented Term Graph Rewriting George A. Papadopoulos...
Concurrent ObjectOriented Programming Using Term Graph Rewriting Techniques
, 1996
"... this paper we use TGRS and we exploit the high degree of fine grain parallelism available in the model in expressing a variety of concurrent objectoriented programming techniques. Being our framework language independent, it can serve as a basis for designing new concurrent Concurrent OOP using TG ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
this paper we use TGRS and we exploit the high degree of fine grain parallelism available in the model in expressing a variety of concurrent objectoriented programming techniques. Being our framework language independent, it can serve as a basis for designing new concurrent Concurrent OOP using TGR techniques: George A Papadopoulos 2 objectoriented languages, implementing existing ones or act as a point of reference in comparing different approaches proposed by various languages to modelling certain OOP techniques such as delegation, inheritance, etc. but also to solving any associated problems encountered
A Parallel Solution Strategy For Irregular, Dynamic Problems
, 1996
"... Parallelizing irregular, dynamic data structures can be a very difficult problem. An efficient solution often demands that work on the data structure be divided up among processors, yet despite the large and growing number of such applications there has been little work done on general approaches to ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
(Show Context)
Parallelizing irregular, dynamic data structures can be a very difficult problem. An efficient solution often demands that work on the data structure be divided up among processors, yet despite the large and growing number of such applications there has been little work done on general approaches to such situations. In part this is due to the extreme difficulty of ensuring enough generality to be useful, while still efficiently addressing each individual problem; irregular and dynamic problems can vary dramatically, and direct, efficient solutions simply do not exist. Most attempts have therefore either concentrated on problemspecific areas, where good results can be obtained at the expense of generality, or have defaulted to heuristic methods applicable to almost any possible situation. In this thesis we present a hybrid method, combining a direct and problemspecific approach with a system general enough to be applicable to the majority of applications. Our method is based on local g...
DACTL rewriting is categorical
 Dept. of Informatics, University of Nijmegen
, 1991
"... The graphmanipulating core of the general term graph rewriting language DACTL, namely contraction building and redirection, is reexamined from a categorical viewpoint. The essentials of this rather complex twophase operational semantics is recast as a Grothendieck opfibration of a category of grap ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
The graphmanipulating core of the general term graph rewriting language DACTL, namely contraction building and redirection, is reexamined from a categorical viewpoint. The essentials of this rather complex twophase operational semantics is recast as a Grothendieck opfibration of a category of graph rewrites over a base of rewrite rules. This generalises previous attempts to categorise contractum building and redirection as pushouts and is able to describe more DACTL rewrites than pushout models. The full operational core model conforms to a more restricted version of this construction and is able to successfully cope with examples such as the infamous circular I example a: I [ a]. 1
Implementing Concurrent Logic and Functional Languages in Dactl
 Journal of Programming Languages
, 1997
"... this paper we try to bridge the gap between the two formalisms by showing how concurrent logic languages can be implemented using graph rewriting. In particular, we develop techniques for mapping a wide class of CLLs including Parlog, GHC, Strand, Janus and a restricted subset of the Concurrent Prol ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
(Show Context)
this paper we try to bridge the gap between the two formalisms by showing how concurrent logic languages can be implemented using graph rewriting. In particular, we develop techniques for mapping a wide class of CLLs including Parlog, GHC, Strand, Janus and a restricted subset of the Concurrent Prolog family onto Dactl, a compiler target language based on graph rewriting. We discuss the problems found in the process and the adopted solutions. The paper contributes to related research by: # examining the potential of graph reduction as a suitable model for implementing CLLs in terms of expressiveness and efficiency