Cargando…

Imposing assertions in Maude via program transformation

Program transformation is widely used for producing correct mutations of a given program so as to satisfy the user’s intent that can be expressed by means of some sort of specification (e.g. logical assertions, functional specifications, reference implementations, summaries, examples). This paper de...

Descripción completa

Detalles Bibliográficos
Autores principales: Alpuente, María, Ballis, Demis, Sapiña, Julia
Formato: Online Artículo Texto
Lenguaje:English
Publicado: Elsevier 2019
Materias:
Acceso en línea:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6861556/
https://www.ncbi.nlm.nih.gov/pubmed/31763189
http://dx.doi.org/10.1016/j.mex.2019.10.035
_version_ 1783471384810225664
author Alpuente, María
Ballis, Demis
Sapiña, Julia
author_facet Alpuente, María
Ballis, Demis
Sapiña, Julia
author_sort Alpuente, María
collection PubMed
description Program transformation is widely used for producing correct mutations of a given program so as to satisfy the user’s intent that can be expressed by means of some sort of specification (e.g. logical assertions, functional specifications, reference implementations, summaries, examples). This paper describes an automated correction methodology for Maude programs that is based on program transformation and can be used to enforce a safety policy, given by a set A of system assertions, in a Maude program R that might disprove some of the assertions. The outcome of the technique is a safe program refinement R' of R in which every computation is a good run, i.e., it satisfies the assertions in A. Furthermore, the transformation ensures that no good run of R is removed from R'. Advantages of this correction methodology can be summarized as follows. • A fully automatic program transformation featuring both program diagnosis and repair that preserves all executability requirements. • A simple logical notation to declaratively express invariant properties and other safety constraints through assertions. • No dynamic information is required to infer program fixes: the methodology is static and does not need to collect any error symptom at runtime.
format Online
Article
Text
id pubmed-6861556
institution National Center for Biotechnology Information
language English
publishDate 2019
publisher Elsevier
record_format MEDLINE/PubMed
spelling pubmed-68615562019-11-22 Imposing assertions in Maude via program transformation Alpuente, María Ballis, Demis Sapiña, Julia MethodsX Computer Science Program transformation is widely used for producing correct mutations of a given program so as to satisfy the user’s intent that can be expressed by means of some sort of specification (e.g. logical assertions, functional specifications, reference implementations, summaries, examples). This paper describes an automated correction methodology for Maude programs that is based on program transformation and can be used to enforce a safety policy, given by a set A of system assertions, in a Maude program R that might disprove some of the assertions. The outcome of the technique is a safe program refinement R' of R in which every computation is a good run, i.e., it satisfies the assertions in A. Furthermore, the transformation ensures that no good run of R is removed from R'. Advantages of this correction methodology can be summarized as follows. • A fully automatic program transformation featuring both program diagnosis and repair that preserves all executability requirements. • A simple logical notation to declaratively express invariant properties and other safety constraints through assertions. • No dynamic information is required to infer program fixes: the methodology is static and does not need to collect any error symptom at runtime. Elsevier 2019-11-06 /pmc/articles/PMC6861556/ /pubmed/31763189 http://dx.doi.org/10.1016/j.mex.2019.10.035 Text en © 2019 The Author(s) http://creativecommons.org/licenses/by/4.0/ This is an open access article under the CC BY license (http://creativecommons.org/licenses/by/4.0/).
spellingShingle Computer Science
Alpuente, María
Ballis, Demis
Sapiña, Julia
Imposing assertions in Maude via program transformation
title Imposing assertions in Maude via program transformation
title_full Imposing assertions in Maude via program transformation
title_fullStr Imposing assertions in Maude via program transformation
title_full_unstemmed Imposing assertions in Maude via program transformation
title_short Imposing assertions in Maude via program transformation
title_sort imposing assertions in maude via program transformation
topic Computer Science
url https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6861556/
https://www.ncbi.nlm.nih.gov/pubmed/31763189
http://dx.doi.org/10.1016/j.mex.2019.10.035
work_keys_str_mv AT alpuentemaria imposingassertionsinmaudeviaprogramtransformation
AT ballisdemis imposingassertionsinmaudeviaprogramtransformation
AT sapinajulia imposingassertionsinmaudeviaprogramtransformation