ACM Transactions on Programming Languages and Systems (TOPLAS)
Learning regular sets from queries and counterexamples
Information and Computation
TELS: learning text editing tasks from examples
Watch what I do
Version Space Algebra and its Application to Programming by Demonstration
ICML '00 Proceedings of the Seventeenth International Conference on Machine Learning
Query learning of subsequential transducers
ICG! '96 Proceedings of the 3rd International Colloquium on Grammatical Inference: Learning Syntax from Sentences
Interactive Simultaneous Editing of Multiple Text Regions
Proceedings of the General Track: 2002 USENIX Annual Technical Conference
Artificial Intelligence: A Modern Approach
Artificial Intelligence: A Modern Approach
Programming by Demonstration Using Version Space Algebra
Machine Learning
Learning programs from traces using version space algebra
Proceedings of the 2nd international conference on Knowledge capture
Six Learning Barriers in End-User Programming Systems
VLHCC '04 Proceedings of the 2004 IEEE Symposium on Visual Languages - Human Centric Computing
PADS: a domain-specific language for processing ad hoc data
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
The next 700 data description languages
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
From dirt to shovels: fully automatic tool generation from ad hoc data
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
From program verification to program synthesis
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A context-free markup language for semi-structured text
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
Oracle-guided component-based program synthesis
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Dimensions in program synthesis
Proceedings of the 12th international ACM SIGPLAN symposium on Principles and practice of declarative programming
Excel 2010 Formulas
Synthesizing geometry constructions
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Synthesis of loop-free programs
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Spreadsheet table transformations from examples
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Path-based inductive synthesis for program inversion
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Parallel programming with inductive synthesis
HotPar'11 Proceedings of the 3rd USENIX conference on Hot topic in parallelism
From boolean to quantitative synthesis
EMSOFT '11 Proceedings of the ninth ACM international conference on Embedded software
Formal verification of hybrid systems
EMSOFT '11 Proceedings of the ninth ACM international conference on Embedded software
Proactive wrangling: mixed-initiative end-user programming of data transformation scripts
Proceedings of the 24th annual ACM symposium on User interface software and technology
Static analysis of string values
ICFEM'11 Proceedings of the 13th international conference on Formal methods and software engineering
Ideas for connecting inductive program synthesis and bidirectionalization
PEPM '12 Proceedings of the ACM SIGPLAN 2012 workshop on Partial evaluation and program manipulation
The privacy in the time of the internet: secrecy vs transparency
Proceedings of the second ACM conference on Data and Application Security and Privacy
Learning semantic string transformations from examples
Proceedings of the VLDB Endowment
Spreadsheet data manipulation using examples
Communications of the ACM
Automated synthesis of symbolic instruction encodings from I/O samples
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
Interactive analysis of big data
XRDS: Crossroads, The ACM Magazine for Students - Big Data
Automated repair of HTML generation errors in PHP applications using string constraint solving
Proceedings of the 34th International Conference on Software Engineering
Synthesizing number transformations from input-output examples
CAV'12 Proceedings of the 24th international conference on Computer Aided Verification
Liberating the programmer with prorogued programming
Proceedings of the ACM international symposium on New ideas, new paradigms, and reflections on programming and software
Automating object transformations for dynamic software updating
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Using program synthesis for social recommendations
Proceedings of the 21st ACM international conference on Information and knowledge management
Synthesis of biological models from mutation experiments
POPL '13 Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
TRANSIT: specifying protocols with concolic snippets
Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
SmartSynth: synthesizing smartphone automation scripts from natural language
Proceeding of the 11th annual international conference on Mobile systems, applications, and services
A colorful approach to text processing by example
Proceedings of the 26th annual ACM symposium on User interface software and technology
CAV'13 Proceedings of the 25th international conference on Computer Aided Verification
Minimizing user effort in transforming data by example
Proceedings of the 19th international conference on Intelligent User Interfaces
Hi-index | 0.02 |
We describe the design of a string programming/expression language that supports restricted forms of regular expressions, conditionals and loops. The language is expressive enough to represent a wide variety of string manipulation tasks that end-users struggle with. We describe an algorithm based on several novel concepts for synthesizing a desired program in this language from input-output examples. The synthesis algorithm is very efficient taking a fraction of a second for various benchmark examples. The synthesis algorithm is interactive and has several desirable features: it can rank multiple solutions and has fast convergence, it can detect noise in the user input, and it supports an active interaction model wherein the user is prompted to provide outputs on inputs that may have multiple computational interpretations. The algorithm has been implemented as an interactive add-in for Microsoft Excel spreadsheet system. The prototype tool has met the golden test - it has synthesized part of itself, and has been used to solve problems beyond author's imagination.