English
Related papers

Related papers: Going Bananas! - Unfolding Program Synthesis with …

200 papers

This article presents resource-guided synthesis, a technique for synthesizing recursive programs that satisfy both a functional specification and a symbolic resource bound. The technique is type-directed and rests upon a novel type system…

Programming Languages · Computer Science 2019-04-19 Tristan Knoth , Di Wang , Nadia Polikarpova , Jan Hoffmann

We study the problem of developing efficient approaches for proving worst-case bounds of non-deterministic recursive programs. Ranking functions are sound and complete for proving termination and worst-case bounds of nonrecursive programs.…

Programming Languages · Computer Science 2017-05-02 Krishnendu Chatterjee , Hongfei Fu , Amir Kafshdar Goharshady

We present the first technique to synthesize programs that compose side-effecting functions, pure functions, and control flow, from partial traces containing records of only the side-effecting functions. This technique can be applied to…

Programming Languages · Computer Science 2025-06-11 Margarida Ferreira , Victor Nicolet , Joey Dodds , Daniel Kroening

Numerous challenges in science and engineering can be framed as optimization tasks, including the maximization of reaction yields, the optimization of molecular and materials properties, and the fine-tuning of automated hardware protocols.…

Optimization and Control · Mathematics 2021-11-19 Matteo Aldeghi , Florian Häse , Riley J. Hickman , Isaac Tamblyn , Alán Aspuru-Guzik

Optimizing programs requires deep expertise. On one hand, it is a tedious task, because it requires a lot of tests to find out the best combination of optimizations to apply with their best factors. On the other hand, this task is critical,…

Distributed, Parallel, and Cluster Computing · Computer Science 2019-11-12 Asma Balamane , Zina Taklit

This paper presents an approach that evaluates best-first search methods to code refactoring. The motivation for code refactoring could be to improve the design, structure, or implementation of an existing program without changing its…

Software Engineering · Computer Science 2023-05-15 Sourena Khanzadeh , Samad Alias Nyein Chan , Richard Valenzano , Manar Alalfi

Generating effective test inputs for a software system requires that these inputs be valid, as they will otherwise be rejected without reaching actual functionality. In the absence of a specification for the input language, common test…

Software Engineering · Computer Science 2025-03-12 Leon Bettscheider , Andreas Zeller

Retrieval-Augmented Generation (RAG) has become a standard approach for knowledge-intensive question answering, but existing systems remain brittle on multi-hop questions, where solving the task requires chaining multiple retrieval and…

Optimization-based solvers play a central role in a wide range of signal processing and communication tasks. However, their applicability in latency-sensitive systems is limited by the sequential nature of iterative methods and the high…

Signal Processing · Electrical Eng. & Systems 2026-03-12 Dvir Avrahami , Amit Milstein , Caroline Chaux , Tirza Routtenberg , Nir Shlezinger

Many programs that interact with a database need to undergo schema refactoring several times during their life cycle. Since this process typically requires making significant changes to the program's implementation, schema refactoring is…

Programming Languages · Computer Science 2019-04-12 Yuepeng Wang , James Dong , Rushi Shah , Isil Dillig

We first present a simple recursive algorithm that generates cyclic rotation Gray codes for stamp foldings and semi-meanders, where consecutive strings differ by a stamp rotation. These are the first known Gray codes for stamp foldings and…

Data Structures and Algorithms · Computer Science 2024-11-11 Bowie Liu , Dennis Wong , Chan-Tong Lam , Marcus Im

Randomized rounding is a standard method, based on the probabilistic method, for designing combinatorial approximation algorithms. In Raghavan's seminal paper introducing the method (1988), he writes: "The time taken to solve the linear…

Data Structures and Algorithms · Computer Science 2015-06-02 Neal E. Young

In earlier work, we developed a modular approach for automatic complexity analysis of integer programs. However, these integer programs do not allow non-tail recursive calls or subprocedures. In this paper, we consider integer programs with…

Logic in Computer Science · Computer Science 2026-01-07 Nils Lommen , Jürgen Giesl

This paper describes a way to improve the scalability of program synthesis by exploiting modularity: larger programs are synthesized from smaller programs. The key issue is to make each "larger-created-from-smaller" synthesis sub-problem be…

Programming Languages · Computer Science 2023-08-15 Kanghee Park , Keith J. C. Johnson , Loris D'Antoni , Thomas Reps

Creating functions is at the center of writing computer programs. But there has been little empirical research on how this is done and what are the considerations that developers use. We design an experiment in which we can compare the…

Software Engineering · Computer Science 2022-09-05 Alexey Braver , Dror G. Feitelson

Synthesis from examples enables non-expert users to generate programs by specifying examples of their behavior. A domain-specific form of such synthesis has been recently deployed in a widely used spreadsheet software product. In this paper…

Formal Languages and Automata Theory · Computer Science 2017-05-25 Mikaël Mayer , Jad Hamza , Viktor Kuncak

Asynchronous programming is widely adopted for building responsive and efficient software, and modern languages such as C# provide async/await primitives to simplify the use of asynchrony. In this paper, we propose an approach for…

Programming Languages · Computer Science 2022-09-15 Sidi Mohamed Beillahi , Ahmed Bouajjani , Constantin Enea , Shuvendu Lahiri

The unification algorithm has long been a target for program synthesis research, but a fully automatic derivation remains a research goal. In deductive program synthesis, computer programming is phrased as a task in theorem proving; a…

Logic in Computer Science · Computer Science 2025-09-16 Richard Waldinger

Synthesis is the automatic construction of a system from its specification. In classical synthesis algorithms it is always assumed that the system is "constructed from scratch" rather than composed from reusable components. This, of course,…

Logic in Computer Science · Computer Science 2011-11-10 Yoad Lustig , Moshe Vardi

Program synthesis is the task of automatically generating a program consistent with a given specification. A natural way to specify programs is to provide examples of desired input-output behavior, and many current program synthesis…

Machine Learning · Computer Science 2020-07-28 Alexander Suh , Yuval Timen