• Documents
  • Authors
  • Tables
  • Log in
  • Sign up
  • MetaCart
  • DMCA
  • Donate

CiteSeerX logo

Advanced Search Include Citations
Advanced Search Include Citations

Synthesizing data structure manipulations from storyboards. (2011)

by R Singh, A Solar-Lezama
Venue:ESEC/FSE
Add To MetaCart

Tools

Sorted by:
Results 1 - 10 of 15
Next 10 →

Automated feedback generation for introductory programming assignments

by Rishabh Singh, Sumit Gulwani, Armando Solar-lezama , 2013
"... We present a new method for automatically providing feedback for introductory programming problems. In order to use this method, we need a reference implementation of the assignment, and an error model consisting of potential corrections to errors that students might make. Using this information, th ..."
Abstract - Cited by 25 (7 self) - Add to MetaCart
We present a new method for automatically providing feedback for introductory programming problems. In order to use this method, we need a reference implementation of the assignment, and an error model consisting of potential corrections to errors that students might make. Using this information, the system automatically derives minimal corrections to student’s incorrect solutions, providing them with a measure of exactly how incorrect a given solution was, as well as feedback about what they did wrong. We introduce a simple language for describing error models in terms of correction rules, and formally define a rule-directed translation strategy that reduces the problem of finding minimal corrections in an incorrect program to the problem of synthesizing a correct program from a sketch. We have evaluated our system on thousands of real student attempts obtained from the Introduction to
(Show Context)

Citation Context

...ubmission to make it correct. 7.6 Program Synthesis Program synthesis has been used recently for many applications such as synthesis of efficient low-level code [29, 38], data structure manipulations =-=[34]-=-, inference of efficient synchronization in concurrent programs [43], snippets of excel macros [18, 33], relational data representations [19, 20] and angelic programming [8]. The SKETCH tool [37, 38] ...

Synthesizing number transformations from input-output examples.

by Rishabh Singh , Sumit Gulwani , 2012
"... Abstract. Numbers are one of the most widely used data type in programming languages. Number transformations like formatting and rounding present a challenge even for experienced programmers as they find it difficult to remember different number format strings supported by different programming lan ..."
Abstract - Cited by 19 (10 self) - Add to MetaCart
Abstract. Numbers are one of the most widely used data type in programming languages. Number transformations like formatting and rounding present a challenge even for experienced programmers as they find it difficult to remember different number format strings supported by different programming languages. These transformations present an even bigger challenge for end-users of spreadsheet systems like Microsoft Excel where providing such custom format strings is beyond their expertise. In our extensive case study of help forums of many programming languages and Excel, we found that both programmers and end-users struggle with these number transformations, but are able to easily express their intent using input-output examples. In this paper, we present a framework that can learn such number transformations from very few input-output examples. We first describe an expressive number transformation language that can model these transformations, and then present an inductive synthesis algorithm that can learn all expressions in this language that are consistent with a given set of examples. We also present a ranking scheme of these expressions that enables efficient learning of the desired transformation from very few examples. By combining our inductive synthesis algorithm for number transformations with an inductive synthesis algorithm for syntactic string transformations, we are able to obtain an inductive synthesis algorithm for manipulating data types that have numbers as a constituent sub-type such as date, unit, and time. We have implemented our algorithms as an Excel add-in and have evaluated it successfully over several benchmarks obtained from the help forums and the Excel product team.
(Show Context)

Citation Context

...cently to synthesize many classes of non-trivial algorithms, e.g. graph algorithms [13], bit-streaming programs [26, 9], program inverses [27], interactive code snippets [11, 19], and data-structures =-=[24, 25]-=-. There are a range of techniques used in these systems including exhaustive search, constraint-based reasoning, probabilistic inference, type-based search, theorem proving and version-space algebra. ...

TRANSIT: Specifying Protocols with Concolic Snippets ∗

