953 research outputs found
Strategic programming on graph rewriting systems
We describe a strategy language to control the application of graph rewriting
rules, and show how this language can be used to write high-level declarative
programs in several application areas. This language is part of a graph-based
programming tool built within the port-graph transformation and visualisation
environment PORGY.Comment: In Proceedings IWS 2010, arXiv:1012.533
Strategic Port Graph Rewriting: An Interactive Modelling and Analysis Framework
We present strategic portgraph rewriting as a basis for the implementation of
visual modelling and analysis tools. The goal is to facilitate the
specification, analysis and simulation of complex systems, using port graphs. A
system is represented by an initial graph and a collection of graph rewriting
rules, together with a user-defined strategy to control the application of
rules. The strategy language includes constructs to deal with graph traversal
and management of rewriting positions in the graph. We give a small-step
operational semantics for the language, and describe its implementation in the
graph transformation and visualisation tool PORGY.Comment: In Proceedings GRAPHITE 2014, arXiv:1407.767
The Semantics of Graph Programs
GP (for Graph Programs) is a rule-based, nondeterministic programming
language for solving graph problems at a high level of abstraction, freeing
programmers from handling low-level data structures. The core of GP consists of
four constructs: single-step application of a set of conditional
graph-transformation rules, sequential composition, branching and iteration. We
present a formal semantics for GP in the style of structural operational
semantics. A special feature of our semantics is the use of finitely failing
programs to define GP's powerful branching and iteration commands
Graph Creation, Visualisation and Transformation
We describe a tool to create, edit, visualise and compute with interaction
nets - a form of graph rewriting systems. The editor, called GraphPaper, allows
users to create and edit graphs and their transformation rules using an
intuitive user interface. The editor uses the functionalities of the TULIP
system, which gives us access to a wealth of visualisation algorithms.
Interaction nets are not only a formalism for the specification of graphs, but
also a rewrite-based computation model. We discuss graph rewriting strategies
and a language to express them in order to perform strategic interaction net
rewriting
A Reference Interpreter for the Graph Programming Language GP 2
GP 2 is an experimental programming language for computing by graph
transformation. An initial interpreter for GP 2, written in the functional
language Haskell, provides a concise and simply structured reference
implementation. Despite its simplicity, the performance of the interpreter is
sufficient for the comparative investigation of a range of test programs. It
also provides a platform for the development of more sophisticated
implementations.Comment: In Proceedings GaM 2015, arXiv:1504.0244
Graph Algorithm Animation with Grrr
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
PORGY: Strategy-Driven Interactive Transformation of Graphs
This paper investigates the use of graph rewriting systems as a modelling
tool, and advocates the embedding of such systems in an interactive
environment. One important application domain is the modelling of biochemical
systems, where states are represented by port graphs and the dynamics is driven
by rules and strategies. A graph rewriting tool's capability to interactively
explore the features of the rewriting system provides useful insights into
possible behaviours of the model and its properties. We describe PORGY, a
visual and interactive tool we have developed to model complex systems using
port graphs and port graph rewrite rules guided by strategies, and to navigate
in the derivation history. We demonstrate via examples some functionalities
provided by PORGY.Comment: In Proceedings TERMGRAPH 2011, arXiv:1102.226
Modelling and Analysis Using GROOVE
In this paper we present case studies that describe how the graph transformation tool GROOVE has been used to model problems from a wide variety of domains. These case studies highlight the wide applicability of GROOVE in particular, and of graph transformation in general. They also give concrete templates for using GROOVE in practice. Furthermore, we use the case studies to analyse the main strong and weak points of GROOVE
Data-Structure Rewriting
We tackle the problem of data-structure rewriting including pointer
redirections. We propose two basic rewrite steps: (i) Local Redirection and
Replacement steps the aim of which is redirecting specific pointers determined
by means of a pattern, as well as adding new information to an existing data ;
and (ii) Global Redirection steps which are aimed to redirect all pointers
targeting a node towards another one. We define these two rewriting steps
following the double pushout approach. We define first the category of graphs
we consider and then define rewrite rules as pairs of graph homomorphisms of
the form "L R". Unfortunately, inverse pushouts (complement pushouts)
are not unique in our setting and pushouts do not always exist. Therefore, we
define rewriting steps so that a rewrite rule can always be performed once a
matching is found
- …