• program slicing;
  • data flow analysis;
  • software maintenance


Maintenance of aging legacy COBOL systems is labor-intensive and is becoming a more and more difficult problem. Program slicing is a potentially useful analysis for aiding different maintenance activities, including program comprehension, reverse engineering, debugging, and testing. Numerous techniques have been proposed in the past decades; however, in interactive contexts, we found none of them suitable for slicing industrial-scale COBOL systems due to their large space or preprocessing requirements. This paper proposes a novel static program slicing approach, which is based on context-sensitive token propagation over control flow graphs (CFGs). CFGs require less space compared with program dependence graphs (PDGs) used by other techniques, and the token propagation method computes the necessary information only, on demand. Algorithms are presented for data flow and full slicing to calculate precise program slices. Preliminary application experiences on industrial-scale COBOL systems are also summarized. Copyright © 2011 John Wiley & Sons, Ltd.