• Publications
  • Influence
Automating string processing in spreadsheets using input-output examples
TLDR
The design of a string programming/expression language that supports restricted forms of regular expressions, conditionals and loops is described and an algorithm based on several novel concepts for synthesizing a desired program in this language is described from input-output examples. Expand
Oracle-guided component-based program synthesis
TLDR
A novel approach to automatic synthesis of loop-free programs based on a combination of oracle-guided learning from examples, and constraint-based synthesis from components using satisfiability modulo theories (SMT) solvers is presented. Expand
Recursive Program Synthesis
TLDR
This paper presents Escher, a generic and efficient algorithm that interacts with the user via input-output examples, and synthesizes recursive programs implementing intended behaviour, and outperforms a state-of-the-art SAT-based synthesis tool from the literature. Expand
Synthesis of loop-free programs
TLDR
Results are presented that show that the tool Brahma can efficiently synthesize highly nontrivial 10-20 line loop-free bitvector programs, and are beyond the reach of the other tools based on sketching and superoptimization. Expand
SPEED: precise and efficient static estimation of program computational complexity
TLDR
An inter-procedural technique for computing symbolic bounds on the number of statements a procedure executes in terms of its scalar inputs and user-defined quantitative functions of input data-structures and an algorithm for automating this proof methodology is introduced. Expand
FlashMeta: a framework for inductive program synthesis
TLDR
The FlashMeta framework implements a novel program synthesis methodology, allowing synthesizer developers to generate an efficient synthesizer from the mere DSL definition (if properties of the DSL operators have been modeled), and found that 10+ existing industrial-quality mass-market applications based on PBE can be cast as instances of D4. Expand
Static analysis for probabilistic programs: inferring whole program properties from finitely many paths
TLDR
A static analysis approach that provides guaranteed interval bounds on the values (assertion probabilities) of queries that seek the probabilities of assertions over program variables and demonstrates promising results on a suite of benchmarks including robotic manipulators and medical decision making programs. Expand
Spreadsheet data manipulation using examples
TLDR
This work presents a programming by example methodology that allows end users to automate such repetitive tasks over large spreadsheet data by designing a domain-specific language and developing a synthesis algorithm that can learn programs in that language from user-provided examples. Expand
Automated feedback generation for introductory programming assignments
TLDR
A simple language for describing error models in terms of correction rules is introduced, and a rule-directed translation strategy is formally defined that reduces the problem of finding minimal corrections in an incorrect program to the problems of synthesizing a correct program from a sketch. Expand
FlashExtract: a framework for data extraction by examples
TLDR
This work presents a general framework FlashExtract to extract relevant data from semi-structured documents using examples, and describes instantiation of the framework to three different domains: text files, webpages, and spreadsheets. Expand
...
1
2
3
4
5
...