This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Profiling an Incremental Data Flow Analysis Algorithm
February 1990 (vol. 16 no. 2)
pp. 129-140

Incremental data flow analysis algorithms have been designed to deal efficiently with change in evolving software systems. These algorithms document the current state of a software system by incorporating change effects into previously derived information describing the definition and use of data in the system. Unfortunately, the performance of these algorithms cannot, in general, be characterized by analytic predictions of their expected behavior. It is possible, however, to observe their performance empirically and predict their average behavior. The authors report on experiments on the empirical profiling of a general-purpose, incremental data flow analysis algorithm. The algorithm, dominator based and coded in C, was applied to statistically significant numbers of feasible, random software systems of moderate size. The experimental results, with quantifiable confidence limits, substantiate the claim that incremental analyses are viable and grow more valuable as a software system grows in size.

[1] A. V. Aho, R. Sethi, and J. D. Ullman,Compilers: Principles, Techniques, and Tools. Reading, MA: Addison-Wesley, 1986.
[2] F. E. Allen and J. Cocke, "A program data flow analysis procedure,"CACM, vol. 19, no. 3, Mar. 1977.
[3] R. Allen and K. Kennedy, "Automatic translation of FORTRAN to vector form,"ACM Trans. Programming Languages Syst., vol. 9, no. 4, pp. 491-524, 1987.
[4] A. M. Berman, M. C. Paull, and B. G. Ryder, "Proving relative lower bounds for incremental algorithm,"Acta Inform., 1989, to be published.
[5] M. Burke, "'An interval-based approach to exhaustive and incremental interprocedural data flow analysis," IBM Thomas J. Watson Research Center, Yorktown Heights, NY, Comput. Sci. Tech. Rep. RC12702, Aug. 1987.
[6] M. Burke and B. G. Ryder, "Incremental iterative data flow analysis algorithms," Lab. Comput. Sci. Res., Dep. Comput. Sci., Rutgers Univ., Tech. Rep. LCSR-TR-096, July 1987; also available as IBM Thomas J. Watson Research Center, Yorktown Heights, NY, Tech. Rep. RC13170; alsoIEEE Trans. Software Eng., to be published.
[7] R. M. Burstall and J. Darlington, "A transformation system for developing recursive programs,"J. ACM, vol. 24, no. 1, pp. 44-67, Jan. 1977.
[8] I. Cai and R. Paige, "Program derivation by fixed point computation,"Sci. Comput. Program., vol. 11, no. 3, Apr. 1989.
[9] M. D. Carroll, "Dataflow update via attribute and dominator update," Ph.D. dissertation, Dep. Comput. Sci., Rutgers Univ., May 1988.
[10] M. D. Carroll, W. Landi, and B. G. Ryder, "A new pointer-removing program transformation," Center Computer Aids for Industrial Productivity, Rutgers Univ., Tech. Rep., 1989, in preparation.
[11] M. D. Carroll, H. Pande, and B. G. Ryder, "Ismm: An incremental software maintenance manager," Center for Computer Aids for Industrial Productivity, Rutgers Univ., Tech. Rep. CAIP-TR-077, Aug. 1988.
[12] M.D. Carroll and B.G. Ryder, "Incremental Dataflow Analysis via Dominator and Attribute Updates,"Proc. SIGACT/SIGPlan Symp. Principles of Programming Languages, ACM, New York, 1988, pp. 274-284.
[13] K. D. Cooper and K. Kennedy, "Efficient computation of flow insensitive interprocedural summary information," inProc. ACM SIGPLAN Symp. Compiler Construction, June 1984, pp. 247-258.
[14] K. Cooper and K. Kennedy, "Complexity of interprocedural side-effect analysis," Dep. Comput. Sci., Rice Univ., Tech. Rep. TR87-61, Oct. 1987.
[15] K. D. Cooper, "Interprocedural data flow analysis in a programming environment," Ph.D. dissertation, Dep. Math. Sci., Rice Univ., 1983.
[16] J. Ellis,Bulldog: A Compiler for VLIW Architectures, MIT Press, Cambridge, MA, 1986, pp. 260-261.
[17] V. Ghodssi, "Incremental analysis of programs," Ph.D. dissertation, Univ. Central Florida, 1983.
[18] R. Gupta and M. L. Soffa, "Region scheduling," inProc. Second Int. Conf. Supercomputing, vol. 3, pp. 141-148, May 1987.
[19] M. Hecht,Flow Analysis of Computer Programs. New York: Elsevier North-Holland, 1977.
[20] S. Horwitz, J. Prins, and T. Reps, "Integrating non-interfering versions of programs," inProc. Fifteenth ACM Symp. Principles of Programming Languages, ACM, New York, 1988, pp. 133-145.
[21] R. Johnson and G. Bhattacharyya,Statistics: Principles and Methods. New York: Wiley, 1986.
[22] S. C. Johnson, "Lint, a C program checker," inUNIX Programmer's Manual: Supplementary Documents, Univ. California, Berkeley, 1984.
[23] G. A. Kildall, "A unified approach to global program optimization," inProc. ACM Symp. on Principles of Program. Languages, 1973, pp. 194-206.
[24] T. Lengauer and R.E. Tarjan, "A Fast Algorithm for Finding Dominators in a Flowgraph,"ACM Trans. Programming Languages and Systems, July 1979, pp. 121-141.
[25] T. J. Marlowe, "Data flow analysis and incremental iteration," Ph.D. dissertation, Rutgers Univ., Aug. 1989.
[26] T. J. Marlowe, "Restarting fixed point iteration: Sources of imprecision; Lab. Comput. Sci. Res., Rutgers Univ., Tech. Rep. LCSR-TR-118, 1989.
[27] T. J. Marlowe and B. G. Ryder, "An efficient hybrid algorithm for incremental data flow analysis,"Conf. Record ACM Symp. Principles of Programming Languages, 1990, pp. 184-196.
[28] L. M. Masinter, "Global program analysis in an interactive environment," Ph.D. dissertation, Stanford Univ., 1979.
[29] K. Ottenstein and L. Ottenstein, "The program dependence graph in software development environments,"ACM SIGPLAN Notices, vol. 19, no. 5, pp. 177-184, May 1984; see also,Proc. ACM SIGSOFT/SIGPLAN Software Eng. Symp. Practical Software Development Environments.
[30] D. A. Padua and M. J. Wolfe, "Advanced compiler optimizations for supercomputers,"Common. ACM, vol. 29, no. 12, pp. 1184- 1201, Dec. 1986.
[31] L. Pollock and M. Soffa, "An incremental version of iterative data flow analysis,"IEEE Trans. Software Eng., vol. 15, no. 12, Dec. 1989.
[32] S. Rapps and E. J. Weyuker, "Selecting software test data using data flow information,"IEEE Trans. Software Eng., vol. SE-11, no. 4, pp. 367-375, Apr. 1985.
[33] B. G. Ryder, "The pfort verifier,"Software--Practice and Experience, vol. 4, pp. 359-377, 1974.
[34] B. G. Ryder, "Incremental data flow analysis based on a unified model of elimination algorithms," inConf. Rec. 9th Ann. ACM Symp. POPL, 1982, pp. 167-176.
[35] B. G. Ryder, "An application of static program analysis to software maintenance," inProc. Twentieth Hawaii Int. Conf. System Sciences, Vol. II, Software, Jan. 1987, pp. 82-91.
[36] B. Ryder, "ISMM: Incremental software maintenance manager,"Proc. Conf. Software Maintenance, 1989, pp. 142-164.
[37] B. G. Ryder and M. D. Carroll, "An incremental algorithm for software analysis,"Proc. ACM SIGSOFT/SIGPLAN Software Eng. Symp. Practical Software Dev. Environments, 1986, pp. 171-179.
[38] B. G. Ryder, T. J. Marlowe, and M. C. Paull, "Conditions for incremental iteration: Examples and counterexamples,"Sci. Programm., vol. 11, pp. 1-15, 1988.
[39] B. G. Ryder and H. Pande, "The interprocedural structure of C programs: An empirical study," Lab. Comput. Sci. Res., Dep. Comput. Sci., Rutgers Univ., Tech. Rep. LCSR-TR-99, Feb. 1988.
[40] B. G. Ryder and M. C. Paull, "Elimination algorithms for data flow analysis,"ACM Comput. Surveys, vol. 18, no. 3, Sept. 1986.
[41] B.G. Ryder and M. C. Paull, "Incremental data-flow analysis,"ACM Trans. Program Lang. Syst., vol. 10, pp. 1-50, Jan. 1988.
[42] J. T. Schwartz and M. Sharir, "A design for optimization of the bit-vectoring class," Courant Inst. Math. Sci., New York Univ., Comput. Sci. Tech. Rep. 17, Sept. 1979.
[43] R. E. Tarjan, "Fast algorithms for solving path problems,"JACM, vol. 28, no. 3, July 1981.
[44] R. E. Tarjan, "Amortized computational complexity,"SIAM J. Algebraic and Discrete Methods, vol. 6, no. 2, pp. 306-318, Apr. 1985.
[45] M. Weiser, "Program slicing,"IEEE Trans. Software Eng., vol. SE-10, no. 4, pp. 352-357, July 1984.
[46] F. Zadeck, "Incremental data flow analysis in a structured program editor," inProc. ACM SIGPLAN 1984 Symp. Compiler Construction, June 1984.

Index Terms:
incremental data flow analysis algorithm; evolving software systems; empirical profiling; parallel programming; program testing.
Citation:
B.G. Ryder, W. Landi, H.P. Pande, "Profiling an Incremental Data Flow Analysis Algorithm," IEEE Transactions on Software Engineering, vol. 16, no. 2, pp. 129-140, Feb. 1990, doi:10.1109/32.44377
Usage of this product signifies your acceptance of the Terms of Use.