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 Jun Times are displayed in time zone: Tijuana, Baja California change
16:00 - 17:40: PotpourriResearch Papers at PLDI Main RED (Portland 256) Chair(s): Tiark RompfPurdue & Oracle Labs | |||
16:00 - 16:25 Talk | Zero-Overhead Metaprogramming: Reflection and Metaobject Protocols Fast and without Compromises Research Papers Stefan MarrInria, France, Chris SeatonOracle Labs / University of Manchester, Stéphane Ducasse INRIA Lille Media Attached | ||
16:25 - 16:50 Talk | Finding Counterexamples from Parsing Conflicts Research Papers Media Attached | ||
16:50 - 17:15 Talk | Interactive Parser Synthesis by Example Research Papers Alan LeungUniversity of California, San Diego, John SarracinoUniversity of California, San Diego, Sorin LernerUniversity of California, San Diego Media Attached | ||
17:15 - 17:40 Talk | A Simpler, Safer Programming and Execution Model for Intermittent Systems Research Papers Media Attached |