kirancodes.me
To Proof Maintenance & Beyond!

Learning Highly Recursive Input Grammars

Neil Kulkarni, Caroline Lemieux, Koushik Sen

Abstract

This paper presents Arvada, an algorithm for learning context-free grammars from a set of positive examples and a Boolean-valued oracle. Arvada learns a context-free grammar by building parse trees from the positive examples. Starting from initially flat trees, Arvada builds structure to these trees with a key operation: it bubbles sequences of sibling nodes in the trees into a new node, adding a layer of indirection to the tree. Bubbling operations enable recursive generalization in the learned grammar. We evaluate Arvada against GLADE and find it achieves on average increases of 4.98× in recall and 3.13× in F1 score, while incurring only a 1.27× slowdown and requiring only 0.87× as many calls to the oracle. Arvada has a particularly marked improvement over GLADE on grammars with highly recursive structure, like those of programming languages.

BibTeX
@inproceedings{Kulkarni-al:ASE21,
  author    = {Neil Kulkarni and
               Caroline Lemieux and
               Koushik Sen},
  title     = {Learning Highly Recursive Input Grammars},
  booktitle = {ASE},
  pages     = {456--467},
  publisher = {{IEEE}},
  year      = {2021},
}

Related papers