427,909 research outputs found
Leveraging Static Analysis for Bug Repair
We propose a method combining machine learning with a static analysis tool
(i.e. Infer) to automatically repair source code. Machine Learning methods
perform well for producing idiomatic source code. However, their output is
sometimes difficult to trust as language models can output incorrect code with
high confidence. Static analysis tools are trustable, but also less flexible
and produce non-idiomatic code. In this paper, we propose to fix resource leak
bugs in IR space, and to use a sequence-to-sequence model to propose fix in
source code space. We also study several decoding strategies, and use Infer to
filter the output of the model. On a dataset of CodeNet submissions with
potential resource leak bugs, our method is able to find a function with the
same semantics that does not raise a warning with around 97% precision and 66%
recall.Comment: 13 pages. DL4C 202
Comprehensive needs analysis for the development of construction safety education tools in immersive reality
Construction industry remains one of the most hazardous industries to work in, despite numerous
efforts by researchers and practitioners to improve levels of Health & Safety (H&S) and reduce the
number of accidents which occur on the construction sites. A potential method to reduce the number
accidents is to educate construction workers in hazard identification and to raise their awareness of
the risks they face at the construction site through the use of emerging technologies such as Virtual
Reality (VR) and Augmented Reality (AR). This paper presents the first intellectual output of an
Erasmus+ project titled Construction Safety with Education and Training using Immersive Reality
(CSETIR), whose goal is to examine and apply such VR and AR tools to improve the levels of H&S.
Through the literature review and discussions with relevant stakeholders, most appropriate training
methods were identified for the development of safety educational tools in the following project
phases. VR and AR technologies have the potential to train construction workers in H&S, especially
those who have little experience in construction safety, workers with literacy limitations and workers
that do not speak the local language. Visual training tools, especially immersive ones, also provide
better retention of acquired knowledge and skills. An immersive reality safety education tool,
therefore, has the potential to increase the levels of construction H&S and to reduce the number of
accidents at construction sites
An Introduction to Programming for Bioscientists: A Python-based Primer
Computing has revolutionized the biological sciences over the past several
decades, such that virtually all contemporary research in the biosciences
utilizes computer programs. The computational advances have come on many
fronts, spurred by fundamental developments in hardware, software, and
algorithms. These advances have influenced, and even engendered, a phenomenal
array of bioscience fields, including molecular evolution and bioinformatics;
genome-, proteome-, transcriptome- and metabolome-wide experimental studies;
structural genomics; and atomistic simulations of cellular-scale molecular
assemblies as large as ribosomes and intact viruses. In short, much of
post-genomic biology is increasingly becoming a form of computational biology.
The ability to design and write computer programs is among the most
indispensable skills that a modern researcher can cultivate. Python has become
a popular programming language in the biosciences, largely because (i) its
straightforward semantics and clean syntax make it a readily accessible first
language; (ii) it is expressive and well-suited to object-oriented programming,
as well as other modern paradigms; and (iii) the many available libraries and
third-party toolkits extend the functionality of the core language into
virtually every biological domain (sequence and structure analyses,
phylogenomics, workflow management systems, etc.). This primer offers a basic
introduction to coding, via Python, and it includes concrete examples and
exercises to illustrate the language's usage and capabilities; the main text
culminates with a final project in structural bioinformatics. A suite of
Supplemental Chapters is also provided. Starting with basic concepts, such as
that of a 'variable', the Chapters methodically advance the reader to the point
of writing a graphical user interface to compute the Hamming distance between
two DNA sequences.Comment: 65 pages total, including 45 pages text, 3 figures, 4 tables,
numerous exercises, and 19 pages of Supporting Information; currently in
press at PLOS Computational Biolog
Achieving QVTO & ATL Interoperability: An Experience Report on the Realization of a QVTO to ATL Computer
With the emergence of a number of model transformation languages the need for interoperability among them increases. The degree at which this interoperability can be achieved between two given languages depends heavily on their paradigms (declarative vs imperative).
Previous studies have indicated that the QVT and ATL languages are compatible. In this paper we study the possibility to compile QVT Operational to the ATL virtual machine. We describe our experience of developing such a compiler. The resulting compiled QVT transformations can run on top of existing ATL tools. Thereby we achieve not only QVT/ATL interoperability but also QVT conformance for the ATL tools as defined in the QVT specification
Recent trends related to the use of formal methods in software engineering
An account is given of some recent developments and trends related to the development and use of formal methods in software engineering. Ongoing activities in Europe are focussed on, since there seems to be a notable difference in attitude towards industrial usage of formal methods in Europe and in the U.S. A more detailed account is given of the currently most widespread formal method in Europe: the Vienna Development Method. Finally, the use of Ada is discussed in relation to the application of formal methods, and the potential for constructing Ada-specific tools based on that method is considered
Towards a General Framework for Formal Reasoning about Java Bytecode Transformation
Program transformation has gained a wide interest since it is used for
several purposes: altering semantics of a program, adding features to a program
or performing optimizations. In this paper we focus on program transformations
at the bytecode level. Because these transformations may introduce errors, our
goal is to provide a formal way to verify the update and establish its
correctness. The formal framework presented includes a definition of a formal
semantics of updates which is the base of a static verification and a scheme
based on Hoare triples and weakest precondition calculus to reason about
behavioral aspects in bytecode transformationComment: In Proceedings SCSS 2012, arXiv:1307.802
Verification of Timed Automata Using Rewrite Rules and Strategies
ELAN is a powerful language and environment for specifying and prototyping
deduction systems in a language based on rewrite rules controlled by
strategies. Timed automata is a class of continuous real-time models of
reactive systems for which efficient model-checking algorithms have been
devised. In this paper, we show that these algorithms can very easily be
prototyped in the ELAN system. This paper argues through this example that
rewriting based systems relying on rules and strategies are a good framework to
prototype, study and test rather efficiently symbolic model-checking
algorithms, i.e. algorithms which involve combination of graph exploration
rules, deduction rules, constraint solving techniques and decision procedures
Pluggable AOP: Designing Aspect Mechanisms for Third-party Composition
Studies of Aspect-Oriented Programming (AOP) usually focus on a language in
which a specific aspect extension is integrated with a base language. Languages
specified in this manner have a fixed, non-extensible AOP functionality. In
this paper we consider the more general case of integrating a base language
with a set of domain specific third-party aspect extensions for that language.
We present a general mixin-based method for implementing aspect extensions in
such a way that multiple, independently developed, dynamic aspect extensions
can be subject to third-party composition and work collaboratively
- …