5,588 research outputs found
Program Synthesis using Natural Language
Interacting with computers is a ubiquitous activity for millions of people.
Repetitive or specialized tasks often require creation of small, often one-off,
programs. End-users struggle with learning and using the myriad of
domain-specific languages (DSLs) to effectively accomplish these tasks.
We present a general framework for constructing program synthesizers that
take natural language (NL) inputs and produce expressions in a target DSL. The
framework takes as input a DSL definition and training data consisting of
NL/DSL pairs. From these it constructs a synthesizer by learning optimal
weights and classifiers (using NLP features) that rank the outputs of a
keyword-programming based translation. We applied our framework to three
domains: repetitive text editing, an intelligent tutoring system, and flight
information queries. On 1200+ English descriptions, the respective synthesizers
rank the desired program as the top-1 and top-3 for 80% and 90% descriptions
respectively
Quantitative Chemically-Specific Coherent Diffractive Imaging of Buried Interfaces using a Tabletop EUV Nanoscope
Characterizing buried layers and interfaces is critical for a host of
applications in nanoscience and nano-manufacturing. Here we demonstrate
non-invasive, non-destructive imaging of buried interfaces using a tabletop,
extreme ultraviolet (EUV), coherent diffractive imaging (CDI) nanoscope. Copper
nanostructures inlaid in SiO2 are coated with 100 nm of aluminum, which is
opaque to visible light and thick enough that neither optical microscopy nor
atomic force microscopy can image the buried interfaces. Short wavelength (29
nm) high harmonic light can penetrate the aluminum layer, yielding
high-contrast images of the buried structures. Moreover, differences in the
absolute reflectivity of the interfaces before and after coating reveal the
formation of interstitial diffusion and oxidation layers at the Al-Cu and
Al-SiO2 boundaries. Finally, we show that EUV CDI provides a unique capability
for quantitative, chemically-specific imaging of buried structures, and the
material evolution that occurs at these buried interfaces, compared with all
other approaches.Comment: 12 pages, 8 figure
Synthesizing Imperative Programs from Examples Guided by Static Analysis
We present a novel algorithm that synthesizes imperative programs for
introductory programming courses. Given a set of input-output examples and a
partial program, our algorithm generates a complete program that is consistent
with every example. Our key idea is to combine enumerative program synthesis
and static analysis, which aggressively prunes out a large search space while
guaranteeing to find, if any, a correct solution. We have implemented our
algorithm in a tool, called SIMPL, and evaluated it on 30 problems used in
introductory programming courses. The results show that SIMPL is able to solve
the benchmark problems in 6.6 seconds on average.Comment: The paper is accepted in Static Analysis Symposium (SAS) '17. The
submission version is somewhat different from the version in arxiv. The final
version will be uploaded after the camera-ready version is read
Automata Tutor v3
Computer science class enrollments have rapidly risen in the past decade.
With current class sizes, standard approaches to grading and providing
personalized feedback are no longer possible and new techniques become both
feasible and necessary. In this paper, we present the third version of Automata
Tutor, a tool for helping teachers and students in large courses on automata
and formal languages. The second version of Automata Tutor supported automatic
grading and feedback for finite-automata constructions and has already been
used by thousands of users in dozens of countries. This new version of Automata
Tutor supports automated grading and feedback generation for a greatly extended
variety of new problems, including problems that ask students to create regular
expressions, context-free grammars, pushdown automata and Turing machines
corresponding to a given description, and problems about converting between
equivalent models - e.g., from regular expressions to nondeterministic finite
automata. Moreover, for several problems, this new version also enables
teachers and students to automatically generate new problem instances. We also
present the results of a survey run on a class of 950 students, which shows
very positive results about the usability and usefulness of the tool
Planning robot actions under position and shape uncertainty
Geometric uncertainty may cause various failures during the execution of a robot control program. Avoiding such failures makes it necessary to reason about the effects of uncertainty in order to implement robust strategies. Researchers first point out that a manipulation program has to be faced with two types of uncertainty: those that might be locally processed using appropriate sensor based motions, and those that require a more global processing leading to insert new sensing operations. Then, they briefly describe how they solved the two related problems in the SHARP system: how to automatically synthesize a fine motion strategy allowing the robot to progressively achieve a given assembly relation despite position uncertainty, and how to represent uncertainty and to determine the points where a given manipulation program might fail
- …