21,321 research outputs found
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
Structure and Properties of Traces for Functional Programs
The tracer Hat records in a detailed trace the computation of a program written in the lazy functional language Haskell. The trace can then be viewed in various ways to support program comprehension and debugging. The trace was named the augmented redex trail. Its structure was inspired by standard graph rewriting implementations of functional languages. Here we describe a model of the trace that captures its essential properties and allows formal reasoning. The trace is a graph constructed by graph rewriting but goes beyond simple term graphs. Although the trace is a graph whose structure is independent of any rewriting strategy, we define the trace inductively, thus giving us a powerful method for proving its properties
A Strategy Language for Graph Rewriting
International audienceWe give a formal semantics for a graph-based programming language, where a program consists of a collection of graph rewriting rules, a user-defined strategy to control the application of rules, and an initial graph to be rewritten. The traditional operators found in strategy languages for term rewriting have been adapted to deal with the more general setting of graph rewriting, and some new constructs have been included in the language to deal with graph traversal and management of rewriting positions in the graph. This language is part of the graph transformation and visualisation environment PORGY
Strategic Port Graph Rewriting: an Interactive Modelling Framework
International audienceWe present strategic port graph rewriting as a basis for the implementation of visual modelling tools. The goal is to facilitate the specification and programming tasks associated with the modelling of complex systems. A system is represented by an initial graph and a collection of graph rewrite rules, together with a user-defined strategy to control the application of rules. The traditional operators found in strategy languages for term rewriting have been adapted to deal with the more general setting of graph rewriting, and some new constructs have been included in the strategy language to deal with graph traversal and management of rewriting positions in the graph. We give a formal semantics for the language, and describe its implementation: the graph transformation and visualisation tool Porgy
Porgy Strategy Language: User Manual
This document provides concrete syntax illustrated with ex-amples for the Porgy’s strategy language and the language for rulealgorithm and conditions. Porgy is a visual, interactive modelling tool based on port graph rewriting. In Porgy, system states are represented by port graphs, and the dynamic evolution of the system is defined via port graph rewrite rules. Strategy expressions are used to control the application of rules, more precisely, strategy expressions indicate both the rule to be applied at each step in a rewriting derivation, and the position in the graph where the rule is applied (the latter is done via focusing constructs). Some of the strategy constructs are strongly inspired from term rewriting languages such as Elan [Borovansk´yBorovansk´y et al., 1998], Stratego [Visser, 2001] and Tom [Balland et al., 2007]. Focusing operators are not present in term rewriting languages (although they rely on implicit traversal strategies). The direct management of positions in strategy expressions, via the distinguished position and banned subgraphs in the target graph and in a located port graph rewrite rule are original features of the language and are managed using positioning constructs. This document describes the concrete syntax of strategy expressions, explains how the different kinds of constructs are used, and provides examples
The Dynamic Geometry of Interaction Machine: A Call-by-Need Graph Rewriter
Girard's Geometry of Interaction (GoI), a semantics designed for linear logic
proofs, has been also successfully applied to programming language semantics.
One way is to use abstract machines that pass a token on a fixed graph along a
path indicated by the GoI. These token-passing abstract machines are space
efficient, because they handle duplicated computation by repeating the same
moves of a token on the fixed graph. Although they can be adapted to obtain
sound models with regard to the equational theories of various evaluation
strategies for the lambda calculus, it can be at the expense of significant
time costs. In this paper we show a token-passing abstract machine that can
implement evaluation strategies for the lambda calculus, with certified time
efficiency. Our abstract machine, called the Dynamic GoI Machine (DGoIM),
rewrites the graph to avoid replicating computation, using the token to find
the redexes. The flexibility of interleaving token transitions and graph
rewriting allows the DGoIM to balance the trade-off of space and time costs.
This paper shows that the DGoIM can implement call-by-need evaluation for the
lambda calculus by using a strategy of interleaving token passing with as much
graph rewriting as possible. Our quantitative analysis confirms that the DGoIM
with this strategy of interleaving the two kinds of possible operations on
graphs can be classified as "efficient" following Accattoli's taxonomy of
abstract machines
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
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
Verification of Timed Automata Using Rewrite Rules and Strategies
ELAN is a powerful language and environment for specifying and prototyping
deduction systems in a language based on rewrite rules controlled by
strategies. Timed automata is a class of continuous real-time models of
reactive systems for which efficient model-checking algorithms have been
devised. In this paper, we show that these algorithms can very easily be
prototyped in the ELAN system. This paper argues through this example that
rewriting based systems relying on rules and strategies are a good framework to
prototype, study and test rather efficiently symbolic model-checking
algorithms, i.e. algorithms which involve combination of graph exploration
rules, deduction rules, constraint solving techniques and decision procedures
- …