FlowCFL: A Framework for Type-based Reachability Analysis in the Presence of Mutable Data

05/13/2020
by   Ana Milanova, et al.
0

Reachability analysis is a fundamental program analysis with a wide variety of applications. We present FlowCFL, a framework for type-based reachability analysis in the presence of mutable data. Interestingly, the underlying semantics of FlowCFL is CFL-reachability. We make three contributions. First, we define a dynamic semantics that captures the notion of flow commonly used in reachability analysis. Second, we establish correctness of CFL-reachability over graphs with inverse edges (inverse edges are necessary for the handling of mutable heap data). Our approach combines CFL-reachability with reference immutability to avoid the addition of certain infeasible inverse edges and we demonstrate empirically that avoiding those edges results in precision improvement. Our formal account of correctness extends to this case as well. Third, we present a type-based reachability analysis and establish equivalence between a certain CFL-reachability analysis and the type-based analysis, thus proving correctness of the type-based analysis.

READ FULL TEXT

Authors

page 1

page 2

page 3

page 4

03/16/2022

On Higher-Order Reachability Games vs May Reachability

We consider the reachability problem for higher-order functional program...
10/01/2019

Optimal Dyck Reachability for Data-Dependence and Alias Analysis

A fundamental algorithmic problem at the heart of static analysis is Dyc...
11/19/2021

Benchmarks of Extended Basis Reachability Graphs

In this note, we want to provide a comparison among the efficiency of di...
04/23/2018

Reachability and Distances under Multiple Changes

Recently it was shown that the transitive closure of a directed graph ca...
10/25/2018

All-Path Reachability Logic

This paper presents a language-independent proof system for reachability...
05/28/2018

Ranking and Repulsing Supermartingales for Reachability in Probabilistic Programs

Computing reachability probabilities is a fundamental problem in the ana...
07/15/2019

A Relational Static Semantics for Call Graph Construction

The problem of resolving virtual method and interface calls in object-or...
This week in AI

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