The essence of the iterator pattern
Journal of Functional Programming
A bottom-up approach to understand functional programs
Proceedings of The Fourth International C* Conference on Computer Science and Software Engineering
Fission for program comprehension
MPC'06 Proceedings of the 8th international conference on Mathematics of Program Construction
Using conditional trace slicing for improving Maude programs
Science of Computer Programming
Hi-index | 0.00 |
This paper sketches a discipline for reverse engineering which combines formal and semi-formal methods. A mong the former is thealgebra 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 approachby reversing a piece of code (from C to Haskell) already studied in the code-slicing literature: the word-count ( wc ) program.