5,588 research outputs found

    Program Synthesis using Natural Language

    Get PDF
    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

    Full text link
    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

    Full text link
    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

    Full text link
    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

    Get PDF
    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
    corecore