by Abhishek Udupa, Arun Raghavan, Jyotirmoy V. Deshmukh, Sela Mador-haim, Milo M. K. Martin, Rajeev Alur
"... With the maturing of technology for model checking and constraint solving, there is an emerging opportunity to develop programming tools that can transform the way systems are specified. In this paper, we propose a new way to program distributed protocols using concolic snippets. Concolic snippets a ..."
Abstract - Cited by 16 (2 self) - Add to MetaCart
With the maturing of technology for model checking and constraint solving, there is an emerging opportunity to develop programming tools that can transform the way systems are specified. In this paper, we propose a new way to program distributed protocols using concolic snippets. Concolic snippets are sample execution fragments that contain both concrete and symbolic values. The proposed approach allows the programmer to describe the desired system partially using the traditional model of communicating extended finite-state-machines (EFSM), along with high-level invariants and concrete execution fragments. Our synthesis engine completes an EFSM skeleton by inferring guards and updates from the given fragments which is then automatically analyzed using a model checker with respect to the desired invariants. The counterexamples produced by the model checker can then be used by
(Show Context)

Citation Context

... be an intuitive and effective style for programming finite-state reactive controllers [9–11], Excel macros performing string manipulations [7], and pointer-manipulations for updating data structures =-=[22]-=-. This paper focuses on programming reactive systems such as distributed protocols. For such protocols, although the core algorithms are published with accompanying correctness proofs and performance ...

Bridging boolean and quantitative synthesis using smoothed proof search

by Swarat Chaudhuri, Martin Clochard, Armando Solar-lezama , 2014
"... We present a new technique for parameter synthesis under boolean and quantitative objectives. The input to the technique is a “sketch” — a program with missing numerical parameters — and a proba-bilistic assumption about the program’s inputs. The goal is to au-tomatically synthesize values for the p ..."
Abstract - Cited by 9 (3 self) - Add to MetaCart
We present a new technique for parameter synthesis under boolean and quantitative objectives. The input to the technique is a “sketch” — a program with missing numerical parameters — and a proba-bilistic assumption about the program’s inputs. The goal is to au-tomatically synthesize values for the parameters such that the re-sulting program satisfies: (1) a boolean specification, which states that the program must meet certain assertions, and (2) a quantitative specification, which assigns a real valued rating to every program and which the synthesizer is expected to optimize. Our method — called smoothed proof search — reduces this task to a sequence of unconstrained smooth optimization problems that are then solved numerically. By iteratively solving these prob-lems, we obtain parameter values that get closer and closer to meet-ing the boolean specification; at the limit, we obtain values that provably meet the specification. The approximations are computed using a new notion of smoothing for program abstractions, where an abstract transformer is approximated by a function that is con-tinuous according to a metric over abstract states. We present a prototype implementation of our synthesis proce-dure, and experimental results on two benchmarks from the em-bedded control domain. The experiments demonstrate the benefits of smoothed proof search over an approach that does not meet the boolean and quantitative synthesis goals simultaneously.
(Show Context)

Citation Context

... procedure for quantitative synthesis should aim to meet its boolean and quantitative objectives simultaneously. The benefits of such an approach are corroborated by prior work on (boolean) synthesis =-=[28, 34]-=-, which combines synthesis and verification to make the overall process more tractable. In this paper, we offer such a combined verification and synthesis procedure for the problem of synthesizing val...

CodeHint: Dynamic and interactive synthesis of code snippets

by Joel Galenson , Philip Reames , Rastislav Bodik , Björn Hartmann , Koushik Sen - In ICSE ’14
"... ABSTRACT There are many tools that help programmers find code fragments, but most are inexpressive and rely on static information. We present a new technique for synthesizing code that is dynamic (giving accurate results and allowing programmers to reason about concrete executions), easy-to-use (su ..."
Abstract - Cited by 8 (0 self) - Add to MetaCart
ABSTRACT There are many tools that help programmers find code fragments, but most are inexpressive and rely on static information. We present a new technique for synthesizing code that is dynamic (giving accurate results and allowing programmers to reason about concrete executions), easy-to-use (supporting a wide range of correctness specifications), and interactive (allowing users to refine the candidate code snippets). Our implementation, which we call CodeHint, generates and evaluates code at runtime and hence can synthesize real-world Java code that involves I/O, reflection, native calls, and other advanced language features. We have evaluated CodeHint in two user studies and show that its algorithms are efficient and that it improves programmer productivity by more than a factor of two.
(Show Context)

