24,545 research outputs found
Mapping Language to Code in Programmatic Context
Source code is rarely written in isolation. It depends significantly on the
programmatic context, such as the class that the code would reside in. To study
this phenomenon, we introduce the task of generating class member functions
given English documentation and the programmatic context provided by the rest
of the class. This task is challenging because the desired code can vary
greatly depending on the functionality the class provides (e.g., a sort
function may or may not be available when we are asked to "return the smallest
element" in a particular member variable list). We introduce CONCODE, a new
large dataset with over 100,000 examples consisting of Java classes from online
code repositories, and develop a new encoder-decoder architecture that models
the interaction between the method documentation and the class environment. We
also present a detailed error analysis suggesting that there is significant
room for future work on this task.Comment: Accepted at EMNLP 201
Synthesizing Short-Circuiting Validation of Data Structure Invariants
This paper presents incremental verification-validation, a novel approach for
checking rich data structure invariants expressed as separation logic
assertions. Incremental verification-validation combines static verification of
separation properties with efficient, short-circuiting dynamic validation of
arbitrarily rich data constraints. A data structure invariant checker is an
inductive predicate in separation logic with an executable interpretation; a
short-circuiting checker is an invariant checker that stops checking whenever
it detects at run time that an assertion for some sub-structure has been fully
proven statically. At a high level, our approach does two things: it statically
proves the separation properties of data structure invariants using a static
shape analysis in a standard way but then leverages this proof in a novel
manner to synthesize short-circuiting dynamic validation of the data
properties. As a consequence, we enable dynamic validation to make up for
imprecision in sound static analysis while simultaneously leveraging the static
verification to make the remaining dynamic validation efficient. We show
empirically that short-circuiting can yield asymptotic improvements in dynamic
validation, with low overhead over no validation, even in cases where static
verification is incomplete
Automated user documentation generation based on the Eclipse application model
An application's user documentation, also referred to as the user manual, is
one of the core elements required in application distribution. While there
exist many tools to aid an application's developer in creating and maintaining
documentation on and for the code itself, there are no tools that complement
code development with user documentation for modern graphical applications.
Approaches like literate programming are not applicable to this scenario, as
not a library, but a full application is to be documented to an end-user.
Documentation generation on applications up to now was only partially feasible
due to the gap between the code and its semantics. The new generation of
Eclipse rich client platform developed applications is based on an application
model, closing a broad semantic gap between code and visible interface. We use
this application model to provide a semantic description for the contained
elements. Combined with the internal relationships of the application model,
these semantic descriptions are aggregated to well-structured user
documentations that comply to the ISO/IEC 26514. This paper delivers a report
on the Ecrit research project, where the potentials and limitations of user
documentation generation based on the Eclipse application model were
investigated.Comment: 9 pages, 9 figure
SERKET: An Architecture for Connecting Stochastic Models to Realize a Large-Scale Cognitive Model
To realize human-like robot intelligence, a large-scale cognitive
architecture is required for robots to understand the environment through a
variety of sensors with which they are equipped. In this paper, we propose a
novel framework named Serket that enables the construction of a large-scale
generative model and its inference easily by connecting sub-modules to allow
the robots to acquire various capabilities through interaction with their
environments and others. We consider that large-scale cognitive models can be
constructed by connecting smaller fundamental models hierarchically while
maintaining their programmatic independence. Moreover, connected modules are
dependent on each other, and parameters are required to be optimized as a
whole. Conventionally, the equations for parameter estimation have to be
derived and implemented depending on the models. However, it becomes harder to
derive and implement those of a larger scale model. To solve these problems, in
this paper, we propose a method for parameter estimation by communicating the
minimal parameters between various modules while maintaining their programmatic
independence. Therefore, Serket makes it easy to construct large-scale models
and estimate their parameters via the connection of modules. Experimental
results demonstrated that the model can be constructed by connecting modules,
the parameters can be optimized as a whole, and they are comparable with the
original models that we have proposed
Programmatic and Direct Manipulation, Together at Last
Direct manipulation interfaces and programmatic systems have distinct and
complementary strengths. The former provide intuitive, immediate visual
feedback and enable rapid prototyping, whereas the latter enable complex,
reusable abstractions. Unfortunately, existing systems typically force users
into just one of these two interaction modes.
We present a system called Sketch-n-Sketch that integrates programmatic and
direct manipulation for the particular domain of Scalable Vector Graphics
(SVG). In Sketch-n-Sketch, the user writes a program to generate an output SVG
canvas. Then the user may directly manipulate the canvas while the system
immediately infers a program update in order to match the changes to the
output, a workflow we call live synchronization. To achieve this, we propose
(i) a technique called trace-based program synthesis that takes program
execution history into account in order to constrain the search space and (ii)
heuristics for dealing with ambiguities. Based on our experience with examples
spanning 2,000 lines of code and from the results of a preliminary user study,
we believe that Sketch-n-Sketch provides a novel workflow that can augment
traditional programming systems. Our approach may serve as the basis for live
synchronization in other application domains, as well as a starting point for
yet more ambitious ways of combining programmatic and direct manipulation.Comment: PLDI 2016 Paper + Supplementary Appendice
The Partial Evaluation Approach to Information Personalization
Information personalization refers to the automatic adjustment of information
content, structure, and presentation tailored to an individual user. By
reducing information overload and customizing information access,
personalization systems have emerged as an important segment of the Internet
economy. This paper presents a systematic modeling methodology - PIPE
(`Personalization is Partial Evaluation') - for personalization.
Personalization systems are designed and implemented in PIPE by modeling an
information-seeking interaction in a programmatic representation. The
representation supports the description of information-seeking activities as
partial information and their subsequent realization by partial evaluation, a
technique for specializing programs. We describe the modeling methodology at a
conceptual level and outline representational choices. We present two
application case studies that use PIPE for personalizing web sites and describe
how PIPE suggests a novel evaluation criterion for information system designs.
Finally, we mention several fundamental implications of adopting the PIPE model
for personalization and when it is (and is not) applicable.Comment: Comprehensive overview of the PIPE model for personalizatio
- …