Assertion-based slicing and slice graphs

Detalhes bibliográficos
Autor(a) principal: Barros, José Bernardo
Data de Publicação: 2012
Outros Autores: Cruz, Daniela da, Henriques, Pedro Rangel, Pinto, Jorge Sousa
Tipo de documento: Artigo
Idioma: eng
Título da fonte: Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
Texto Completo: http://hdl.handle.net/1822/14209
Resumo: 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ório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository_id_str 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ório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãoinstacron:RCAAP2023-07-21T11:55:09Zoai:repositorium.sdum.uminho.pt:1822/14209Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-19T18:44:40.439Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãofalse
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ório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron:RCAAP
instname_str Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron_str RCAAP
institution RCAAP
reponame_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
collection Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository.name.fl_str_mv Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
repository.mail.fl_str_mv
_version_ 1799132196403937280