1,665 research outputs found
Handling Parallelism in a Concurrency Model
Programming models for concurrency are optimized for dealing with
nondeterminism, for example to handle asynchronously arriving events. To shield
the developer from data race errors effectively, such models may prevent shared
access to data altogether. However, this restriction also makes them unsuitable
for applications that require data parallelism. We present a library-based
approach for permitting parallel access to arrays while preserving the safety
guarantees of the original model. When applied to SCOOP, an object-oriented
concurrency model, the approach exhibits a negligible performance overhead
compared to ordinary threaded implementations of two parallel benchmark
programs.Comment: MUSEPAT 201
Assertion-based Analysis via Slicing with ABETS
[EN] We present ABETS, an assertion-based, dynamic analyzer that helps diagnose errors in Maude programs. ABETS uses slicing to automatically create reduced versions of both a run's execution trace and executed program, reduced versions in which any information that is not relevant to the bug currently being diagnosed is removed. In addition, ABETS employs runtime assertion checking to automate the identification of bugs so that whenever an assertion is violated, the system automatically infers accurate slicing criteria from the failure. We summarize the main services provided by ABETS, which also include a novel assertionbased facility for program repair that generates suitable program fixes when a state invariant is violated. Finally, we provide an experimental evaluation that shows the performance and effectiveness of the system.This work has been partially supported by the EU (FEDER) and Spanish MINECO grant TIN2015-69175-C4-1-R, and by Generalitat Valenciana PROMETEOII/2015/013. J. Sapina was supported by FPI-UPV grant SP2013-0083.Alpuente Frasnedo, M.; Frechina, F.; Sapiña Sanchis, J.; Ballis, D. (2016). Assertion-based Analysis via Slicing with ABETS. Theory and Practice of Logic Programming. 16(5):515-532. https://doi.org/10.1017/S1471068416000375S51553216
Model transformations in Converge
Model transformations are currently the focus of much interest and research due to the OMG’s QVT initiative. Current proposals for model transformation languages
can be divided into two main camps: those taking a ‘declarative’ approach, and those opting for an ‘imperative’ approach. In this paper we detail an imperative, meta-circular, object orientated, pattern matching programming language Converge which is enriched with features pioneered by the Icon programming language,
amongst them: success/failure, generators and goal-directed evaluation. By presenting these features in a language suitable for representing models, we show
that we are able to gain some of the advantages of declarative approaches in an imperative setting
Debugging Maude programs via runtime assertion checking and trace slicing
[EN] This is the author’s version of a work that was accepted for publication in . Changes resulting from the publishing process, such as peer review, editing, corrections, structural formatting, and other quality control mechanisms may not be reflected in this document. Changes may have been made to this work since it was submitted for publication. A definitive version was subsequently published in Journal of Logical and Algebraic Methods in Programming, [VOL 85, ISSUE 5, (2016)] DOI 10.1016/j.jlamp.2016.03.001.In this paper we propose a dynamic analysis methodology for improving the diagnosis of
erroneous Maude programs. The key idea is to combine runtime checking and dynamic
trace slicing for automatically catching errors at runtime while reducing the size and
complexity of the erroneous traces to be analyzed (i.e., those leading to states failing
to satisfy some of the assertions). First, we formalize a technique that is aimed at
automatically detecting deviations of the program behavior (symptoms) with respect to
two types of user-defined assertions: functional assertions and system assertions. The
proposed dynamic checking is provably sound in the sense that all errors flagged are
definitely violations of the specifications. Then, upon eventual assertion violations we
generate accurate trace slices that help identify the cause of the error. Our methodology is
based on (i) a logical notation for specifying assertions that are imposed on execution
runs; (ii) a runtime checking technique that dynamically tests the assertions; and
(iii) a mechanism based on (equational) least general generalization that automatically
derives accurate criteria for slicing from falsified assertions. Finally, we report on an
implementation of the proposed technique in the assertion-based, dynamic analyzer
ABETS and show how the forward and backward tracking of asserted program properties
leads to a thorough trace analysis algorithm that can be used for program diagnosis and
debugging.
© 2016 Elsevier Inc. All rights reserved.This work has been partially supported by the EU (FEDER) and the Spanish MINECO under grants TIN2015-69175-C4-1-R and TIN2013-45732-C4-1-P,
and by Generalitat Valenciana Ref. PROMETEOII/2015/013. F. Frechina was supported by FPU-ME grant AP2010-5681, and J. Sapiña was supported by FPI-UPV
grant SP2013-0083 and mobility grant VIIT-3946.Alpuente Frasnedo, M.; Ballis, D.; Frechina, F.; Sapiña-Sanchis, J. (2016). Debugging Maude programs via runtime assertion checking and trace slicing. Journal of Logical and Algebraic Methods in Programming. 85(5):707-736. https://doi.org/10.1016/j.jlamp.2016.03.001S70773685
- …