Overlaying Control Flow Graphs on P4 Syntax Trees with Gremlin

Keywords: control flow graph, static analysis, P4, Gremlin, graph database, proof of correctness

Abstract

Our overall research aim is to statically derive execution cost and other metrics from program code written in the P4 programming language. For this purpose, we extract a detailed control flow graph (CFG) from the code, that can be turned into a full, formal model of execution, to extract properties -- such as execution cost -- from the model. While CFG extraction and analysis is well researched area, details are dependent on code representation and therefore application of textbook algorithms (often defined over unstructured code listings) to real programming languages is often non-trivial. Our aim is to present an algorithm for CFG extraction over P4 abstract syntax trees (AST). During the extraction we create direct links between nodes of the CFG and the P4 AST: this way we can access all information in the P4 AST during CFG traversal. We are utilizing Gremlin, a graph query language to take advantage of graph databases, but also for compactness and to formally prove algorithm correctness.

Downloads

Download data is not yet available.
Published
2024-03-04
How to Cite
Lukács, D., & Tejfel, M. (2024). Overlaying Control Flow Graphs on P4 Syntax Trees with Gremlin. Acta Cybernetica, 26(3), 593-619. https://doi.org/10.14232/actacyb.298770
Section
Special Issue of the 13th Conference of PhD Students in Computer Science