Overlaying Control Flow Graphs on P4 Syntax Trees with Gremlin

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...

Full description

Saved in:
Bibliographic Details
Published inActa cybernetica (Szeged) Vol. 26; no. 3; pp. 593 - 619
Main Authors Lukács, Dániel, Tejfel, Máté
Format Journal Article
LanguageEnglish
Published Szeged Laszlo Nyul 01.07.2024
Subjects
Online AccessGet full text

Cover

Loading…
More Information
Summary: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.
ISSN:0324-721X
2676-993X
DOI:10.14232/actacyb.298770