SmartSynth: Synthesizing Smartphone Automation Scripts from Natural Language
Abstract
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. We believe that
SmartSynth is a step toward fully personalized use of smartphones’
increasingly rich functionalities.