Direct update of data flow representations for a meaning-preserving program restructuring tool

作者: William G. Griswold

DOI: 10.1145/167049.167063

关键词: Program Dependence GraphAliasing (computing)Computer scienceRestructuringSoftware engineeringStructure (mathematical logic)SoftwareData flow diagramAliasTransformation (function)Programming language

摘要: Automated assistance for meaning-preserving global restructuring is an approach helping software engineers improve the structure of programs, thus lowering costs maintenance. The consturction a restructuing tool encounters many conflicting goals---such as simplicity. extensibility, and good performance---that cannot be met without some compromise. In particular, current technique assisting uses costly program representation---a Program Dependence Graph (PDG) with alias information---that not practical to recompute from scratch after each transformation. There are at least two possible solutions. A commonly suggested efficiently updating data flow representations use generic incremental algorithm that does make special nature restructuring. This general, but it yet handle aliasing fully. By taking advantage transformations implement more efficient update than also handles aliasing. idea direct updates PDG analogous changes on text. downsides application-specific, applies only semantically restricted applications like restructuring, may complex. choice between techniques requires understanding future needs tool's users.This paper describes related provides managing its complexity, critiques advantages shortcomings relative update, presents performance results.

参考文章(44)
Olin Grigsby Shivers, Control-flow analysis of higher-order languages of taming lambda Carnegie Mellon University. ,(1991)
Thomas Reps, Susan Horwitz, Wuu Yang, Detecting Program Components With Equivalent Behaviors University of Wisconsin-Madison Department of Computer Sciences. ,(1989)
Ravi Sethi, Jeffrey D. Ullman, Alfred V. Aho, Compilers: Principles, Techniques, and Tools ,(1986)
Thomas Reps, Susan Horwitz, Wuu Yang, A new algorithm for semantics-based program integration The University of Wisconsin - Madison. ,(1990)
William G. Griswold, Robert W. Bowdidge, Program Restructuring via Design-Level Manipulation ICSE '93 Selected papers from the Workshop on Studies of Software Design. pp. 127- 139 ,(1993) , 10.1007/BFB0030525
Rebecca Jane Parsons, Semantic program dependence graphs Rice University. ,(1992)
Laszlo A Belady, MM Lehman, None, Program Evolution: Processes of Software Change ,(1985)
Bennett P. Lientz, E. Burton Swanson, Software maintenance management ,(1980)
Reps, Teitelbaum, Language Processing in Program Editors IEEE Computer. ,vol. 20, pp. 29- 40 ,(1987) , 10.1109/MC.1987.1663414