Citation Context

... design our methodology to support concrete reasoning. Program synthesis has had numerous successes at synthesizing code in small well-defined domains such as bitvector logic [13] and data structures =-=[30, 11]-=- as well as somewhat more general classes of programs [31, 14, 32]. As they are backed by decision procedures and SMT solvers, these techniques are very efficient in certain domains that have been ful...

Genetic Programming for Reverse Engineering

by Mark Harman, William B. Langdon, Westley Weimer
"... a particular emphasis on the growing importance of recent developments in genetic programming and genetic improvement for reverse engineering. This includes work on SBSE for remodularisation, refactoring, regression testing, syntax-preserving slicing and dependence analysis, concept assignment and f ..."
Abstract - Cited by 7 (4 self) - Add to MetaCart
a particular emphasis on the growing importance of recent developments in genetic programming and genetic improvement for reverse engineering. This includes work on SBSE for remodularisation, refactoring, regression testing, syntax-preserving slicing and dependence analysis, concept assignment and feature location, bug fixing, and code migration. We also explore the possibilities for new directions in research using GP and GI for partial evaluation, amorphous slicing, and product lines, with a particular focus on code transplantation. This paper accompanies the keynote given by Mark Harman at the 20 th Working Conference on Reverse Engineering (WCRE 2013). I.
(Show Context)

Citation Context

...y the interface. Algorithms such at Prospector [66] solve exactly this issue, synthesising such glue code from input and output types. Similarly, ‘programming by sketching’ or ‘storyboard’ approaches =-=[84]-=- synthesise working algorithms in the presence given structured but incomplete information about the contents. Finally, if user annotations take the form of contracts or specifications, recent advance...

Using Program Synthesis for Social Recommendations

by Alvin Cheung, Armando Solar-lezama, Samuel Madden
"... This paper presents a new approach to select events of interest to a user in a social media setting where events are generated by the activities of the user’s friends through their mobile devices. We argue that given the unique requirements of the social media setting, the problem is best viewed as ..."
Abstract - Cited by 2 (0 self) - Add to MetaCart
This paper presents a new approach to select events of interest to a user in a social media setting where events are generated by the activities of the user’s friends through their mobile devices. We argue that given the unique requirements of the social media setting, the problem is best viewed as an inductive learning problem, where the goal is to first generalize from the users ’ expressed “likes ” and “dislikes ” of specific events, then to produce a program that can be manipulated by the system and distributed to the collection devices to collect only data of interest. The key contribution of this paper is a new algorithm that combines existing machine learning techniques with new program synthesis technology to learn users ’ preferences. We show that when compared with the more standard approaches, our new algorithm provides up to order-of-magnitude reductions in model training time, and significantly higher prediction accuracies for our target application. The approach also improves on standard machine learning techniques in that it produces clear programs that can be manipulated to optimize data collection and filtering. 1
(Show Context)

Citation Context

... size is small, as in our active learning scenarios. In recent years, the programming languages community has been working on programming-by-example problems to synthesize different types of programs =-=[21, 10, 9]-=-. Our work differs from previous tools in that we require a feature selection mechanism in place in order to provide reasonable results. The work of Gulwani in [9] proposes querying the user to provid...

Cost-aware automatic program repair

by Roopsha Samanta, Oswaldo Olivo, E. Allen Emerson - SAS, volume 8723 of LNCS , 2014
"... Abstract. We present a formal framework for repairing infinite-state, imperative, sequential programs, with (possibly recursive) procedures and multiple assertions; the framework can generate repaired programs by modifying the original erroneous program in multiple program lo-cations, and can ensure ..."
Abstract - Cited by 2 (0 self) - Add to MetaCart
Abstract. We present a formal framework for repairing infinite-state, imperative, sequential programs, with (possibly recursive) procedures and multiple assertions; the framework can generate repaired programs by modifying the original erroneous program in multiple program lo-cations, and can ensure the readability of the repaired program using user-defined expression templates; the framework also generates a set of inductive assertions that serve as a proof of correctness of the repaired program. As a step toward integrating programmer intent and intuition in automated program repair, we present a cost-aware formulation — given a cost function associated with permissible statement modifica-tions, the goal is to ensure that the total program modification cost does not exceed a given repair budget. As part of our predicate abstraction-based solution framework, we present a sound and complete algorithm for repair of Boolean programs. We have developed a prototype tool based on SMT solving and used it successfully to repair diverse errors in benchmark C programs. 1
(Show Context)

