"Bagatelle in C arranged for VDM SoLo"

Detalhes bibliográficos
Autor(a) principal: Oliveira, José Nuno Fonseca
Data de Publicação: 2001
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/24574
Resumo: This paper sketches a reverse engineering discipline which combines formal and semi-formal methods. Central to the former is denotational semantics, expressed in the ISO/IEC 13817-1 standard specification language (VDM-SL). This is strengthened with algebra of pro- gramming, which is applied in “reverse order” so as to reconstruct formal specifications from legacy code. The latter include code slicing, a “shortcut” which trims down the complexity of handling the formal semantics of all program variables at the same time. A key point of the approach is its constructive style. Reverse calculations go as far as absorbing auxiliary variables, introducing mutual recursion (if applicable) and reversing semantic denota- tions into standard generic programming schemata such as cata/paramorphisms. The approach is illustrated for a small piece of code already studied in the code-slicing literature: Kernighan and Richtie’s word count C programming “bagatelle”.
id RCAP_87a636b2bc48002bf1f52d7b48c60782
oai_identifier_str oai:repositorium.sdum.uminho.pt:1822/24574
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 "Bagatelle in C arranged for VDM SoLo"Reverse engineeringDenotational semanticsSlicingAlgebra of programmingScience & TechnologyThis paper sketches a reverse engineering discipline which combines formal and semi-formal methods. Central to the former is denotational semantics, expressed in the ISO/IEC 13817-1 standard specification language (VDM-SL). This is strengthened with algebra of pro- gramming, which is applied in “reverse order” so as to reconstruct formal specifications from legacy code. The latter include code slicing, a “shortcut” which trims down the complexity of handling the formal semantics of all program variables at the same time. A key point of the approach is its constructive style. Reverse calculations go as far as absorbing auxiliary variables, introducing mutual recursion (if applicable) and reversing semantic denota- tions into standard generic programming schemata such as cata/paramorphisms. The approach is illustrated for a small piece of code already studied in the code-slicing literature: Kernighan and Richtie’s word count C programming “bagatelle”.FCTSpringer VerlagUniversidade do MinhoOliveira, José Nuno Fonseca20012001-01-01T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/articleapplication/pdfhttp://hdl.handle.net/1822/24574engOl0110.3217/jucs-007-08-0754http://www.jucs.org/jucs_7_8/bagatelle_in_c_arrangedinfo: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-21T12:50:29Zoai:repositorium.sdum.uminho.pt:1822/24574Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-19T19:49:13.354061Repositó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 "Bagatelle in C arranged for VDM SoLo"
title "Bagatelle in C arranged for VDM SoLo"
spellingShingle "Bagatelle in C arranged for VDM SoLo"
Oliveira, José Nuno Fonseca
Reverse engineering
Denotational semantics
Slicing
Algebra of programming
Science & Technology
title_short "Bagatelle in C arranged for VDM SoLo"
title_full "Bagatelle in C arranged for VDM SoLo"
title_fullStr "Bagatelle in C arranged for VDM SoLo"
title_full_unstemmed "Bagatelle in C arranged for VDM SoLo"
title_sort "Bagatelle in C arranged for VDM SoLo"
author Oliveira, José Nuno Fonseca
author_facet Oliveira, José Nuno Fonseca
author_role author
dc.contributor.none.fl_str_mv Universidade do Minho
dc.contributor.author.fl_str_mv Oliveira, José Nuno Fonseca
dc.subject.por.fl_str_mv Reverse engineering
Denotational semantics
Slicing
Algebra of programming
Science & Technology
topic Reverse engineering
Denotational semantics
Slicing
Algebra of programming
Science & Technology
description This paper sketches a reverse engineering discipline which combines formal and semi-formal methods. Central to the former is denotational semantics, expressed in the ISO/IEC 13817-1 standard specification language (VDM-SL). This is strengthened with algebra of pro- gramming, which is applied in “reverse order” so as to reconstruct formal specifications from legacy code. The latter include code slicing, a “shortcut” which trims down the complexity of handling the formal semantics of all program variables at the same time. A key point of the approach is its constructive style. Reverse calculations go as far as absorbing auxiliary variables, introducing mutual recursion (if applicable) and reversing semantic denota- tions into standard generic programming schemata such as cata/paramorphisms. The approach is illustrated for a small piece of code already studied in the code-slicing literature: Kernighan and Richtie’s word count C programming “bagatelle”.
publishDate 2001
dc.date.none.fl_str_mv 2001
2001-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/24574
url http://hdl.handle.net/1822/24574
dc.language.iso.fl_str_mv eng
language eng
dc.relation.none.fl_str_mv Ol01
10.3217/jucs-007-08-0754
http://www.jucs.org/jucs_7_8/bagatelle_in_c_arranged
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 Verlag
publisher.none.fl_str_mv Springer Verlag
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_ 1799133072828923904