DocumentCode
1664192
Title
Reverse program calculation supported by code slicing
Author
Villavicencio, G. ; Oliveira, J.N.
Author_Institution
Univ. Catolica de Santiago del Estero, Argentina
fYear
2001
fDate
6/23/1905 12:00:00 AM
Firstpage
35
Lastpage
45
Abstract
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
Keywords
algebraic specification; calculation; program slicing; reverse engineering; C code; Haskell; auxiliary variables imploding; catamorphisms; code slicing; constructive style; formal methods; formal semantics; generic programming schemata; legacy code formal specifications reconstruction; mutual recursion; paramorphisms; program variables; programming algebra; reverse program calculation; semantic functions; semi-formal methods; word-count program; Algebra; Application software; Calculus; Documentation; Formal specifications; Functional programming; Hardware; Reverse engineering; Software design; Software engineering;
fLanguage
English
Publisher
ieee
Conference_Titel
Reverse Engineering, 2001. Proceedings. Eighth Working Conference on
Conference_Location
Stuttgart
ISSN
1095-1350
Print_ISBN
0-7695-1303-4
Type
conf
DOI
10.1109/WCRE.2001.957808
Filename
957808
Link To Document