33,073 research outputs found
Automatic Software Repair: a Bibliography
This article presents a survey on automatic software repair. Automatic
software repair consists of automatically finding a solution to software bugs
without human intervention. This article considers all kinds of repairs. First,
it discusses behavioral repair where test suites, contracts, models, and
crashing inputs are taken as oracle. Second, it discusses state repair, also
known as runtime repair or runtime recovery, with techniques such as checkpoint
and restart, reconfiguration, and invariant restoration. The uniqueness of this
article is that it spans the research communities that contribute to this body
of knowledge: software engineering, dependability, operating systems,
programming languages, and security. It provides a novel and structured
overview of the diversity of bug oracles and repair operators used in the
literature
Automated Fixing of Programs with Contracts
This paper describes AutoFix, an automatic debugging technique that can fix
faults in general-purpose software. To provide high-quality fix suggestions and
to enable automation of the whole debugging process, AutoFix relies on the
presence of simple specification elements in the form of contracts (such as
pre- and postconditions). Using contracts enhances the precision of dynamic
analysis techniques for fault detection and localization, and for validating
fixes. The only required user input to the AutoFix supporting tool is then a
faulty program annotated with contracts; the tool produces a collection of
validated fixes for the fault ranked according to an estimate of their
suitability.
In an extensive experimental evaluation, we applied AutoFix to over 200
faults in four code bases of different maturity and quality (of implementation
and of contracts). AutoFix successfully fixed 42% of the faults, producing, in
the majority of cases, corrections of quality comparable to those competent
programmers would write; the used computational resources were modest, with an
average time per fix below 20 minutes on commodity hardware. These figures
compare favorably to the state of the art in automated program fixing, and
demonstrate that the AutoFix approach is successfully applicable to reduce the
debugging burden in real-world scenarios.Comment: Minor changes after proofreadin
sk_p: a neural program corrector for MOOCs
We present a novel technique for automatic program correction in MOOCs,
capable of fixing both syntactic and semantic errors without manual, problem
specific correction strategies. Given an incorrect student program, it
generates candidate programs from a distribution of likely corrections, and
checks each candidate for correctness against a test suite.
The key observation is that in MOOCs many programs share similar code
fragments, and the seq2seq neural network model, used in the natural-language
processing task of machine translation, can be modified and trained to recover
these fragments.
Experiment shows our scheme can correct 29% of all incorrect submissions and
out-performs state of the art approach which requires manual, problem specific
correction strategies
Adjoint-based predictor-corrector sequential convex programming for parametric nonlinear optimization
This paper proposes an algorithmic framework for solving parametric
optimization problems which we call adjoint-based predictor-corrector
sequential convex programming. After presenting the algorithm, we prove a
contraction estimate that guarantees the tracking performance of the algorithm.
Two variants of this algorithm are investigated. The first one can be used to
solve nonlinear programming problems while the second variant is aimed to treat
online parametric nonlinear programming problems. The local convergence of
these variants is proved. An application to a large-scale benchmark problem
that originates from nonlinear model predictive control of a hydro power plant
is implemented to examine the performance of the algorithms.Comment: This manuscript consists of 25 pages and 7 figure
Robust Model Predictive Control via Scenario Optimization
This paper discusses a novel probabilistic approach for the design of robust
model predictive control (MPC) laws for discrete-time linear systems affected
by parametric uncertainty and additive disturbances. The proposed technique is
based on the iterated solution, at each step, of a finite-horizon optimal
control problem (FHOCP) that takes into account a suitable number of randomly
extracted scenarios of uncertainty and disturbances, followed by a specific
command selection rule implemented in a receding horizon fashion. The scenario
FHOCP is always convex, also when the uncertain parameters and disturbance
belong to non-convex sets, and irrespective of how the model uncertainty
influences the system's matrices. Moreover, the computational complexity of the
proposed approach does not depend on the uncertainty/disturbance dimensions,
and scales quadratically with the control horizon. The main result in this
paper is related to the analysis of the closed loop system under
receding-horizon implementation of the scenario FHOCP, and essentially states
that the devised control law guarantees constraint satisfaction at each step
with some a-priori assigned probability p, while the system's state reaches the
target set either asymptotically, or in finite time with probability at least
p. The proposed method may be a valid alternative when other existing
techniques, either deterministic or stochastic, are not directly usable due to
excessive conservatism or to numerical intractability caused by lack of
convexity of the robust or chance-constrained optimization problem.Comment: This manuscript is a preprint of a paper accepted for publication in
the IEEE Transactions on Automatic Control, with DOI:
10.1109/TAC.2012.2203054, and is subject to IEEE copyright. The copy of
record will be available at http://ieeexplore.ieee.or
Exploration of the scalability of LocFaults approach for error localization with While-loops programs
A model checker can produce a trace of counterexample, for an erroneous
program, which is often long and difficult to understand. In general, the part
about the loops is the largest among the instructions in this trace. This makes
the location of errors in loops critical, to analyze errors in the overall
program. In this paper, we explore the scala-bility capabilities of LocFaults,
our error localization approach exploiting paths of CFG(Control Flow Graph)
from a counterexample to calculate the MCDs (Minimal Correction Deviations),
and MCSs (Minimal Correction Subsets) from each found MCD. We present the times
of our approach on programs with While-loops unfolded b times, and a number of
deviated conditions ranging from 0 to n. Our preliminary results show that the
times of our approach, constraint-based and flow-driven, are better compared to
BugAssist which is based on SAT and transforms the entire program to a Boolean
formula, and further the information provided by LocFaults is more expressive
for the user
- …