Reverse program calculation supported by code slicing

This paper sketches a discipline for reverse engineering which combines formal and semi-formal methods. Among the former is the "algebra of programming", which we apply in "reverse order" so as to reconstruct formal specifications of legacy code. The latter includes code slicing,...

Full description

Saved in:
Bibliographic Details
Published inProceedings Eighth Working Conference on Reverse Engineering pp. 35 - 45
Main Authors Villavicencio, G., Oliveira, J.N.
Format Conference Proceeding
LanguageEnglish
Published IEEE 2001
Subjects
Online AccessGet full text
ISBN0769513034
9780769513034
ISSN1095-1350
DOI10.1109/WCRE.2001.957808

Cover

More Information
Summary:This paper sketches a discipline for reverse engineering which combines formal and semi-formal methods. Among the former is the "algebra of programming", which we apply in "reverse order" so as to reconstruct formal specifications of legacy code. The latter includes code slicing, used as a means of trimming down the complexity of handling the formal semantics of all program variables at the same time. A strong point of the approach is its constructive style. Reverse calculations go as far as imploding auxiliary variables, introducing mutual recursion (if applicable) and transforming semantic functions into standard generic programming schemata such as cata/paramorphisms. We illustrate the approach by reversing a piece of code (from C to Haskell) already studied in the code-slicing literature: the word-count (wc) program.
ISBN:0769513034
9780769513034
ISSN:1095-1350
DOI:10.1109/WCRE.2001.957808