About
20
Publications
2,834
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
48
Citations
Introduction
Current institution
Additional affiliations
August 2023 - present
September 2015 - March 2017
September 2015 - March 2024
Publications
Publications (20)
Interaction nets are a form of restricted graph rewrite system that can serve as a graphical or textual programming language. As such, benefits include one-step confluence, ease of parallelism and explicit garbage collection. However, some of these restrictions burden the programmer, so they have been extended in several ways, notably to include da...
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...
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...
The graph rewriting system of interaction nets has been very successful for the implementation of the lambda calculus. In this paper we show how the ideas can be extended and simplified to encode Gödel’s System \(\mathcal {T}\)—the simply typed \(\lambda \)-calculus extended with numbers. Surprisingly, using some results about System \(\mathcal {T}...
Interaction nets are a particular kind of graph rewriting system that have many properties that make them useful for capturing sharing and parallelism. There have been a number of research efforts towards implementing interaction nets in parallel, and these have focused on the implementation technologies. In this paper we investigate a related ques...
To study implementations and optimisations of interaction net systems we
propose a calculus to allow us to reason about nets, a concrete data-structure
that is in close correspondence with the calculus, and a low-level language to
create and manipulate this data structure. These work together so that we can
describe the compilation process for inte...
Full-text is available: https://sro.sussex.ac.uk/id/eprint/54469/
Interaction nets are a particular kind of graph rewriting system that have many properties that make them useful for capturing sharing and parallelism. There have been a number of research efforts towards implementing interaction nets in parallel, and these have focused on the implementation technologies. In this paper we investigate a related ques...
Interaction nets are a particular kind of graph rewriting system that have many properties that make them useful for capturing sharing and parallelism. There have been a number of research efforts towards implementing interaction nets in parallel, and these have focused on the implementation technologies. In this paper we investigate a related ques...
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. W...
We present a new abstract machine for interaction nets and demonstrate that an implementation based on the ideas is significantly more efficient than existing interaction net evaluators. The machine, which is founded on a chemical abstract machine formulation of interaction nets, is a simplification of a previous abstract machine for interaction ne...
We compile functional languages with pattern-matching features into interaction nets, extending the well-known efficient evaluation strategies developed for the pure λ-calculus. We give direct translations of recursion and pattern matching for languages with a strict matching semantics, implementing an evaluation strategy that is natural in interac...
This paper is about a new implementation technique for interaction nets – a visual programming language based on graph rewriting. We compile interaction nets to C, which offers a robust and efficient implementation, in addition to portability. In the presentation of this work we extend the interaction net programming paradigm to introduce a number...
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. W...
Interaction nets are graph rewriting systems which are a generalisation of proof nets for classical linear logic. The linear chemical abstract machine (CHAM) is a term rewriting system which corresponds to classical linear logic, via the Curry-Howard isomorphism. We can obtain a textual calculus for interaction nets which is surprisingly similar to...
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. We propose an extension of Interaction Nets which facilitates nested pattern matching on interaction rules. We then define a practical compilation sch...
This paper presents a compiler for interaction nets, which, just like term rewriting systems, are user-definable rewrite systems which offer the ability to spec- ify and program. In the same way that the l-calculus is the foundation for functional programming, or horn clauses are the foundation for logic programming, we give in this paper an overvi...
Abramsky's Linear Chemical Abstract Machine is a term calculus which corresponds to Linear Logic, via the Curry-Howard isomorphism. We show that the typed λ-calculus is embedded into Linear Chemical Abstract Machine by Girard's embedding of Intuitionistic Logic into Linear Logic. Then we extend our result to a simple functional programming language...
Abramsky’s linear chemical abstract machine is a term calculus which corresponds to linear logic, via the Curry-Howard isomorphism. We show that the typed λ-calculus is embedded into linear chemical abstract machine by Girard’s embedding of intuitionistic logic into linear logic. We give a translation of typable λ-terms into proof expressions and s...