English
Related papers

Related papers: Data-Driven Program Completion

200 papers

The automatic generation of computer programs is one of the main applications with practical relevance in the field of evolutionary computation. With program synthesis techniques not only software developers could be supported in their…

Neural and Evolutionary Computing · Computer Science 2021-08-30 Dominik Sobania , Dirk Schweim , Franz Rothlauf

The rise of capabilities expressed by large language models has been quickly followed by the integration of the same complex systems into application level logic. Algorithms, programs, systems, and companies are built around structured…

Software Engineering · Computer Science 2024-02-28 Kaiser Pister , Dhruba Jyoti Paul , Patrick Brophy , Ishan Joshi

We present DAPIP, a Programming-By-Example system that learns to program with APIs to perform data transformation tasks. We design a domain-specific language (DSL) that allows for arbitrary concatenations of API outputs and constant…

Artificial Intelligence · Computer Science 2017-04-17 Surya Bhupatiraju , Rishabh Singh , Abdel-rahman Mohamed , Pushmeet Kohli

Static program analysis tools are often required to work with only a small part of a program's source code, either due to the unavailability of the entire program or the lack of need to analyze the complete code. This makes it challenging…

Programming Languages · Computer Science 2020-09-14 Piyush Gupta , Nikita Mehrotra , Rahul Purandare

Program slicing is a technique for simplifying programs by focusing on selected aspects of their behaviour. Current mainstream static slicing methods operate on the PDG (program dependence graph) or SDG (system dependence graph), but these…

Programming Languages · Computer Science 2019-03-14 Yingzhou Zhang

Splitting a logic program allows us to reduce the task of computing its stable models to similar tasks for its subprograms. This can be used to increase solving performance and prove program correctness. We generalize the conditions under…

Artificial Intelligence · Computer Science 2025-03-30 Jorge Fandinno , Yuliya Lierler

We present a new domain-agnostic synthesis technique for generating programs from input-output examples. Our method, called metric program synthesis, relaxes the well-known observational equivalence idea (used widely in bottom-up…

Programming Languages · Computer Science 2022-10-12 John Feser , Isil Dillig , Armando Solar-Lezama

This work introduces (1) a technique that allows large language models (LLMs) to leverage user-provided code when solving programming tasks and (2) a method to iteratively generate modular sub-functions that can aid future code generation…

Machine Learning · Computer Science 2023-12-05 Patrick Hajali , Ignas Budvytis

This paper presents an automated method for classifying source code changes during the software development process based on clustering of change metrics. The method consists of two steps: clustering of metric vectors computed for each code…

Software Engineering · Computer Science 2026-02-17 Evgenii Kniazev

Programming by example is the problem of synthesizing a program from a small set of input / output pairs. Recent works applying machine learning methods to this task show promise, but are typically reliant on generating synthetic examples…

Machine Learning · Computer Science 2019-11-11 Judith Clymo , Haik Manukian , Nathanaël Fijalkow , Adrià Gascón , Brooks Paige

When comprehending code, a helping hand may come from the natural language comments documenting it that, unfortunately, are not always there. To support developers in such a scenario, several techniques have been presented to automatically…

Software Engineering · Computer Science 2024-02-02 Antonio Mastropaolo , Matteo Ciniselli , Luca Pascarella , Rosalia Tufano , Emad Aghajani , Gabriele Bavota

The goal of inductive program synthesis is for a machine to automatically generate a program from user-supplied examples. A key underlying assumption is that humans can provide sufficient examples to teach a concept to a machine. To…

Human-Computer Interaction · Computer Science 2025-02-18 Céline Hocquette , Johannes Langer , Andrew Cropper , Ute Schmid

The automatic generation of source code is one of the long-lasting dreams in software engineering research. Several techniques have been proposed to speed up the writing of new code. For example, code completion techniques can recommend to…

Software Engineering · Computer Science 2023-02-09 Matteo Ciniselli , Luca Pascarella , Emad Aghajani , Simone Scalabrino , Rocco Oliveto , Gabriele Bavota

To refactor already working code while keeping reliability, compatibility and perhaps security, we can borrow ideas from micropass/nanopass compilers. By treating the procedure of software refactoring as composing code transformations, and…

Software Engineering · Computer Science 2023-08-15 Yu Liu

Program synthesis aims to {\it automatically} find programs from an underlying programming language that satisfy a given specification. While this has the potential to revolutionize computing, how to search over the vast space of programs…

Neural and Evolutionary Computing · Computer Science 2022-03-01 Yuan Yuan , Wolfgang Banzhaf

We consider the problem of synthesizing a program given a probabilistic specification of its desired behavior. Specifically, we study the recent paradigm of distribution-guided inductive synthesis (DIGITS), which iteratively calls a…

Programming Languages · Computer Science 2019-05-22 Samuel Drews , Aws Albarghouthi , Loris D'Antoni

Compiler optimization decisions are often based on hand-crafted heuristics centered around a few established benchmark suites. Alternatively, they can be learned from feature and performance data produced during compilation. However,…

Programming Languages · Computer Science 2022-06-29 Raphael Mosaner , David Leopoldseder , Wolfgang Kisling , Lukas Stadler , Hanspeter Mössenböck

We present a new approach to example-guided program synthesis based on counterexample-guided abstraction refinement. Our method uses the abstract semantics of the underlying DSL to find a program $P$ whose abstract behavior satisfies the…

Programming Languages · Computer Science 2017-10-24 Xinyu Wang , Isil Dillig , Rishabh Singh

The Java Stream API, introduced in Java 8, makes data processing more expressive and concise compared to imperative loops. However, this abstraction can come with significant performance overhead, often due to the creation of multiple…

Programming Languages · Computer Science 2026-05-05 Yegor Bugayenko , Maxim Trunnikov , Vladimir Zakharov

Context: Code refactoring is widely recognized as an essential software engineering practice that improves the understandability and maintainability of source code. Several studies attempted to detect refactoring activities through mining…

Software Engineering · Computer Science 2025-02-07 Eman Abdullah AlOmar