ASE 2024
Sun 27 October - Fri 1 November 2024 Sacramento, California, United States

As an artifact, we present flowR alongside its Visual Studio Code extension. flowR is a static dataflow analyzer for the R programming language, including a program slicer that reduces a program to just the parts relevant to the value of a variable at a given point in the program. As a tool, flowR currently has two main use cases: (1) Support Program Comprehension Consider yourself to be in the position of a reviewer who has to understand an existing R program. Chances are, that the script will not run as-is or that it does many things and is too large to be comprehended at once. In such a scenario a program slicer like flowR can help to understand the program by only looking at a singular calculation. For example, everything relevant to create a single plot. (2) Support new static analyses flowR provides full access to the calculated dataflow graph, as well as a normalized version of the abstract syntax tree of a given R program. This graph can be used to implement new static analyses on top of it. For example, to write better linting rules, find vulnerabilities or find performance bottlenecks.

The base paper is available at (until publication): https://drive.google.com/file/d/1IzA6oAjHnJguAKlieKYUrgSDXfc4vXmp/view?usp=sharing

The artifact is persisted at: https://zenodo.org/doi/10.5281/zenodo.13321090