Despite decades of research on parsing, the construction of parsers remains a painstaking, manual process prone to subtle bugs and pitfalls. We present a programming-by-example framework called Parsify that is able to synthesize a parser from input/output examples. The user does not write a single line of code. To achieve this, Parsify provides: (a) an iterative algorithm for synthesizing and refining a grammar one example at a time, (b) an interface that provides immediate visual feedback in response to changes in the grammar being refined, and (c) a graphical mechanism for specifying example parse trees using only textual selections. We empically demonstrate the viability of our approach by using Parsify to construct parsers for source code drawn from Verilog, SQL, Apache, and Tiger – each with fewer than 400 UI interactions.
Wed 17 JunDisplayed time zone: Tijuana, Baja California change
16:00 - 17:40 | |||
16:00 25mTalk | Zero-Overhead Metaprogramming: Reflection and Metaobject Protocols Fast and without Compromises Research Papers Stefan Marr Inria, France, Chris Seaton Oracle Labs / University of Manchester, Stéphane Ducasse INRIA Lille Media Attached | ||
16:25 25mTalk | Finding Counterexamples from Parsing Conflicts Research Papers Media Attached | ||
16:50 25mTalk | Interactive Parser Synthesis by Example Research Papers Alan Leung University of California, San Diego, John Sarracino University of California, San Diego, Sorin Lerner University of California, San Diego Media Attached | ||
17:15 25mTalk | A Simpler, Safer Programming and Execution Model for Intermittent Systems Research Papers Media Attached |