Conditioned semantic slicing for abstraction; industrial experiment

  • Authors:
  • Martin Ward;Hussein Zedan;Matthias Ladkau;Stefan Natelberg

  • Affiliations:
  • De Montfort University, Gateway House, The Gateway, Leicester LE1 9BH, U.K.;De Montfort University, Gateway House, The Gateway, Leicester LE1 9BH, U.K.;De Montfort University, Gateway House, The Gateway, Leicester LE1 9BH, U.K.;De Montfort University, Gateway House, The Gateway, Leicester LE1 9BH, U.K.

  • Venue:
  • Software—Practice & Experience
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

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.