paper-with-me

Papers

Learning Syntactic Program Transformations from Examples

2016-08-31 · Reudismam Rolim, Gustavo Soares, Loris D'Antoni, Oleksandr Polozov, Sumit Gulwani, Rohit Gheyi, Ryo Suzuki, Bjoern Hartmann

IDEs, such as Visual Studio, automate common transformations, such as Rename and Extract Method refactorings. However, extending these catalogs of transformations is complex and time-consuming. A similar phenomenon appears in intelligent tutoring systems where instructors have to write cumbersome code transformations that describe "common faults" to fix similar student submissions to programming assignments. We present REFAZER, a technique for automatically generating program transformations. REFAZER builds on the observation that code edits performed by developers can be used as examples for learning transformations. Example edits may share the same structure but involve different variables and subexpressions, which must be generalized in a transformation at the right level of abstraction. To learn transformations, REFAZER leverages state-of-the-art programming-by-example methodology using the following key components: (a) a novel domain-specific language (DSL) for describing program transformations, (b) domain-specific deductive algorithms for synthesizing transformations in the DSL, and (c) functions for ranking the synthesized transformations. We instantiate and evaluate REFAZER in two domains. First, given examples of edits used by students to fix incorrect programming assignment submissions, we learn transformations that can fix other students' submissions with similar faults. In our evaluation conducted on 4 programming tasks performed by 720 students, our technique helped to fix incorrect submissions for 87% of the students. In the second domain, we use repetitive edits applied by developers to the same project to synthesize a program transformation that applies these edits to other locations in the code. In our evaluation conducted on 59 scenarios of repetitive edits taken from 3 C# open-source projects, REFAZER learns the intended program transformation in 83% of the cases.

📄 PDF Abstract BibTeX arXiv:1608.09000

Code (0)

등록된 구현이 없습니다.

Similar Papers 제목 키워드 기반

Learning programs by learning from failures

2020-05-05 · Andrew Cropper, Rolf Morel

We describe an inductive logic programming (ILP) approach called learning from failures. In this approach, an ILP system (the learner) decomposes the learning problem into three separate stages: generate, test, and const…

Inductive logic programming

Syntactic Data Augmentation Increases Robustness to Inference Heuristics

2020-04-24 · ACL 2020 6 · Junghyun Min, R. Thomas McCoy, Dipanjan Das, Emily Pitler 외

Pretrained neural models such as BERT, when fine-tuned to perform natural language inference (NLI), often show high accuracy on standard datasets, but display a surprising lack of sensitivity to word order on controlled …

Data AugmentationNatural Language InferenceSensitivity

Towards Generating Explanations for ASP-Based Link Analysis using Declarative Program Transformations

2019-09-08 · Martin Atzmueller, Cicek Güven, Dietmar Seipel

The explication and the generation of explanations are prominent topics in artificial intelligence and data science, in order to make methods and systems more transparent and understandable for humans. This paper investi…

Link PredictionPrediction

Adversarial Example Generation with Syntactically Controlled Paraphrase Networks

2018-04-17 · NAACL 2018 6 · Mohit Iyyer, John Wieting, Kevin Gimpel, Luke Zettlemoyer

We propose syntactically controlled paraphrase networks (SCPNs) and use them to generate adversarial examples. Given a sentence and a target syntactic form (e.g., a constituency parse), SCPNs are trained to produce a par…

DecoderSentence

Technical Report: Giving Hints for Logic Programming Examples without Revealing Solutions

2016-07-26 · Gokhan Avci, Mustafa Mehuljic, Peter Schüller

We introduce a framework for supporting learning to program in the paradigm of Answer Set Programming (ASP), which is a declarative logic programming formalism. Based on the idea of teaching by asking the student to comp…