An Efficient Algorithm for Solving the Dyck-CFL Reachability Problem on Trees

  • Authors:
  • Hao Yuan;Patrick Eugster

  • Affiliations:
  • Department of Computer Science, Purdue University,;Department of Computer Science, Purdue University,

  • Venue:
  • ESOP '09 Proceedings of the 18th European Symposium on Programming Languages and Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

The context-free language (CFL) reachability problem is well known and studied in computer science, as a fundamental problem underlying many important static analyses such as points-to-analysis. Solving the CFL reachability problem in the general case is very hard. Popular solutions resorting to a graph traversal exhibit a time complexity of O (k 3 n 3) for a grammar of size k . For Dyck CFLs, a particular class of CFLs, this complexity can be reduced to O (kn 3). Only recently the first subcubic algorithm was proposed by Chaudhuri, dividing the complexity of predating solutions by a factor of logn . In this paper we propose an effective algorithm for solving the CFL reachability problem for Dyck languages when the considered graph is a bidirected tree with specific constraints. Our solution pre-processes the graph in O (n logn logk ) time in a space of O (n logn ), after which any Dyck-CFL reachability query can be answered in O (1) time, while a naïve online algorithm will require O (n ) time to answer a query or require O (n 2) to store the pre-computed results for all pairs of nodes.