Improving the GP 2 Compiler

02/07/2020
by   Graham Campbell, et al.
0

GP 2 is an experimental programming language based on graph transformation rules which aims to facilitate program analysis and verification. Writing efficient programs in such a language is hard because graph matching is expensive, however GP 2 addresses this problem by providing rooted rules which, under mild conditions, can be matched in constant time using the GP 2 to C compiler. In this report, we document various improvements made to the compiler; most notably the introduction of node lists to improve iteration performance for destructive programs, meaning that binary DAG recognition by reduction need only take linear time where the previous implementation required quadratic time.

READ FULL TEXT

Authors

page 1

page 2

page 3

page 4

10/06/2020

The Improved GP 2 Compiler

GP 2 is a rule-based programming language based on graph transformation ...
12/21/2020

Fast Rule-Based Graph Programs

Implementing graph algorithms efficiently in a rule-based language is ch...
05/06/2020

Sparktope: linear programs from algorithms

In a recent paper Avis, Bremner, Tiwary and Watanabe gave a method for c...
12/03/2020

A Fast Graph Program for Computing Minimum Spanning Trees

When using graph transformation rules to implement graph algorithms, a c...
12/03/2020

Verifying Graph Programs with First-Order Logic

We consider Hoare-style verification for the graph programming language ...
10/27/2020

Verifying Graph Programs with First-Order Logic (Extended Version)

We consider Hoare-style verification for the graph programming language ...
02/16/2018

Compositional Verification of Compiler Optimisations on Relaxed Memory

A valid compiler optimisation transforms a block in a program without in...
This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.