Cost Analysis of Java Bytecode

  • E. Albert
  • P. Arenas
  • S. Genaim
  • G. Puebla
  • D. Zanardini
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4421)


Cost analysis of Java bytecode is complicated by its unstructured control flow, the use of an operand stack and its object-oriented programming features (like dynamic dispatching). This paper addresses these problems and develops a generic framework for the automatic cost analysis of sequential Java bytecode. Our method generates cost relations which define at compile-time the cost of programs as a function of their input data size. To the best of our knowledge, this is the first approach to the automatic cost analysis of Java bytecode.


Cost Analysis Cost Relation Recurrence Equation Program Point Method Invocation 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    Aho, A.V., Sethi, R., Ullman, J.D.: Compilers - Principles, Techniques and Tools. Addison-Wesley, Reading (1986)Google Scholar
  2. 2.
    Albert, E., Puebla, G., Hermenegildo, M.: Abstraction-Carrying Code. In: Baader, F., Voronkov, A. (eds.) LPAR 2004. LNCS (LNAI), vol. 3452, pp. 380–397. Springer, Heidelberg (2005)Google Scholar
  3. 3.
    Aspinall, D., et al.: Mobile Resource Guarantees for Smart Devices. In: Barthe, G., et al. (eds.) CASSIS 2004. LNCS, vol. 3362, Springer, Heidelberg (2005)Google Scholar
  4. 4.
    Barthe, G., et al.: Mobius: Mobility, ubiquity, security: Objectives and progress report. In: Montanari, U., Sannella, D., Bruni, R. (eds.) TGC 2007. LNCS, vol. 4661, Springer, Heidelberg (2007)CrossRefGoogle Scholar
  5. 5.
    Benzinger, R.: Automated higher-order complexity analysis. Theor. Comput. Sci. 318(1-2) (2004)Google Scholar
  6. 6.
    Cachera, D., et al.: Certified memory usage analysis. In: Fitzgerald, J.S., Hayes, I.J., Tarlecki, A. (eds.) FM 2005. LNCS, vol. 3582, Springer, Heidelberg (2005)Google Scholar
  7. 7.
    Cousot, P., Halbwachs, N.: Automatic discovery of linear restraints among variables of a program. In: Proc. POPL, ACM Press, New York (1978)Google Scholar
  8. 8.
    Crary, K., Weirich, S.: Resource bound certification. In: POPL, ACM Press, New York (2000)Google Scholar
  9. 9.
    Cytron, R., et al.: Efficiently computing static single assignment form and the control dependence graph. TOPLAS 13(4) (1991)Google Scholar
  10. 10.
    Debray, S.K., Lin, N.W.: Cost analysis of logic programs. TOPLAS 15(5) (1993)Google Scholar
  11. 11.
    Debray, S.K., et al.: Lower Bound Cost Estimation for Logic Programs. In: Proc. ILPS’97, MIT Press, Cambridge (1997)Google Scholar
  12. 12.
    Gomez, G., Liu, Y.A.: Automatic time-bound analysis for a higher-order language. In: Proc. of PEPM, ACM Press, New York (2002)Google Scholar
  13. 13.
    Lindholm, T., Yellin, F.: The Java Virtual Machine Specification. Addison-Wesley, Reading (1996)Google Scholar
  14. 14.
    Puebla, G., et al.: Combining Static Analysis and Profiling for Estimating Execution Times. In: Hanus, M. (ed.) PADL 2007. LNCS, vol. 4354, pp. 140–154. Springer, Heidelberg (2006)Google Scholar
  15. 15.
    Necula, G.: Proof-Carrying Code. In: POPL’97, ACM Press, New York (1997)Google Scholar
  16. 16.
    Rabhi, F.A., Manson, G.A.: Using Complexity Functions to Control Parallelism in Functional Programs. TR. CS-90-1, Dept. of C.S., Univ. of Sheffield, UK (1990)Google Scholar
  17. 17.
    Rosendhal, M.: Automatic Complexity Analysis. In: Proc. FPCA, ACM Press, New York (1989)Google Scholar
  18. 18.
    Sands, D.: A naïve time analysis and its theory of cost equivalence. J. Log. Comput. 5(4) (1995)Google Scholar
  19. 19.
    Spoto, F.: Julia: A Generic Static Analyser for the Java Bytecode. In: Proc. of the 7th Workshop on Formal Techniques for Java-like Programs, FTfJP’, Glasgow, Scotland, July 2005. (2005), Available at
  20. 20.
    Spoto, F., Hill, P.M., Payet, E.: Path-length analysis for object-oriented programs. In: Proc. EAAI (2006)Google Scholar
  21. 21.
    Tip, F.: A Survey of Program Slicing Techniques. J. of Prog. Lang. 3 (1995)Google Scholar
  22. 22.
    Wilf, H.S.: Algorithms and Complexity. A.K. Peters, Wellesley (2002)zbMATHGoogle Scholar
  23. 23.
    Wilhelm, R.: Timing Analysis and Timing Predictability. In: de Boer, F.S., et al. (eds.) FMCO 2004. LNCS, vol. 3657, pp. 317–323. Springer, Heidelberg (2005)CrossRefGoogle Scholar

Copyright information

© Springer Berlin Heidelberg 2007

Authors and Affiliations

  • E. Albert
    • 1
  • P. Arenas
    • 1
  • S. Genaim
    • 2
  • G. Puebla
    • 2
  • D. Zanardini
    • 2
  1. 1.DSIC, Complutense University of Madrid, E-28040 MadridSpain
  2. 2.CLIP, Technical University of Madrid, E-28660 Boadilla del Monte, MadridSpain

Personalised recommendations