Assertion-based slicing and slice graphs

Bibliographic Details
Main Author: Barros, José Bernardo
Publication Date: 2012
Other Authors: Cruz, Daniela da, Henriques, Pedro Rangel, Pinto, Jorge Sousa
Format: Article
Language: eng
Source: Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
Download full: http://hdl.handle.net/1822/14209
Summary: This paper revisits the idea of slicing programs based on their axiomatic semantics, rather than using criteria based on control/data dependencies. We show how the forward propagation of preconditions and the backward propagation of postconditions can be combined in a new slicing algorithm that is more precise than the existing specification-based algorithms. The algorithm is based on (i) a precise test for removable statements, and (ii) the construction of a \emph{slice graph}, a program control flow graph extended with semantic labels and additional edges that ``short-circuit'' removable commands. It improves on previous approaches in two aspects: it does not fail to identify removable commands; and it produces the smallest possible slice that can be obtained (in a sense that will be made precise). Iteration is handled through the use of loop invariants and variants to ensure termination. The paper also discusses in detail applications of these forms of slicing, including the elimination of (conditionally) unreachable and dead code, and compares them to other related notions.
id RCAP_f0a23d96b4a7ddae490516eb84a86fe8
oai_identifier_str oai:repositorium.sdum.uminho.pt:1822/14209
network_acronym_str RCAP
network_name_str Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
repository_id_str https://opendoar.ac.uk/repository/7160
spelling Assertion-based slicing and slice graphsProgram slicingProgram analysisVerification conditionsControl flow graphsScience & TechnologyThis paper revisits the idea of slicing programs based on their axiomatic semantics, rather than using criteria based on control/data dependencies. We show how the forward propagation of preconditions and the backward propagation of postconditions can be combined in a new slicing algorithm that is more precise than the existing specification-based algorithms. The algorithm is based on (i) a precise test for removable statements, and (ii) the construction of a \emph{slice graph}, a program control flow graph extended with semantic labels and additional edges that ``short-circuit'' removable commands. It improves on previous approaches in two aspects: it does not fail to identify removable commands; and it produces the smallest possible slice that can be obtained (in a sense that will be made precise). Iteration is handled through the use of loop invariants and variants to ensure termination. The paper also discusses in detail applications of these forms of slicing, including the elimination of (conditionally) unreachable and dead code, and compares them to other related notions.Fundação para a Ciência e a Tecnologia (FCT)SpringerUniversidade do MinhoBarros, José BernardoCruz, Daniela daHenriques, Pedro RangelPinto, Jorge Sousa20122012-01-01T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/articleapplication/pdfhttp://hdl.handle.net/1822/14209eng0934-504310.1007/s00165-011-0196-1The original publication is available at http://www.springerlink.com/content/j45m7rtv2563r135/info:eu-repo/semantics/openAccessreponame:Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)instname:FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologiainstacron:RCAAP2024-05-11T04:13:37Zoai:repositorium.sdum.uminho.pt:1822/14209Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireinfo@rcaap.ptopendoar:https://opendoar.ac.uk/repository/71602025-05-28T14:42:41.214205Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) - FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologiafalse
dc.title.none.fl_str_mv Assertion-based slicing and slice graphs
title Assertion-based slicing and slice graphs
spellingShingle Assertion-based slicing and slice graphs
Barros, José Bernardo
Program slicing
Program analysis
Verification conditions
Control flow graphs
Science & Technology
title_short Assertion-based slicing and slice graphs
title_full Assertion-based slicing and slice graphs
title_fullStr Assertion-based slicing and slice graphs
title_full_unstemmed Assertion-based slicing and slice graphs
title_sort Assertion-based slicing and slice graphs
author Barros, José Bernardo
author_facet Barros, José Bernardo
Cruz, Daniela da
Henriques, Pedro Rangel
Pinto, Jorge Sousa
author_role author
author2 Cruz, Daniela da
Henriques, Pedro Rangel
Pinto, Jorge Sousa
author2_role author
author
author
dc.contributor.none.fl_str_mv Universidade do Minho
dc.contributor.author.fl_str_mv Barros, José Bernardo
Cruz, Daniela da
Henriques, Pedro Rangel
Pinto, Jorge Sousa
dc.subject.por.fl_str_mv Program slicing
Program analysis
Verification conditions
Control flow graphs
Science & Technology
topic Program slicing
Program analysis
Verification conditions
Control flow graphs
Science & Technology
description This paper revisits the idea of slicing programs based on their axiomatic semantics, rather than using criteria based on control/data dependencies. We show how the forward propagation of preconditions and the backward propagation of postconditions can be combined in a new slicing algorithm that is more precise than the existing specification-based algorithms. The algorithm is based on (i) a precise test for removable statements, and (ii) the construction of a \emph{slice graph}, a program control flow graph extended with semantic labels and additional edges that ``short-circuit'' removable commands. It improves on previous approaches in two aspects: it does not fail to identify removable commands; and it produces the smallest possible slice that can be obtained (in a sense that will be made precise). Iteration is handled through the use of loop invariants and variants to ensure termination. The paper also discusses in detail applications of these forms of slicing, including the elimination of (conditionally) unreachable and dead code, and compares them to other related notions.
publishDate 2012
dc.date.none.fl_str_mv 2012
2012-01-01T00:00:00Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/article
format article
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/1822/14209
url http://hdl.handle.net/1822/14209
dc.language.iso.fl_str_mv eng
language eng
dc.relation.none.fl_str_mv 0934-5043
10.1007/s00165-011-0196-1
The original publication is available at http://www.springerlink.com/content/j45m7rtv2563r135/
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.publisher.none.fl_str_mv Springer
publisher.none.fl_str_mv Springer
dc.source.none.fl_str_mv reponame:Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
instname:FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia
instacron:RCAAP
instname_str FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia
instacron_str RCAAP
institution RCAAP
reponame_str Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
collection Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
repository.name.fl_str_mv Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) - FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia
repository.mail.fl_str_mv info@rcaap.pt
_version_ 1833594836237680640