English
Related papers

Related papers: Concise Read-Only Specifications for Better Synthe…

200 papers

In recent years, domain-specific accelerators (DSAs) have gained popularity for applications such as deep learning and autonomous driving. To facilitate DSA designs, programmers use high-level synthesis (HLS) to compile a high-level…

Machine Learning · Computer Science 2024-07-19 Zongyue Qin , Yunsheng Bai , Atefeh Sohrabizadeh , Zijian Ding , Ziniu Hu , Yizhou Sun , Jason Cong

Program synthesis of general-purpose source code from natural language specifications is challenging due to the need to reason about high-level patterns in the target program and low-level implementation details at the same time. In this…

Machine Learning · Computer Science 2019-11-06 Richard Shin , Miltiadis Allamanis , Marc Brockschmidt , Oleksandr Polozov

This paper develops a new framework for program synthesis, called semantics-guided synthesis (SemGuS), that allows a user to provide both the syntax and the semantics for the constructs in the language. SemGuS accepts a recursively defined…

Programming Languages · Computer Science 2020-11-12 Jinwoo Kim , Qinheping Hu , Loris D'Antoni , Thomas Reps

High-Level Synthesis (HLS) frameworks allow to easily specify a large number of variants of the same hardware design by only acting on optimization directives. Nonetheless, the hardware synthesis of implementations for all possible…

Hardware Architecture · Computer Science 2021-01-05 Lorenzo Ferretti , Jihye Kwon , Giovanni Ansaloni , Giuseppe Di Guglielmo , Luca Carloni , Laura Pozzi

Pointer analysis is a fundamental static program analysis for computing the set of objects that an expression can refer to. Decades of research has gone into developing methods of varying precision and efficiency for pointer analysis for…

Programming Languages · Computer Science 2021-10-07 K. Tuncay Tekle , Yanhong A. Liu

Synthesizing programs from examples requires searching over a vast, combinatorial space of possible programs. In this search process, a key challenge is representing the behavior of a partially written program before it can be executed, to…

Programming Languages · Computer Science 2021-04-21 Maxwell Nye , Yewen Pu , Matthew Bowers , Jacob Andreas , Joshua B. Tenenbaum , Armando Solar-Lezama

While deep learning approaches to information extraction have had many successes, they can be difficult to augment or maintain as needs shift. Rule-based methods, on the other hand, can be more easily modified. However, crafting rules…

Computation and Language · Computer Science 2022-02-02 Robert Vacareanu , Marco A. Valenzuela-Escarcega , George C. G. Barbosa , Rebecca Sharp , Mihai Surdeanu

Program verification is a formal technique to rigorously ensure the correctness and fault-freeness of software systems. However, constructing comprehensive interprocedural specifications for full verification obligations is time-consuming…

Software Engineering · Computer Science 2026-04-24 Lezhi Ma , Shangqing Liu , Yi Li , Qiong Wu , Han Wang , Lei Bu

We present a method for synthesizing recursive functions that satisfy both a functional specification and an asymptotic resource bound. Prior methods for synthesis with a resource metric require the user to specify a concrete expression…

Programming Languages · Computer Science 2021-05-27 Qinheping Hu , John Cyphert , Loris D'Antoni , Thomas Reps

High-level synthesis (HLS) is a process that automatically translates a software program in a high-level language into a low-level hardware description. However, the hardware designs produced by HLS tools still suffer from a significant…

Programming Languages · Computer Science 2023-08-16 Jianyi Cheng , Samuel Coward , Lorenzo Chelini , Rafael Barbalho , Theo Drane

Temporal logics are powerful tools that are widely used for the synthesis and verification of reactive systems. The recent progress on Large Language Models (LLMs) has the potential to make the process of writing such specifications more…

Machine Learning · Computer Science 2024-06-12 William Murphy , Nikolaus Holzer , Nathan Koenig , Leyi Cui , Raven Rothkopf , Feitong Qiao , Mark Santolucito

We present a neural program synthesis approach integrating components which write, execute, and assess code to navigate the search space of possible programs. We equip the search process with an interpreter or a read-eval-print-loop (REPL),…

Programming Languages · Computer Science 2019-06-12 Kevin Ellis , Maxwell Nye , Yewen Pu , Felix Sosa , Josh Tenenbaum , Armando Solar-Lezama

The globalization of the electronics supply chain requires effective methods to thwart reverse engineering and IP theft. Logic locking is a promising solution, but there are many open concerns. First, even when applied at a higher level of…

Hardware Architecture · Computer Science 2022-06-08 Christian Pilato , Luca Collini , Luca Cassano , Donatella Sciuto , Siddharth Garg , Ramesh Karri

Temporal synthesis is the automated design of a system that interacts with an environment, using the declarative specification of the system's behavior. A popular language for providing such a specification is Linear Temporal Logic, or LTL.…

Logic in Computer Science · Computer Science 2020-08-18 Shufang Zhu , Lucas M. Tabajara , Jianwen Li , Geguang Pu , Moshe Y. Vardi

Proving only over source code that programs do not leak sensitive data leaves a gap between reasoning and reality that can only be filled by accounting for the behaviour of the compiler. Furthermore, software does not always have the luxury…

Programming Languages · Computer Science 2023-06-22 Robert Sison , Toby Murray

LambdaBeam is a state-of-the-art, execution-guided algorithm for program synthesis that utilizes higher-order functions, lambda functions, and iterative loops within a Domain-Specific Language (DSL). LambdaBeam generates each program from…

Software Engineering · Computer Science 2024-09-13 Janis Zenkner , Lukas Dierkes , Tobias Sesterhenn , Chrisitan Bartelt

A growing trend in program analysis is to encode verification conditions within the language of the input program. This simplifies the design of analysis tools by utilizing off-the-shelf verifiers, but makes communication with the…

Software Engineering · Computer Science 2024-07-12 Scott Wesley , Maria Christakis , Jorge A. Navas , Richard Trefler , Valentin Wüstholz , Arie Gurfinkel

A key challenge in program synthesis is the astronomical size of the search space the synthesizer has to explore. In response to this challenge, recent work proposed to guide synthesis using learned probabilistic models. Obtaining such a…

Programming Languages · Computer Science 2020-10-20 Shraddha Barke , Hila Peleg , Nadia Polikarpova

Large language models can generate plausible code, but remain brittle for formal verification in proof assistants such as Lean. A central scalability challenge is that verified synthesis requires consistent artifacts across several coupled…

Machine Learning · Computer Science 2026-05-15 Robert Joseph George , Carson Eisenach , Udaya Ghai , Dominique Perrault-Joncas , Anima Anandkumar , Dean Foster

The determination of block-entropies is a well established method for the investigation of discrete data, also called symbols (7). There is a large variety of such symbolic sequences, ranging from texts written in natural languages,…

Disordered Systems and Neural Networks · Physics 2007-05-23 Miguel Angel Jimenez-Montano , Werner Ebeling , Thorsten Poeschel