The Improved GP 2 Compiler

10/06/2020
by   Graham Campbell, et al.
0

GP 2 is a rule-based programming language based on graph transformation rules which aims to facilitate program analysis and verification. Writing efficient programs in such a language is challenging because graph matching is expensive. GP 2 addresses this problem by providing rooted rules which, under mild conditions, can be matched in constant time. Recently, we implemented a number of changes to Bak's GP 2-to-C compiler in order to speed up graph programs. One key improvement is a new data structure for dynamic arrays called BigArray. This is an array of pointers to arrays of entries, successively doubling in size. To demonstrate the speed-up achievable with the new implementation, we present a reduction program for recognising binary DAGs which previously ran in quadratic time but now runs in linear time when compiled with the new compiler.

READ FULL TEXT

Authors

page 1

page 2

page 3

page 4

02/07/2020

Improving the GP 2 Compiler

GP 2 is an experimental programming language based on graph transformati...
12/21/2020

Fast Rule-Based Graph Programs

Implementing graph algorithms efficiently in a rule-based language is ch...
12/03/2020

A Fast Graph Program for Computing Minimum Spanning Trees

When using graph transformation rules to implement graph algorithms, a c...
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

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 ...
09/09/2019

Structural and semantic pattern matching analysis in Haskell

Haskell functions are defined as a series of clauses consisting of patte...
This week in AI

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