Information Processing Letters
Interprocedural slicing using dependence graphs
ACM Transactions on Programming Languages and Systems (TOPLAS)
The semantic approach to program slicing
PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
A multipurpose backtracking algorithm
Journal of Symbolic Computation
SIGSOFT '94 Proceedings of the 2nd ACM SIGSOFT symposium on Foundations of software engineering
IEEE Transactions on Software Engineering - Special issue: best papers of the sixth international workshop on Petri nets and performance models (PNPM'95)
The year 2000 software problem: quantifying the costs and assessing the consequences
The year 2000 software problem: quantifying the costs and assessing the consequences
A Discipline of Programming
Successful Evolution of Software Systems
Successful Evolution of Software Systems
GUSTT: An Amorphous Slicing System which Combines Slicing and Transformation
WCRE '01 Proceedings of the Eighth Working Conference on Reverse Engineering (WCRE'01)
WPC '97 Proceedings of the 5th International Workshop on Program Comprehension (WPC '97)
Proving program refinements and transformations
Proving program refinements and transformations
Pigs from sausages? Reengineering from assembler to C via FermaT transformations
Science of Computer Programming - Special issue on program transformation
Slicing as a program transformation
ACM Transactions on Programming Languages and Systems (TOPLAS)
An empirical evaluation of several test-a-few strategies for testing particular conditions
Software—Practice & Experience
Hi-index | 0.00 |
One of the most challenging tasks a programmer can face is attempting to analyse and understand a legacy assembler system. Many features of assembler make analysis difficult, and these are the same features that make migration from assembler to a high-level language difficult. In this paper, we discuss the application of program transformation technology to assist with analysing and understanding legacy assembler systems. We briefly introduce the fundamentals of our program transformation theory and program slicing, which generalizes to conditional semantic slicing. These transformations are applied to a large commercial assembler system to automatically generate high-level abstract descriptions of the behaviour of each assembler module, with error handling code sliced away. The assembler system was then migrated to C. The result is a dramatic improvement in the understandability of the programs; on average a 6000-line assembler listing is condensed down to a 132-line high-level language abstraction. A second case study, involving over one million lines of source code from many different assembler systems, showed equally dramatic results. Copyright © 2008 John Wiley & Sons, Ltd.