English
Related papers

Related papers: JSKETCH: Sketching for Java

200 papers

Template-based synthesis, also known as sketching, is a localized approach to program synthesis in which the programmer provides not only a specification, but also a high-level ``sketch'' of the program. The sketch is basically a partial…

Programming Languages · Computer Science 2024-03-04 Amir Kafshdar Goharshady , S. Hitarth , Fatemeh Mohammadi , Harshit J Motwani

We propose a novel approach to program synthesis, focusing on synthesizing database queries. At a high level, our proposed algorithm takes as input a sketch with soft constraints encoding user intent, and then iteratively interacts with the…

Programming Languages · Computer Science 2021-10-12 Osbert Bastani , Xin Zhang , Armando Solar-Lezama

JSON (JavaScript Object Notation) is a data encoding that allows structured data to be used in a standardized and straightforward manner across systems. Schemas for JSON-formatted data can be constructed using the JSON Schema standard,…

Programming Languages · Computer Science 2025-08-13 Jack Stanek , Daniel Killough

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

Sketching is an important means of communication in software engineering practice. Yet, there is little research investigating the use of sketches. We want to contribute a better understanding of sketching, in particular its use during…

Software Engineering · Computer Science 2016-12-06 Sebastian Baltes , Stefan Wagner

Sketching and natural languages are effective communication media for interactive applications. We introduce Sketchforme, the first neural-network-based system that can generate sketches based on text descriptions specified by users.…

Human-Computer Interaction · Computer Science 2019-04-10 Forrest Huang , John F. Canny

This paper introduces the Java Software Evolution Tracker, a visualization and analysis tool that provides practitioners the means to examine the evolution of a software system from a top to bottom perspective, starting with changes in the…

Software Engineering · Computer Science 2017-02-24 Arthur-Jozsef Molnar

Sketching is a natural and effective visual communication medium commonly used in creative processes. Recent developments in deep-learning models drastically improved machines' ability in understanding and generating visual content. An…

Human-Computer Interaction · Computer Science 2021-11-22 Forrest Huang , Eldon Schoop , David Ha , Jeffrey Nichols , John Canny

Recent studies have shown that sketches and diagrams play an important role in the daily work of software developers. If these visual artifacts are archived, they are often detached from the source code they document, because there is no…

Software Engineering · Computer Science 2017-06-30 Sebastian Baltes , Peter Schmitz , Stephan Diehl

The paradigm of image-to-image translation is leveraged for the benefit of sketch stylization via transfer of geometric textural details. Lacking the necessary volumes of data for standard training of translation systems, we advocate for…

Graphics · Computer Science 2020-09-07 Noa Fish , Lilach Perry , Amit Bermano , Daniel Cohen-Or

Stochastic Programming is a framework for modelling and solving problems of decision making under uncertainty. Stochastic Dynamic Programming is a branch of Stochastic Programming that takes a "functional equation" approach to the discovery…

Artificial Intelligence · Computer Science 2023-09-12 Roberto Rossi

We study the problem of generating source code in a strongly typed, Java-like programming language, given a label (for example a set of API calls or types) carrying a small amount of information about the code that is desired. The generated…

Programming Languages · Computer Science 2018-04-16 Vijayaraghavan Murali , Letao Qi , Swarat Chaudhuri , Chris Jermaine

We present JAttack, a framework that enables template-based testing for compilers. Using JAttack, a developer writes a template program that describes a set of programs to be generated and given as test inputs to a compiler. Such a…

Programming Languages · Computer Science 2022-09-13 Zhiqiang Zang , Nathan Wiatrek , Milos Gligoric , August Shi

Software engineering education and training have obstacles caused by a lack of basic knowledge about a process of program execution. The article is devoted to the development of special tools that help to visualize the process. We analyze…

We present a novel and efficient method for synthesis of parameterized distributed protocols by sketching. Our method is both syntax-guided and counterexample-guided, and utilizes a fast equivalence reduction technique that enables…

Logic in Computer Science · Computer Science 2024-05-14 Derek Egolf , William Schultz , Stavros Tripakis

Recent systems for converting natural language descriptions into regular expressions (regexes) have achieved some success, but typically deal with short, formulaic text and can only produce simple regexes. Realworld regexes are complex,…

Computation and Language · Computer Science 2020-08-05 Xi Ye , Qiaochu Chen , Xinyu Wang , Isil Dillig , Greg Durrett

Context-oriented programming is an emerging paradigm addressing at the language level the issue of dynamic software adaptation and modularization of context-specific concerns. In this paper we propose JavaCtx, a tool which employs coding…

Programming Languages · Computer Science 2011-04-08 Guido Salvaneschi , Carlo Ghezzi , Matteo Pradella

We propose a technique for synthesizing bidirectional programs from the corresponding unidirectional code plus a few input/output examples. The core ideas are: (1) constructing a sketch using the given unidirectional program as a…

Programming Languages · Computer Science 2021-10-07 Masaomi Yamaguchi , Kazutaka Matsuda , Cristina David , Meng Wang

We introduce program splicing, a programming methodology that aims to automate the commonly used workflow of copying, pasting, and modifying code available online. Here, the programmer starts by writing a "draft" that mixes unfinished code,…

Programming Languages · Computer Science 2017-05-26 Yanxin Lu , Swarat Chaudhuri , Chris Jermaine , David Melski

Creative sketch is a universal way of visual expression, but translating images from an abstract sketch is very challenging. Traditionally, creating a deep learning model for sketch-to-image synthesis needs to overcome the distorted input…

Computer Vision and Pattern Recognition · Computer Science 2023-05-31 Qiang Wang , Di Kong , Fengyin Lin , Yonggang Qi
‹ Prev 1 2 3 10 Next ›