Affiliation:
1. University of California at San Diego, USA
Abstract
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 empirically demonstrate the viability of our approach by using Parsify to construct parsers for source code drawn from Verilog, SQL, Apache, and Tiger.
Funder
National Science Foundation
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
8 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. A Theorem Proving Approach to Programming Language Semantics;2023 IEEE/ACM 45th International Conference on Software Engineering: Software Engineering Education and Training (ICSE-SEET);2023-05
2. SR-SFLL: Structurally Robust Stripped Functionality Logic Locking;Computer Aided Verification;2023
3. Satisfiability modulo fuzzing: a synergistic combination of SMT solving and fuzzing;Proceedings of the ACM on Programming Languages;2022-10-31
4. HOLL: Program Synthesis for Higher Order Logic Locking;Tools and Algorithms for the Construction and Analysis of Systems;2022
5. Debug-localize-repair: a symbiotic construction for heap manipulations;Formal Methods in System Design;2021-11