Transportable natural language processing through simplicity—the PRE system
ACM Transactions on Information Systems (TOIS)
Developing a natural language interface to complex data
ACM Transactions on Database Systems (TODS)
NaturalJava: a natural language interface for programming in Java
Proceedings of the 5th international conference on Intelligent user interfaces
Program development by stepwise refinement
Communications of the ACM
Metafor: visualizing stories as code
Proceedings of the 10th international conference on Intelligent user interfaces
Programmatic semantics for natural language interfaces
CHI '05 Extended Abstracts on Human Factors in Computing Systems
Jungloid mining: helping to navigate the API jungle
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
NaLIX: an interactive natural language interface for querying XML
Proceedings of the 2005 ACM SIGMOD international conference on Management of data
Accurate unlexicalized parsing
ACL '03 Proceedings of the 41st Annual Meeting on Association for Computational Linguistics - Volume 1
Compilers: Principles, Techniques, and Tools (2nd Edition)
Compilers: Principles, Techniques, and Tools (2nd Edition)
Speech and Language Processing (2nd Edition)
Speech and Language Processing (2nd Edition)
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Learning to transform natural to formal languages
AAAI'05 Proceedings of the 20th national conference on Artificial intelligence - Volume 3
Dimensions in program synthesis
Proceedings of the 12th international ACM SIGPLAN symposium on Principles and practice of declarative programming
Automating string processing in spreadsheets using input-output examples
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
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
AppJoy: personalized mobile application discovery
MobiSys '11 Proceedings of the 9th international conference on Mobile systems, applications, and services
Interactive synthesis of code snippets
CAV'11 Proceedings of the 23rd international conference on Computer aided verification
TouchDevelop: programming cloud-connected mobile devices via touchscreen
Proceedings of the 10th SIGPLAN symposium on New ideas, new paradigms, and reflections on programming and software
Learning semantic string transformations from examples
Proceedings of the VLDB Endowment
Spreadsheet data manipulation using examples
Communications of the ACM
Type-directed completion of partial expressions
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
Medusa: a programming framework for crowd-sensing applications
Proceedings of the 10th international conference on Mobile systems, applications, and services
Inferring method specifications from natural language API descriptions
Proceedings of the 34th International Conference on Software Engineering
Automated extraction of security policies from natural-language software documents
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
Synthesis from Examples: Interaction Models and Algorithms
SYNASC '12 Proceedings of the 2012 14th International Symposium on Symbolic and Numeric Algorithms for Scientific Computing
Detecting API documentation errors
Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications
Hi-index | 0.00 |
This paper presents SmartSynth, a novel end-to-end programming system for synthesizing smartphone automation scripts from natural language descriptions. Our approach is unique in two key aspects. First, it involves a carefully designed domain-specific language that incorporates standard constructs from smartphone programming platforms to balance its expressivity and the ability to synthesize scripts from natural language. Second, our synthesis algorithm integrates techniques from two research areas: (1) It infers the set of components and their partial dataflow relations from the natural language description using techniques from the Natural Language Processing community; and (2) It uses techniques from the Program Synthesis community to infer missing dataflow relations via type-based synthesis and constructs scripts in a process akin to reverse parsing. SmartSynth also performs conversational interactions with the user when multiple top-ranked scripts exist or it cannot map part of the description to any component. Evaluated on 50 tasks collected from smartphone help forums, our system produces the intended scripts in real time for over 90% of the 640 natural language descriptions obtained from a user study for those tasks. SmartSynth has also been adapted to TouchDevelop, an end user-targeted programming environment on mobile platforms, with very promising results (see http://www.cs.ucdavis.edu/~su/smartsynth.mp4 for a video demo). We believe that SmartSynth is a step toward fully personalized use of smartphones' increasingly rich functionalities.