
This Article  
 
Share  
Bibliographic References  
Add to:  
Digg Furl Spurl Blink Simpy Del.icio.us Y!MyWeb  
Search  
 
ASCII Text  x  
Y.A. Liu, G. Gómez, "Automatic Accurate CostBound Analysis for HighLevel Languages," IEEE Transactions on Computers, vol. 50, no. 12, pp. 12951309, December, 2001.  
BibTex  x  
@article{ 10.1109/TC.2001.970569, author = {Y.A. Liu and G. Gómez}, title = {Automatic Accurate CostBound Analysis for HighLevel Languages}, journal ={IEEE Transactions on Computers}, volume = {50}, number = {12}, issn = {00189340}, year = {2001}, pages = {12951309}, doi = {http://doi.ieeecomputersociety.org/10.1109/TC.2001.970569}, publisher = {IEEE Computer Society}, address = {Los Alamitos, CA, USA}, }  
RefWorks Procite/RefMan/Endnote  x  
TY  JOUR JO  IEEE Transactions on Computers TI  Automatic Accurate CostBound Analysis for HighLevel Languages IS  12 SN  00189340 SP1295 EP1309 EPD  12951309 A1  Y.A. Liu, A1  G. Gómez, PY  2001 KW  Cost analysis KW  cost bound KW  performance analysis and measurements KW  program analysis and transformation KW  program optimization KW  timing analysis KW  time analysis KW  space analysis KW  worstcase execution time. VL  50 JA  IEEE Transactions on Computers ER   
This paper describes a languagebased approach for automatic and accurate costbound analysis. The approach consists of transformations for building costbound functions in the presence of partially known input structures, symbolic evaluation of the costbound function based on input size parameters, and optimizations to make the overall analysis efficient as well as accurate, all at the sourcelanguage level. The calculated cost bounds are expressed in terms of primitive cost parameters. These parameters can be obtained based on the language implementation or can be measured conservatively or approximately, yielding accurate, conservative, or approximate time or space bounds. We have implemented this approach and performed a number of experiments for analyzing Scheme programs. The results helped confirm the accuracy of the analysis.
[1] H. Abelson et al., “Revised Report on the Algorithmic Language Scheme,” HigherOrder and Symbolic Computation, vol. 11, no. 1, pp. 7105, Aug. 1998.
[2] H. Abelson, G.J. Sussman, and J. Sussman, Structure and Interpretation of Computer Programs. MIT Press and McGrawHill, 1985.
[3] P. Altenbernd, “On the False Path Problem in Hard RealTime Programs,” Proc. Eighth EuroMicro Workshop RealTime Systems, pp. 102107, June 1996.
[4] R. Arnold, F. Mueller, D. Whalley, and M. Harmon, “Bounding WorstCase Instruction Cache Performance,” Proc. 15th IEEE RealTime Systems Symp., pp. 172181, Dec. 1994.
[5] Partial Evaluation and Mixed Computation, B. Bjørner, A.P. Ershov, and N.D. Jones, eds. Amsterdam: NorthHolland, 1988.
[6] J. Blieberger, “DataFlow Frameworks for WorstCase Execution Time Analysis,” RealTime Systems, to appear.
[7] J. Blieberger and R. Lieger, “WorstCase Space and Time Complexity of Recursive Procedures,” RealTime Systems, vol. 11, no. 2, pp. 115144, 1996.
[8] Cadence Research Systems, Chez Scheme System Manual, revision 2.4, Cadence Research Systems, Bloomington, Ind., July 1994.
[9] D. R. Chase, M. Wegman, and F. K. Zadeck,“Analysis of pointers and structures,”inProc. SIGPLAN '90 Conf. Programming Languages Design and Implementation,June 1990, pp. 296–310;SIGPLAN Notices, vol. 25, no. 6.
[10] J. Cohen, “ComputerAssisted Microanalysis of Programs,” Comm. ACM, vol. 25, no. 1, pp. 724733, Oct. 1982.
[11] R.K. Dybvig, The Scheme Programming Language. Englewood Cliffs, N.J.: Prentice Hall, 1987.
[12] J. Engblom, P. Altenbernd, and A. Ermedahl, “Facilitating WorstCase Execution Time Analysis for Optimized Code,” Proc. 10th EuroMicro Workshop RealTime Systems, June 1998.
[13] A. Ermedahl and J. Gustafsson, “Deriving Annotations for Tight Calculation of Execution Time,” Proc. EuroPar '97, pp. 12981307, Aug. 1997.
[14] C. Ferdinand, F. Martin, and R. Wilhelm, “Applying Compiler Techniques to Cache Behavior Prediction,” Proc. ACM SIGPLAN 1997 Workshop Languages, Compilers, and Tools for RealTime Systems, pp. 3746, 1997.
[15] C. Ferdinand and R. Wilhelm, “Efficient and Precise Cache Behavior Prediction for RealTime Systems,” RealTime Systems, vol. 17, nos. 23, pp. 131181, Nov. 1999.
[16] P. Flajolet, B. Salvy, and P. Zimmermann, “LambdaUpsilonOmega: An Assistant Algorithms Analyzer,” Applied Algebra, Algebraic Algorithms and ErrorCorrecting Codes, T. Mora, ed., pp. 201212, July 1989.
[17] P. Flajolet, B. Salvy, and P. Zimmermann, “Automatic AverageCase Analysis of Algorithms,” Theoretical Computer Science, Series A, vol. 79, no. 1, pp. 37109, Feb. 1991.
[18] Y. Futamura and K. Nogi, “Generalized Partial Evaluation,” Partial Evaluation and Mixed Computation, B. Bjørner, A.P. Ershov, and N.D. Jones, eds., pp. 133151, Amsterdam: NorthHolland, 1988.
[19] J. Gustafsson and A. Ermedahl, “Automatic Derivation of Path and Loop Annotations in ObjectOriented RealTime Programs,” J. Parallel and Distributed Computing Practices, vol. 1, no. 2, June 1998.
[20] M.G. Harmon, T.P. Baker, and D.B. Whalley, “A Retargetable Technique for Predicting Execution Time,” Proc. 11th IEEE RealTime Systems Symp., pp. 6877, Dec. 1992.
[21] C.A. Healy, M. Sjödin, V. Rustagi, and D.B. Whalley, “Bounding Loop Iterations for Timing Analysis,” Proc. IEEE RealTime Technology and Applications Symp., pp. 1221, June 1998.
[22] L.J. Hendren, J. Hummel, and A. Nicolau, “Abstractions for Recursive Pointer Data Structures: Improving the Analysis and Transformation of Imperative programs,” Proc. SIGPLAN '92 Conf. Programming Language Design and Implementation, pp. 249–260, June 1992.
[23] N.D. Jones, “An Introduction to Partial Evaluation,” ACM Computing Surveys, vol. 28, no. 3, pp. 480–503, Sept. 1996.
[24] N.D. Jones, C. Gomard, and P. Sestoft, Partial Evaluation and Automatic Program Generation, Int'l Series in Computer Science, Englewood Cliffs, N.J.: Prentice Hall, June 1993.
[25] D.E. Knuth, The Art of Computer Programming, vol. 1,Addison Wesley, second ed. 1973.
[26] D. Le Métayer, “Ace: An Automatic Complexity Evaluator,” ACM Trans. Programing Languages and Systems, vol. 10, no. 2, pp. 248266, Apr. 1988.
[27] C.S. Lee, N.D. Jones, and A.M. BenAmram, “The SizeChange Principle for Program Termination,” Conf. Record 28th Ann. ACM Symp. Principles of Programming Languages, Jan. 2001.
[28] S.S. Lim et al., "An Accurate Worst Case Timing Analysis for RISC Processors," IEEE Trans. Software Eng., Vol. 21, No. 7, July 1995, pp. 593604.
[29] Y.A. Liu, “Efficiency by Incrementalization: An Introduction,” HigherOrder and Symbolic Computation, vol. 13, no. 4, pp. 289313, Dec. 2000.
[30] Y.A. Liu and G. Gómez, “Automatic Accurate TimeBound Analysis for HighLevel Languages,” Proc. ACM SIGPLAN 1998 Workshop Languages, Compilers, and Tools for Embedded Systems, pp. 3140, June 1998.
[31] Y.A. Liu, S.D. Stoller, and T. Teitelbaum, “Static Caching for Incremental Computation,” ACM Trans. Programming Languages and Systems, vol. 20, no. 3, pp. 546585, May 1998.
[32] Y.A. Liu and T. Teitelbaum, “Systematic Derivation of Incremental Programs,” Scientific Computer Programming, vol. 24, no. 1, pp. 139, Feb. 1995.
[33] T. Lundqvist and P. Stenström, “Integrating Path and Timing Analysis Using InstructionLevel Simulation Techniques,” Proc. ACM SIGPLAN 1998 Workshop Languages, Compilers, and Tools for Embedded Systems, pp. 115, June 1998.
[34] T. Lundqvist and P. Stenström, “An Integrated Path and Timing Analysis Method Based on CycleLevel Symbolic Execution,” RealTime Systems, vol. 17, nos. 23, pp. 183207, Nov. 1999.
[35] R. Milner, M. Tofte, and R. Harper, The Definition of Standard ML. MIT Press, 1990.
[36] C. Park, "Predicting Program Execution Times by Analyzing Static and Dynamic Program Paths," J. RealTime Systems, vol. 5, no. 1, pp. 3162, Mar. 1993.
[37] C.Y. Park and A.C. Shaw, "Experiments With a Program Timing Tool Based on SourceLevel Timing Schema," Computer, pp. 4857, May 1991.
[38] P. Persson, “Live Memory Analysis for Garbage Collection in Embedded Systems,” Proc. ACM SIGPLAN 1999 Workshop Languages, Compilers, and Tools for Embedded Systems, pp. 4554, May 1999.
[39] P.P. Puschner and A.V. Schedl, “Computing Maximum Task Execution Times—A GraphBased Approach,” RealTime Systems, vol. 13, no. 1, pp. 6791, 1997.
[40] T. Reps and T. Teitelbaum, The Synthesizer Generator: A System for Constructing LanguageBased Editors. New York: SpringerVerlag, 1988.
[41] M. Rosendahl, “Automatic Complexity Analysis,” Proc. Fourth Int'l Conf. Functional Programming Languages and Computer Architecture, pp. 144156, Sept. 1989.
[42] R.H. Saavedra and A.J. Smith,"Analysis of Benchmark Characteristics and Benchmark Performance Prediction," ACM Trans. Computer Systems, vol. 14, no. 4, 1996, pp. 344384.
[43] R.H. SaavedraBarrera, A.J. Smith, and E. Miya, “Machine Characterization Based on an Abstract HighLevel Language Machine,” IEEE Trans. Computers, vol. 38, no. 12, pp. 1,6591,679, Dec. 1989.
[44] D. Sands, “Complexity Analysis for a Lazy HigherOrder Language,” Proc. Third European Symp. Programming, N.D. Jones, ed., pp. 361376, May 1990.
[45] W.L. Scherlis, “Program Improvement by Internal Specialization,” Conf. Record Eighth Ann. ACM Symp. Principles of Programming Languages, pp. 4149, Jan. 1981.
[46] A.C. Shaw, "Reasoning About Time in HigherLevel Language Software," IEEE Trans. Software Eng., vol. 15, no. 7, pp. 875889, 1989.
[47] V.F. Turchin, “The Concept of a Supercompiler,” ACM Trans. Programming Languages and Systems, vol. 8, no. 3, pp. 292325, July 1986.
[48] L. Unnikrishnan, S.D. Stoller, and Y.A. Liu, “Automatic Accurate Live Memory Analysis for GarbageCollected Languages,” Proc. ACM SIGPLAN 2001 Workshop Languages, Compilers, and Tools for Embedded Systems, June 2001.
[49] P. Wadler, “Strictness Analysis Aids Time Analysis,” Conf. Record 15th Ann. ACM Symp. Principles of Programming Languages, Jan. 1988.
[50] B. Wegbreit, “Mechanical Program Analysis,” Comm. ACM, vol. 18, no. 9, pp. 528538, Sept. 1975.
[51] B. Wegbreit, “GoalDirected Program Transformation,” IEEE Trans. Software Eng., vol. 2, no. 2, pp. 6980, June 1976.
[52] D. Weise, R.F. Crew, M. Ernst, and B. Steensgaard, “Value Dependence Graphs: Representation without Taxation,” Conf. Record 21st Ann. ACM Symp. Principles of Programming Languages, Jan. 1994.
[53] P. Zimmermann and W. Zimmermann, “The Automatic Complexity Analysis of DivideandConquer Algorithms,” Computer and Information Sciences VI, Elsevier, 1991.