TY - JOUR TI - Theory and algorithms for slicing unstructured programs AU - Harman, Mark AU - Lakhotia, Arun AU - Binkley, David T2 - Information and Software Technology AB - Program slicing identifies parts of a program that potentially affect a chosen computation. It has many applications in software engineering, including maintenance, evolution and re-engineering of legacy systems. However, these systems typically contain programs with unstructured control-flow, produced using goto statements; thus, effective slicing of unstructured programs remains an important topic of study. This paper shows that slicing unstructured programs inherently requires making trade-offs between three slice attributes: termination behaviour, size, and syntactic structure. It is shown how different applications of slicing require different tradeoffs. The three attributes are used as the basis of a three-dimensional theoretical framework, which classifies slicing algorithms for unstructured programs. The paper proves that for two combinations of these dimensions, no algorithm exists and presents algorithms for the remaining six combinations. DA - 2006/07// PY - 2006 DO - 10.1016/j.infsof.2005.06.001 DP - ScienceDirect VL - 48 IS - 7 SP - 549 EP - 565 J2 - Information and Software Technology SN - 0950-5849 UR - http://www.sciencedirect.com/science/article/pii/S0950584905000881 Y2 - 2014/01/06/20:58:51 KW - Amorphous slicing KW - Unstructured control-flow KW - program slicing ER -