7,238 research outputs found
Interaction nets: programming language design and implementation
This paper presents a compiler for interaction nets, which, just like term rewriting systems, are user-definable rewrite systems which offer the ability to specify and program. In the same way that the lambda-calculus is the foundation for functional programming, or horn clauses are the foundation for logic programming, we give in this paper an overview of a substantial software system that is currently under development to support interaction based computation, and in particular the compilation of interaction nets
Combining interaction nets with externally defined programs
Many calculi, for instance the lambda-calculus and term rewriting systems, have benefitted from extensions, especially to include data structures and operations which are more naturally defined in another language. A simple example of this is PCF where the lambda-calculus is extended to include natural numbers and some basic functions over this type, which avoids having to use inefficient encodings of numbers. In this paper we present a generalization of interaction nets along these lines. We begin by adding a fixed set of constants and predefined functions, before presenting the main contribution of the paper which is a system of interaction nets combined with an external language where functions and richer data types can be defined
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
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
In-place Graph Rewriting with Interaction Nets
An algorithm is in-place, or runs in-situ, when it does not need any
additional memory to execute beyond a small constant amount. There are many
algorithms that are efficient because of this feature, therefore it is an
important aspect of an algorithm. In most programming languages, it is not
obvious when an algorithm can run in-place, and moreover it is often not clear
that the implementation respects that idea. In this paper we study interaction
nets as a formalism where we can see directly, visually, that an algorithm is
in-place, and moreover the implementation will respect that it is in-place. Not
all algorithms can run in-place however. We can nevertheless still use the same
language, but now we can annotate parts of the algorithm that can run in-place.
We suggest an annotation for rules, and give an algorithm to find this
automatically through analysis of the interaction rules.Comment: In Proceedings TERMGRAPH 2016, arXiv:1609.0301
Higher-order port-graph rewriting
The biologically inspired framework of port-graphs has been successfully used
to specify complex systems. It is the basis of the PORGY modelling tool. To
facilitate the specification of proof normalisation procedures via graph
rewriting, in this paper we add higher-order features to the original
port-graph syntax, along with a generalised notion of graph morphism. We
provide a matching algorithm which enables to implement higher-order port-graph
rewriting in PORGY, thus one can visually study the dynamics of the systems
modelled. We illustrate the expressive power of higher-order port-graphs with
examples taken from proof-net reduction systems.Comment: In Proceedings LINEARITY 2012, arXiv:1211.348
Towards a GPU-based implementation of interaction nets
We present ingpu, a GPU-based evaluator for interaction nets that heavily
utilizes their potential for parallel evaluation. We discuss advantages and
challenges of the ongoing implementation of ingpu and compare its performance
to existing interaction nets evaluators.Comment: In Proceedings DCM 2012, arXiv:1403.757
An Implementation of Nested Pattern Matching in Interaction Nets
Reduction rules in interaction nets are constrained to pattern match exactly
one argument at a time. Consequently, a programmer has to introduce auxiliary
rules to perform more sophisticated matches. In this paper, we describe the
design and implementation of a system for interaction nets which allows nested
pattern matching on interaction rules. We achieve a system that provides
convenient ways to express interaction net programs without defining auxiliary
rules
Labelled Lambda-calculi with Explicit Copy and Erase
We present two rewriting systems that define labelled explicit substitution
lambda-calculi. Our work is motivated by the close correspondence between
Levy's labelled lambda-calculus and paths in proof-nets, which played an
important role in the understanding of the Geometry of Interaction. The
structure of the labels in Levy's labelled lambda-calculus relates to the
multiplicative information of paths; the novelty of our work is that we design
labelled explicit substitution calculi that also keep track of exponential
information present in call-by-value and call-by-name translations of the
lambda-calculus into linear logic proof-nets
- …