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 :
بازگشت