Skip to main content

Efficient Type-Checking for Amortised Heap-Space Analysis

  • Conference paper
Computer Science Logic (CSL 2009)

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

Included in the following conference series:

Abstract

The prediction of resource consumption in programs has gained interest in the last years. It is important for a number of areas, notably embedded systems and safety critical systems. Different approaches to achieve bounded resource consumption have been analysed. One of them, based on an amortised complexity analysis, has been studied by Hofmann and Jost in 2006 for a Java-like language.

In this paper we present an extension of this type system consisting of more general subtyping and sharing relations that allows us to type more examples. Moreover we describe efficient automated type-checking for a finite, annotated version of the system. We prove soundness and completeness of the type checking algorithm and show its efficiency.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

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.

References

  1. 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 

  2. Campbell, B.: Type-based amortized stack memory prediction. PhD thesis, University of Edinburgh (2008)

    Google Scholar 

  3. Degen, M., Thiemann, P., Wehr, S.: Tracking linear and affine resources with java(X). In: Ernst, E. (ed.) ECOOP 2007. LNCS, vol. 4609, pp. 550–574. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  4. Flatt, M., Krishnamurthi, S., Felleisen, M.: Classes and mixins. In: The 25th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL 1998), New York, January 1998, pp. 171–183. Association for Computing Machinery (1998)

    Google Scholar 

  5. Gómez, G., Liu, Y.A.: Automatic accurate time-bound analysis for high-level languages. In: Müller, F., Bestavros, A. (eds.) LCTES 1998. LNCS, vol. 1474, p. 31. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

  6. Gulwani, S., Mehra, K.K., Chilimbi, T.M.: SPEED: precise and efficient static estimation of program computational complexity. In: Shao, Z., Pierce, B.C. (eds.) POPL, pp. 127–139. ACM Press, New York (2009)

    Google Scholar 

  7. Grobauer, B.: Topics in Semantics-based Program Manipulation. PhD thesis, BRICS Aarhus (2001)

    Google Scholar 

  8. Herrmann, C.A., Bonenfant, A., Hammond, K., Jost, S., Loidl, H.-W., Pointon, R.: Automatic amortised worst-case execution time analysis. In: 7th Int’l Workshop on Worst-Case Execution Time (WCET) Analysis, Proceedings, pp. 13–18 (2007)

    Google Scholar 

  9. Hammond, K., Dyckhoff, R., Ferdinand, C., Heckmann, R., Hofmann, M., Jost, S., Loidl, H.-W., Michaelson, G., Pointon, R.F., Scaife, N., Srot, J., Wallace, A.: The embounded project (project start paper). In: van Eekelen, M.C.J.D. (ed.) Trends in Functional Programming. Trends in Functional Programming, vol. 6, pp. 195–210. Intellect (2005)

    Google Scholar 

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

    Google Scholar 

  11. Hofmann, M.O., Jost, S.: Type-based amortised heap-space analysis. In: Sestoft, P. (ed.) ESOP 2006. LNCS, vol. 3924, pp. 22–37. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  12. Hofmann, M., Jost, S., Rodriguez, D.: Type-based amortised heap space analysis (complete soundness proof), http://raja.tcs.ifi.lmu.de/download/files/rajaSoundProof.pdf

  13. Hughes, J., Pareto, L.: Recursion and dynamic data-structures in bounded space, June 21 (1999)

    Google Scholar 

  14. Igarashi, A., Pierce, B., Wadler, P.: Featherweight Java: A minimal core calculus for Java and GJ. In: Meissner, L. (ed.) Proceedings of the 1999 ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages & Applications (OOPSLA 1999), N.Y., vol. 34(10), pp. 132–146 (1999)

    Google Scholar 

  15. Marion, J.-Y., Péchoux, R.: Resource control of object-oriented programs. CoRR, abs/0706.2293, informal publication (2007)

    Google Scholar 

  16. Nguyen, H.H., Chin, W.N., Qin, S., Rinard, M.C.: Memory usage inference for object-oriented programs (January 2005)

    Google Scholar 

  17. Okasaki, C.: Purely Functional Data Structures. Cambridge University Press, Cambridge (1998)

    Book  MATH  Google Scholar 

  18. http://raja.tcs.ifi.lmu.de

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

    Article  MathSciNet  MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2009 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Hofmann, M., Rodriguez, D. (2009). Efficient Type-Checking for Amortised Heap-Space Analysis. In: Grädel, E., Kahle, R. (eds) Computer Science Logic. CSL 2009. Lecture Notes in Computer Science, vol 5771. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-04027-6_24

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-04027-6_24

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-04026-9

  • Online ISBN: 978-3-642-04027-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics