One Down, 699 to Go: or, synthesising compositional desugarings
S\'andor Bartha, James Cheney, Vaishak Belle

TL;DR
This paper presents a formal framework for incrementally learning desugaring rules in programming languages, enabling automated synthesis of semantics with practical success on complex language features.
Contribution
It formalizes an incremental learning approach for desugaring rules, extending previous methods to handle larger language features feasibly.
Findings
Successfully learned core language desugaring rules
Extended the search space to include complex rules
Demonstrated practical synthesis with user guidance
Abstract
Programming or scripting languages used in real-world systems are seldom designed with a formal semantics in mind from the outset. Therefore, developing well-founded analysis tools for these systems requires reverse-engineering a formal semantics as a first step. This can take months or years of effort. Can we (at least partially) automate this process? Though desirable, automatically reverse-engineering semantics rules from an implementation is very challenging, as found by Krishnamurthi et al. [2019]. In this paper, we highlight that scaling methods with the size of the language is very difficult due to state space explosion, so we propose to learn semantics incrementally. We give a formalisation of Krishnamurthi et al.'s desugaring learning framework in order to clarify the assumptions necessary for an incremental learning algorithm to be feasible. We show that this reformulation…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Software Testing and Debugging Techniques · Software System Performance and Reliability
