The procedure extraction problem is concerned with the meaning preserving formation of a procedure from a (not necessarily contiguous) selected set of statements. Previous approaches to the problem have used dependence analysis to identify the non-selected statements which must be ‘promoted ’ (also selected) in order to preserve semantics. All previous approaches to the problem have been syntax preserving. This paper shows that by allowing transformation of the program’s syntax it is possible to extract both procedures and functions in an amorphous manner. That is, although the amorphous extraction process is meaning preserving it is not necessarily syntax preserving. The amorphous approach is advantageous in a variety of situations. These include when it is desirable to avoid promotion, when a value-returning function is to be extracted from a scattered set of assignments to a variable, and when side effects are present in the program from which the procedure is to be extracted. 1
|
1250
|
Object-oriented Software Construction
– Meyer
- 1988
|
|
973
|
Program slicing
– Weiser
- 1984
|
|
556
|
Interprocedural slicing using dependence graphs
– Horwitz, Reps, et al.
- 1990
|
|
485
|
A survey of program slicing techniques
– Tip
- 1995
|
|
225
|
Using Program Slicing in Software Maintenance
– Gallagher, Lyle
- 1991
|
|
99
|
Program Slicing
– Binkley, Gallagher
- 1996
|
|
90
|
Amorphous program slicing
– Harman, Danicic
- 1997
|
|
85
|
Object-Oriented Software Construction, Second Edition
– Meyer
- 1997
|
|
78
|
Specification and Transformation of Programs: A Formal Approach To Software Development
– PARTSCH
- 1990
|
|
61
|
A new model of program dependences for reverse engineering
– Jackson, Rollins
- 1994
|
|
51
|
Generalized partial computation
– Futamura, Nogi
- 1991
|
|
51
|
The Maintainer's Assistant
– Ward, Calliss, et al.
- 1989
|
|
49
|
The Practice of Programming
– Kernighan, Pike
- 1999
|
|
43
|
Proving Program Refinements and Transformations
– Ward
- 1989
|
|
39
|
A program integration algorithm that accommodates semantics-preserving transformations
– Yang, Horwitz, et al.
- 1992
|
|
34
|
Program slicing: Methods and applications
– Lucia
- 2001
|
|
32
|
Partial evaluation and mixed computation
– Bjrner, Ershov, et al.
- 1987
|
|
30
|
Assembler to C migration using the FermaT transformation system
– Ward
- 1999
|
|
26
|
Restructuring programs by tucking statements into functions
– Lakhotia, Deprez
- 1998
|
|
24
|
A survey of empirical results on program slicing
– Binkley, Harman
- 2004
|
|
24
|
Evaluating context-sensitive slicing and chopping
– Krinke
- 2002
|
|
22
|
Testability transformation
– Harman, Hu, et al.
- 2004
|
|
20
|
Evolutionary testing in the presence of loop-assigned flags: A testability transformation approach
– Baresel, Binkley, et al.
- 2004
|
|
19
|
Semantics-preserving procedure extraction
– Komondoor, Horwitz
- 2000
|
|
19
|
Effective, Automatic Procedure Extraction
– Komondoor, Horwitz
- 2003
|
|
11
|
An empirical investigation of the influence of a type of side effects on program comprehension
– Dolado, Harman, et al.
- 2003
|
|
9
|
Syntax-directed amorphous slicing
– Harman, Hu, et al.
- 2004
|
|
7
|
Recommended C Style and Coding Standards
– Cannon
- 1989
|
|
6
|
SYMBAD: A symbolic executor of sequential Ada programs
– Coen-Porisini, Paoli
- 1990
|
|
4
|
Mechanical tool support for high integrity software development
– Mehlich, Baxter
- 1997
|
|
4
|
Learning to program
– THOMAS
- 1989
|
|
3
|
A programming style for java
– HAAHR
- 1999
|
|
1
|
A survey ofempirical results on program slicing. Advances in Computers 62
– BINKLEY, HARMAN
- 2004
|
|
1
|
A programming style for java, Oct.1999. http://www.webcom.com/~haahr/essays/javastyle/. [12
– HAAHR
|
|
1
|
Syntax-directed amorphousslicing
– HARMAN, HU, et al.
|
|
1
|
A new modelof program dependences for reverse engineering
– JACKSON, ROLLINS
- 1994
|
|
1
|
Evaluating context-sensitive slicingand chopping
– KRINKE
- 1998
|