Slicing functional programs by calculation
Main Author: | |
---|---|
Publication Date: | 2006 |
Other Authors: | |
Format: | Article |
Language: | eng |
Source: | Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) |
Download full: | http://hdl.handle.net/11110/520 |
Summary: | Program slicing is a well known family of techniques used to identify code fragments which depend on or are depended upon specific program entities. They are particularly useful in the areas of reverse engineering, program understanding, testing and software maintenance. Most slicing methods, usually targeting either the imperative or the object oriented paradigms, are based on some sort of graph structure representing program dependencies. Slicing techniques amount, therefore, to (sophisticated) graph transversal algorithms. This paper proposes a completely different approach to the slicing problem for functional programs. Instead of extracting program information to build an underlying dependencies’ structure, we resort to standard program calculation strategies, based on the so-called Bird- Meertens formalism. The slicing criterion is specified either as a projection or a hiding function which, once composed with the original program, leads to the identification of the intended slice. Going through a number of examples, the paper suggests this approach may be an interesting, even if not completely general alternative to slicing functional programs |
id |
RCAP_fd1a80fdc8962001f3891b124b6cd959 |
---|---|
oai_identifier_str |
oai:ciencipca.ipca.pt:11110/520 |
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 |
Slicing functional programs by calculationProgram slicingCalculationprogramsProgram slicing is a well known family of techniques used to identify code fragments which depend on or are depended upon specific program entities. They are particularly useful in the areas of reverse engineering, program understanding, testing and software maintenance. Most slicing methods, usually targeting either the imperative or the object oriented paradigms, are based on some sort of graph structure representing program dependencies. Slicing techniques amount, therefore, to (sophisticated) graph transversal algorithms. This paper proposes a completely different approach to the slicing problem for functional programs. Instead of extracting program information to build an underlying dependencies’ structure, we resort to standard program calculation strategies, based on the so-called Bird- Meertens formalism. The slicing criterion is specified either as a projection or a hiding function which, once composed with the original program, leads to the identification of the intended slice. Going through a number of examples, the paper suggests this approach may be an interesting, even if not completely general alternative to slicing functional programsJournal of Universal Computer Science2013-12-20T16:25:27Z2006-01-01T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/articlehttp://hdl.handle.net/11110/520oai:ciencipca.ipca.pt:11110/520enghttp://hdl.handle.net/11110/520metadata only accessinfo:eu-repo/semantics/openAccessF. Rodrigues, NunoBarbosa, Luís S.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 Tecnologiainstacron:RCAAP2022-09-05T12:52:06Zoai:ciencipca.ipca.pt:11110/520Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireinfo@rcaap.ptopendoar:https://opendoar.ac.uk/repository/71602025-05-28T10:01:44.733521Repositó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 |
Slicing functional programs by calculation |
title |
Slicing functional programs by calculation |
spellingShingle |
Slicing functional programs by calculation F. Rodrigues, Nuno Program slicing Calculation programs |
title_short |
Slicing functional programs by calculation |
title_full |
Slicing functional programs by calculation |
title_fullStr |
Slicing functional programs by calculation |
title_full_unstemmed |
Slicing functional programs by calculation |
title_sort |
Slicing functional programs by calculation |
author |
F. Rodrigues, Nuno |
author_facet |
F. Rodrigues, Nuno Barbosa, Luís S. |
author_role |
author |
author2 |
Barbosa, Luís S. |
author2_role |
author |
dc.contributor.author.fl_str_mv |
F. Rodrigues, Nuno Barbosa, Luís S. |
dc.subject.por.fl_str_mv |
Program slicing Calculation programs |
topic |
Program slicing Calculation programs |
description |
Program slicing is a well known family of techniques used to identify code fragments which depend on or are depended upon specific program entities. They are particularly useful in the areas of reverse engineering, program understanding, testing and software maintenance. Most slicing methods, usually targeting either the imperative or the object oriented paradigms, are based on some sort of graph structure representing program dependencies. Slicing techniques amount, therefore, to (sophisticated) graph transversal algorithms. This paper proposes a completely different approach to the slicing problem for functional programs. Instead of extracting program information to build an underlying dependencies’ structure, we resort to standard program calculation strategies, based on the so-called Bird- Meertens formalism. The slicing criterion is specified either as a projection or a hiding function which, once composed with the original program, leads to the identification of the intended slice. Going through a number of examples, the paper suggests this approach may be an interesting, even if not completely general alternative to slicing functional programs |
publishDate |
2006 |
dc.date.none.fl_str_mv |
2006-01-01T00:00:00Z 2013-12-20T16:25:27Z |
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/11110/520 oai:ciencipca.ipca.pt:11110/520 |
url |
http://hdl.handle.net/11110/520 |
identifier_str_mv |
oai:ciencipca.ipca.pt:11110/520 |
dc.language.iso.fl_str_mv |
eng |
language |
eng |
dc.relation.none.fl_str_mv |
http://hdl.handle.net/11110/520 |
dc.rights.driver.fl_str_mv |
metadata only access info:eu-repo/semantics/openAccess |
rights_invalid_str_mv |
metadata only access |
eu_rights_str_mv |
openAccess |
dc.publisher.none.fl_str_mv |
Journal of Universal Computer Science |
publisher.none.fl_str_mv |
Journal of Universal Computer Science |
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_ |
1833590389133541376 |