A linear-time complexity algorithm for solving the Dyck-CFL reachability problem on bi-directed trees

Today many bug detecting tools use static program analysis techniques to discover the vulnerabilities in programs, and many static program analyses can be converted to CFL (Context-Free-Language) reachability problems, most of which are Dyck-CFL reachability problems, a particular class of CFL reachability problems based on Dyck languages. In order to speed up the static analyses formulated using the Dyck-CFL reachability problems, we propose an efficient algorithm of O(n) time for the Dyck-CFL reachability problem when the graph considered is a bidirected tree with specific constraints, while a naïve algorithm runs in O(n2) time. This is done by the bidirected-tree merging and an efficient method to determine the existence of the directed-path from the source to the destination.

[1]  Patrick Th. Eugster,et al.  An Efficient Algorithm for Solving the Dyck-CFL Reachability Problem on Trees , 2009, ESOP.

[2]  Michael A. Bender,et al.  The LCA Problem Revisited , 2000, LATIN.

[3]  Rajeev Alur,et al.  Analysis of recursive state machines , 2001, TOPL.

[4]  Thomas W. Reps,et al.  Interconvertibility of a class of set constraints and context-free-language reachability , 2000, Theor. Comput. Sci..

[5]  Manu Sridharan,et al.  Refinement-based context-sensitive points-to analysis for Java , 2006, PLDI '06.

[6]  Robert E. Tarjan,et al.  Fast Algorithms for Finding Nearest Common Ancestors , 1984, SIAM J. Comput..

[7]  Thomas W. Reps,et al.  Shape analysis as a generalized path problem , 1995, PEPM '95.

[8]  Alexander Aiken,et al.  The set constraint/CFL reachability connection in practice , 2004, PLDI '04.

[9]  Xin Zheng,et al.  Demand-driven alias analysis for C , 2008, POPL '08.

[10]  David W. Binkley,et al.  Interprocedural slicing using dependence graphs , 1988, SIGP.

[11]  Mihalis Yannakakis,et al.  Graph-theoretic methods in database theory , 1990, PODS.

[12]  Wojciech Rytter,et al.  Fast Recognition of Pushdown Automaton and Context-free Languages , 1986, Inf. Control..

[13]  Wojciech Rytter,et al.  Time Complexity of Loop-Free Two-Way Pushdown Automata , 1983, Information Processing Letters.

[14]  Leslie G. Valiant,et al.  General Context-Free Recognition in Less than Cubic Time , 1975, J. Comput. Syst. Sci..

[15]  Uzi Vishkin,et al.  On Finding Lowest Common Ancestors: Simplification and Parallelization , 1988, AWOC.

[16]  Jakob Rehof,et al.  Type-base flow analysis: from polymorphic subtyping to CFL-reachability , 2001, POPL '01.

[17]  Benjamin Livshits,et al.  Improving software insecurity with precise static and runtime analysis , 2006 .

[18]  Manu Sridharan,et al.  Demand-driven points-to analysis for Java , 2005, OOPSLA '05.

[19]  Javier Esparza,et al.  Reachability Analysis of Pushdown Automata: Application to Model-Checking , 1997, CONCUR.

[20]  Thomas W. Reps,et al.  Precise interprocedural dataflow analysis via graph reachability , 1995, POPL '95.

[21]  Swarat Chaudhuri,et al.  Subcubic algorithms for recursive state machines , 2008, POPL '08.

[22]  David Hovemeyer,et al.  Evaluating and tuning a static analysis to find null pointer bugs , 2005, PASTE '05.

[23]  Thomas W. Reps,et al.  Program analysis via graph reachability , 1997, Inf. Softw. Technol..