Skip to main content

Symbolic and Analytic Techniques for Resource Analysis of Java Bytecode

  • Conference paper
Trustworthly Global Computing (TGC 2010)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 6084))

Included in the following conference series:

  • 413 Accesses

Abstract

Recent work in resource analysis has translated the idea of amortised resource analysis to imperative languages using a program logic that allows mixing of assertions about heap shapes, in the tradition of separation logic, and assertions about consumable resources. Separately, polyhedral methods have been used to calculate bounds on numbers of iterations in loop-based programs. We are attempting to combine these ideas to deal with Java programs involving both data structures and loops, focusing on the bytecode level rather than on source code.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Similar content being viewed by others

References

  1. Ahlfors, L.: Complex Analysis. International Series in Pure and Applied Mathematics. McGraw-Hill, New York (1979)

    MATH  Google Scholar 

  2. Albert, E., Arenas, P., Genaim, S., Puebla, G., Zanardini, D.: COSTA: Design and implementation of a cost and termination analyzer for Java bytecode. In: de Boer, F.S., Bonsangue, M.M., Graf, S., de Roever, W.-P. (eds.) FMCO 2007. LNCS, vol. 5382, pp. 113–132. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  3. Atkey, R.: Amortised resource analysis with separation logic. In: Gordon, A.D. (ed.) Programming Languages and Systems. LNCS, vol. 6012, pp. 85–103. Springer, Heidelberg (2010)

    Chapter  Google Scholar 

  4. Bagnara, R., Hill, P.M., Ricci, E., Zaffanella, E.: Precise widening operators for convex polyhedra. Science of Computer Programming 58(1-2), 28–56 (2005)

    Article  MathSciNet  MATH  Google Scholar 

  5. Bagnara, R., Hill, P.M., Zaffanella, E.: The Parma Polyhedra Library: Toward a complete set of numerical abstractions for the analysis and verification of hardware and software systems. Science of Computer Programming 72(1-2), 3–21 (2008)

    Article  MathSciNet  Google Scholar 

  6. Bagnara, R., Hill, P.M., Zaffanella, E.: Applications of polyhedral computations to the analysis and verification of hardware and software systems. Theor. Comput. Sci. 410(46), 4672–4691 (2009)

    Article  MathSciNet  MATH  Google Scholar 

  7. Barthe, G., Beringer, L., Crégut, P., Grégoire, B., Hofmann, M., Müller, P., Poll, E., Puebla, G., Stark, I., Vétillard, E.: MOBIUS: Mobility, ubiquity, security — objectives and progress report. In: Montanari, U., Sannella, D., Bruni, R. (eds.) TGC 2006. LNCS, vol. 4661, pp. 10–29. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  8. Barvinok, A., Pommersheim, J.E.: An algorithmic theory of lattice points in polyhedra. In: New Perspectives in Algebraic Combinatorics (Berkeley, CA, 1996-1997). Math. Sci. Res. Inst. Publ, vol. 38, pp. 91–147. Cambridge Univ. Press, Cambridge (1999)

    Google Scholar 

  9. Beck, M., Robins, S.: Computing the Continuous Discretely. Undergraduate Texts in Mathematics. Springer, Heidelberg (2007)

    MATH  Google Scholar 

  10. Beck, M., Sam, S., Woods, K.: Maximal periods of (Ehrhart) quasi-polynomials. J. Combin. Theory Ser. A 115, 517–525 (2008)

    Article  MathSciNet  MATH  Google Scholar 

  11. Berdine, J., Calcagno, C., O’Hearn, P.W.: Symbolic execution with separation logic. In: Yi, K. (ed.) APLAS 2005. LNCS, vol. 3780, pp. 52–68. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  12. Braberman, V., Fernández, F., Garbervetsky, D., Yovine, S.: Symbolic prediction of dynamic memory requirements. In: ISMM 2008 (2008)

    Google Scholar 

  13. Braberman, V., Garbervetsky, D., Yovine, S.: A static analysis for synthesizing parametric specifications of dynamic memory consumption. Journal of Object Technology 5(5), 31–58 (2006)

    Article  Google Scholar 

  14. Clauss, P.: Counting solutions to linear and nonlinear constraints through Ehrhart polynomials: applications to analyze and transform scientific programs. In: ICS 1996: Proceedings of the 10th International Conference on Supercomputing, Philadelphia, Pennsylvania, United States, pp. 278–285 (1996)

    Google Scholar 

  15. Clauss, P., Loechner, V.: Parametric analysis of polyhedral iteration spaces. Journal of VLSI Signal Processing 19, 179–194 (1998)

    Article  Google Scholar 

  16. Cousot, P., Halbwachs, N.: Automatic discovery of linear restraints among variables of a program. In: POPL 1978: Proceedings of the 5th Annual ACM Symposium on Principles of Programming Languages, pp. 84–97. ACM Press, New York (1978)

    Google Scholar 

  17. Ehrhart, E.: Sur un problème de géométrie diophantienne linéaire. I. Polyèdres et réseaux. J. Reine Angew. Math. 226, 1–29 (1967)

    MathSciNet  MATH  Google Scholar 

  18. Ehrhart, E.: Sur un problème de géométrie diophantienne linéaire. II. Systèmes diophantiens linéaires. J. Reine Angew. Math. 227, 25–49 (1967)

    MathSciNet  Google Scholar 

  19. Gulwani, S., Mehra, K.K., Chilimbi, T.M.: SPEED: precise and efficient static estimation of program computational complexity. In: POPL 2009: Proceedings of the 36th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 127–139 (2009)

    Google Scholar 

  20. Hoffmann, J., Hofmann, M.: Amortized resource analysis with polynomial potential. In: Gordon, A.D. (ed.) Programming Languages and Systems. LNCS, vol. 6012, pp. 287–306. Springer, Heidelberg (2010)

    Chapter  Google Scholar 

  21. Hofmann, M., Jost, S.: Static prediction of heap space usage for first-order functional programs. In: POPL 2003: Proceedings of the 30th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 185–197 (2003)

    Google Scholar 

  22. Ishtiaq, S., O’Hearn, P.W.: BI as an assertion language for mutable data structures. In: POPL 2001: Proceedings of the 28th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 14–26 (January 2001)

    Google Scholar 

  23. Kratsch, D., McConnell, R.M., Mehlhorn, K., Spinrad, J.P.: Certifying algorithms for recognizing interval graphs and permutation graphs. In: SODA 2003: Proceedings of the Fourteenth Annual ACM-SIAM Symposium on Discrete Algorithms, pp. 158–167 (2003)

    Google Scholar 

  24. Lengauer, C.: Loop parallelization in the polytope model. In: Best, E. (ed.) CONCUR 1993. LNCS, vol. 715, pp. 398–416. Springer, Heidelberg (1993)

    Google Scholar 

  25. Loechner, V., Wilde, D.K.: Parameterized polyhedra and their vertices. Int. J. of Parallel Programming 25, 25–26 (1997)

    Article  Google Scholar 

  26. De Loera, J.A., Hemmecke, R., Tauzer, J., Yoshida, R.: Effective lattice point counting in rational convex polytopes. Journal of Symbolic Computation 38, 1273–1302 (2004)

    Article  MathSciNet  MATH  Google Scholar 

  27. Lokuciejewski, P., Cordes, D., Falk, H., Marwedel, P.: A fast and precise static loop analysis based on abstract interpretation, program slicing and polytope models. In: CGO 2009: Proceedings of the 2009 International Symposium on Code Generation and Optimization, pp. 136–146 (2009)

    Google Scholar 

  28. McAllister, T.B.: Coefficient functions of the Ehrhart quasi-polynomials of rational polygons. In: ITSL, pp. 114–118. CSREA Press (2008)

    Google Scholar 

  29. Mehlhorn, K., Eigenwillig, A., Kanegossi, K., Kratsch, D., McConnel, R., Meyer, U., Spinrad, J.: Certifying algorithms (a paper under construction) (2005), http://www.mpi-inf.mpg.de/~mehlhorn/ftp/CertifyingAlgorithms.pdf

  30. Meister, B.: Approximations of polytope enumerators using linear expansions. Technical report, Universite Louis Pasteur (May 2007)

    Google Scholar 

  31. Necula, G.C.: Proof-carrying code. In: POPL 1997: Proceedings of the 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 106–119 (1997)

    Google Scholar 

  32. Pouchet, L.-N., Bastoul, C., Cohen, A., Cavazos, J.: Iterative optimization in the polyhedral model: part II, multidimensional time. SIGPLAN Not. 43(6), 90–100 (2008)

    Article  Google Scholar 

  33. Pugh, W.: Counting solutions to Presburger formulas: how and why. In: PLDI 1994: Proceedings of the ACM SIGPLAN 1994 Conference on Programming Language Design and Implementation, pp. 121–134. ACM, New York (1994)

    Chapter  Google Scholar 

  34. Reynolds, J.C.: Separation logic: A logic for shared mutable data structures. In: Proceedings of 17th Annual IEEE Symposium on Logic in Computer Science (2002)

    Google Scholar 

  35. Sannella, D., Hofmann, M., Aspinall, D., Gilmore, S., Stark, I., Beringer, L., Loidl, H.-W., MacKenzie, K., Momigliano, A., Shkaravska, O.: Mobile resource guarantees. In: Trends in Functional Programming, vol. 6, pp. 211–226. Intellect, Bristol (2007)

    Google Scholar 

  36. Tarjan, R.E.: Amortized computational complexity. SIAM Journal on Algebraic and Discrete Methods 6(2), 306–318 (1985)

    Article  MathSciNet  MATH  Google Scholar 

  37. Verdoolaege, S., Bruynooghe, M.: Algorithms for weighted counting over parametric polytopes: A survey and a practical comparison. In: The 2008 International Conference on Information Theory and Statistical Learning, pp. 60–66 (2008)

    Google Scholar 

  38. Verdoolaege, S., Seghir, R., Beyls, K., Loechner, V., Bruynooghe, M.: Analytical computation of Ehrhart polynomials: Enabling more compiler analyses and optimizations. In: Proceedings of the 2004 International Conference on Compilers, Architecture, and Synthesis for Embedded Systems (CASES), pp. 248–258 (September 2004)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2010 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Aspinall, D., Atkey, R., MacKenzie, K., Sannella, D. (2010). Symbolic and Analytic Techniques for Resource Analysis of Java Bytecode. In: Wirsing, M., Hofmann, M., Rauschmayer, A. (eds) Trustworthly Global Computing. TGC 2010. Lecture Notes in Computer Science, vol 6084. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-15640-3_1

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-15640-3_1

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-15639-7

  • Online ISBN: 978-3-642-15640-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics