My research is based on developing GP 2, a rule-based graph programming language that frees the programmer from low-level data structures for graphs. The input of a GP 2 program is a host graph, and is changed using rules that search for a specific subgraph and transform it. The rules are organised using different control flow structures. There is a C compiler for this high-level language.
Computing with Graph Transformation is generally slow due to graph matching, which can be high-degree polynomial. My aim is to refine GP 2 programs into more efficient ones using roots for instance. Roots are special nodes that, locally, allow for constant time graph matching. Roots have previously led to a 2-colouring program compiled to C that matches the speed of tailor-made C programs.
I’ve been a teaching assistant in several undergraduate Computer Science modules. This involves demonstrating in problem classes and marking.
Email: bc956 at york.ac.uk