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
16:00 - 17:40: Research Papers - Potpourri at PLDI Main RED (Portland 256) Chair(s): Tiark RompfPurdue & Oracle Labs | ||||||||||||||||||||||||||||||||||||||||||
16:00 - 16:25 Talk | Stefan MarrInria, France, Chris SeatonOracle Labs / University of Manchester, Stéphane Ducasse INRIA Lille Media Attached | |||||||||||||||||||||||||||||||||||||||||
16:25 - 16:50 Talk | Media Attached | |||||||||||||||||||||||||||||||||||||||||
16:50 - 17:15 Talk | 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 | Media Attached |