Citation Context

...n computing repairs as winning strategies in games [18], abstraction interpretation [21], mutations [12], genetic algorithms [2,15], using contracts [31], and focusing on data structure manipulations =-=[27, 32]-=-. There are also customized program repair engines for grading and feedback generation for programming assignments, cf. [26]. Finally, a multitude of algorithms [4,9,19,33] have been proposed for faul...

Fiat: Deductive Synthesis of Abstract Data Types in a Proof Assistant

by Benjamin Delaware, Clément Pit-Claudel, Jason Gross, Adam Chlipala - PROCEEDINGS OF THE 42ND ANNUAL ACM SIGPLAN-SIGACT SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES , 2015
"... We present Fiat, a library for the Coq proof assistant supporting refinement of declarative specifications into efficient functional programs with a high degree of automation. Each refinement process leaves a proof trail, checkable by the normal Coq kernel, justifying its soundness. We focus on the ..."
Abstract - Cited by 2 (0 self) - Add to MetaCart
We present Fiat, a library for the Coq proof assistant supporting refinement of declarative specifications into efficient functional programs with a high degree of automation. Each refinement process leaves a proof trail, checkable by the normal Coq kernel, justifying its soundness. We focus on the synthesis of abstract data types that package methods with private data. We demonstrate the utility of our framework by applying it to the synthesis of query structures -- abstract data types with SQL-like query and insert operations. Fiat includes a library for writing specifications of query structures in SQL-inspired notation, expressing operations over relations (tables) in terms of mathematical sets. This library includes a suite of tactics for automating the refinement of specifications into efficient, correct-by-construction OCaml code. Using these tactics, a programmer can generate such an implementation completely automatically by only specifying the equivalent of SQL indexes, data structures capturing useful views of the abstract data. Throughout we speculate on the new programming modularity possibilities enabled by an automated refinement system with proved-correct rules.

SPT: storyboard programming tool

by Rishabh Singh , Armando Solar-Lezama - In Proceedings of the 24th international conference on Computer Aided Verification. CAV’12 , 2012
"... Abstract. We present Spt, a tool that helps programmers write lowlevel data-structure manipulations by combining various forms of insights such as abstract and concrete input-output examples as well as implementation skeletons. When programmers write such manipulations, they typically have a clear ..."
Abstract - Cited by 1 (0 self) - Add to MetaCart
Abstract. We present Spt, a tool that helps programmers write lowlevel data-structure manipulations by combining various forms of insights such as abstract and concrete input-output examples as well as implementation skeletons. When programmers write such manipulations, they typically have a clear high-level intuition about how the manipulation should work, but implementing efficient low-level pointer manipulating code is error-prone. Our tool aims to bridge the gap between the intuition and the corresponding implementation by automatically synthesizing the implementation. The tool frames the synthesis problem as a generalization of an abstract-interpretation based shape analysis, and represents the problem as a set of constraints which are solved efficiently by the Sketch solver. We report the successful evaluation of our tool on synthesizing several linked list and binary search tree manipulations.
(Show Context)

Citation Context

...ructure manipulations by combining various forms of insights, including abstract and concrete input-output examples as well as implementation skeletons. Our tool is based on a new synthesis algorithm =-=[4]-=- that combines abstractinterpretation based shape-analysis [2, 3] with constraint-based synthesis [5, 7, 8]. The algorithm uses an abstraction refinement based approach to concisely encode synthesis c...

Powered by: Apache Solr
  • About CiteSeerX
  • Submit and Index Documents
  • Privacy Policy
  • Help
  • Data
  • Source
  • Contact Us

Developed at and hosted by The College of Information Sciences and Technology

© 2007-2019 The Pennsylvania State University