Download PDFOpen PDF in browser

Cauliflower: a Solver Generator for Context-Free Language Reachability

10 pagesPublished: May 4, 2017

Abstract

Context-free language reachability (CFL-R) is a fundamental solving vehicle for computing essential compiler optimisations and static program analyses. Unfortunately, solvers for CFL- R encounter both inherently expensive problem formulations and frequent alterations to the underlying formalism. As such, tool designers are forced to create custom-tailored implementations with long development times and limited reusability. A better framework is crucial to facilitate research and development in CFL-R.
In this work we present Cauliflower, a CFL-R solver generator, that creates parallel executable C++ code from an input CFL-R rule-based specification. With Cauliflower, developers create working tools rapidly, avoiding lengthy and error-prone manual implementations. Cauliflower’s domain-specific language provides semantic extension including reversal, branch- ing, disconnection and templating. In practical experiments, Cauliflower achieves an average speedup of 1.8x compared with the best general purpose tools, and matches the performance of application-specific tools on many benchmarks.

Keyphrases: context free languages, graph reachability, program analysis

In: Thomas Eiter and David Sands (editors). LPAR-21. 21st International Conference on Logic for Programming, Artificial Intelligence and Reasoning, vol 46, pages 171-180.

BibTeX entry
@inproceedings{LPAR-21:Cauliflower_Solver_Generator_Context,
  author    = {Nicholas Hollingum and Bernhard Scholz},
  title     = {Cauliflower: a Solver Generator for Context-Free Language Reachability},
  booktitle = {LPAR-21. 21st International Conference on Logic for Programming, Artificial Intelligence and Reasoning},
  editor    = {Thomas Eiter and David Sands},
  series    = {EPiC Series in Computing},
  volume    = {46},
  publisher = {EasyChair},
  bibsource = {EasyChair, https://easychair.org},
  issn      = {2398-7340},
  url       = {/publications/paper/bnVq},
  doi       = {10.29007/tbm7},
  pages     = {171-180},
  year      = {2017}}
Download PDFOpen PDF in browser