Automating grammar comparison
-
Published:2015-12-18
Issue:10
Volume:50
Page:183-200
-
ISSN:0362-1340
-
Container-title:ACM SIGPLAN Notices
-
language:en
-
Short-container-title:SIGPLAN Not.
Author:
Madhavan Ravichandhran1,
Mayer Mikaël1,
Gulwani Sumit2,
Kuncak Viktor1
Affiliation:
1. EPFL, Switzerland
2. Microsoft Research, USA
Abstract
We consider from a practical perspective the problem of checking equivalence of context-free grammars. We present techniques for proving equivalence, as well as techniques for finding counter-examples that establish non-equivalence. Among the key building blocks of our approach is a novel algorithm for efficiently enumerating and sampling words and parse trees from arbitrary context-free grammars; the algorithm supports polynomial time random access to words belonging to the grammar. Furthermore, we propose an algorithm for proving equivalence of context-free grammars that is complete for LL grammars, yet can be invoked on any context-free grammar, including ambiguous grammars. Our techniques successfully find discrepancies between different syntax specifications of several real-world languages, and are capable of detecting fine-grained incremental modifications performed on grammars. Our evaluation shows that our tool improves significantly on the existing available state of the art tools. In addition, we used these algorithms to develop an online tutoring system for grammars that we then used in an undergraduate course on computer language processing. On questions involving grammar constructions, our system was able to automatically evaluate the correctness of 95% of the solutions submitted by students: it disproved 74% of cases and proved 21% of them.
Funder
European Research Council
Schweizerische Nationalfonds zur Förderung der Wissenschaftlichen Forschung
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Reference35 articles.
1. Antlr version 4. http://www.antlr.org/. Antlr version 4. http://www.antlr.org/.
2. Java 7 language specification. http://docs.oracle.com/ javase/specs/jls/se7/html/jls-18.html. Java 7 language specification. http://docs.oracle.com/ javase/specs/jls/se7/html/jls-18.html.
3. Analyzing Context-Free Grammars Using an Incremental SAT Solver
4. . URL http://dx.doi.org/10.1007/ 978-3-540-70583-3_34. . URL http://dx.doi.org/10.1007/ 978-3-540-70583-3_34.
Cited by
1 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Verifying correct usage of context-free API protocols;Proceedings of the ACM on Programming Languages;2021-01-04