Skip to main content

Improvements to a Resource Analysis for Hume

  • Conference paper
Book cover Foundational and Practical Aspects of Resource Analysis (FOPARA 2009)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 6324))

  • 213 Accesses

Abstract

The core of our resource analysis for the embedded systems language Hume is a resource-generic, type-based inference engine that employs the concept of amortised costs to statically infer resource bounds. In this paper we present extensions and improvements of this resource analysis in several ways. We develop and assess a call count analysis for higher-order programs, as a specific instance of our inference engine. We address usability aspects in general and in particular discuss an improved presentation of the inferred resource bounds together with the possibility of interactively tuning these bounds. Finally, we demonstrate improvements in the performance of our analysis.

We acknowledge financial support by EU Framework VI projects IST-510255 (EmBounded) and IST-26133 (SCIEnce), and by EPSRC grant EP/F030657/1 (Islay).

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 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.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. Beringer, L., Hofmann, M., Pavlova, M.: Certification Using the Mobius Base Logic. In: de Boer, F.S., Bonsangue, M.M., Graf, S., de Roever, W.-P. (eds.) FMCO 2007. LNCS, vol. 5382, pp. 25–51. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  3. Berkelaar, M., Eikland, K., Notebaert, P.: lp_solve: Open source (mixed-integer) linear programming system. GNU LGPL (Lesser General Public Licence), http://lpsolve.sourceforge.net/5.5

  4. Braberman, V., Fernández, F., Garbervetsky, D., Yovine, S.: Parametric Prediction of Heap Memory Requirements. In: Intl. Symp. on Memory Management (ISMM’08), Tucson, USA, pp. 141–150. ACM, New York (June 2008)

    Google Scholar 

  5. Campbell, B.: Amortised Memory Analysis Using the Depth of Data Structures. In: Castagna, G. (ed.) ESOP 2009. LNCS, vol. 5502, pp. 190–204. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  6. Chin, W.-N., Khoo, S.-C.: Calculating Sized Types. Higher-Order and Symbolic Computing 14(2,3), 261–300 (2001)

    Article  MATH  Google Scholar 

  7. Chin, W.-N., Nguyen, H.H., Popeea, C., Qin, S.: Analysing Memory Resource Bounds for Low-level Programs. In: Intl. Symp. on Memory Management (ISMM’08), Tucson, USA, June, pp. 151–160. ACM, New York (2008)

    Google Scholar 

  8. Cormen, T.H., Leiserson, C.E., Rivest, R.L., Stein, C.: Introduction to Algorithms, 2nd edn. MIT Press and McGraw-Hill (2001)

    Google Scholar 

  9. Crary, K., Weirich, S.: Resource Bound Certification. In: Symp. on Principles of Programming Languages (POPL’00), Boston, USA, pp. 184–198. ACM, New York (2000)

    Google Scholar 

  10. Ferdinand, C., Heckmann, R., Langenbach, M., Martin, F., Schmidt, M., Theiling, H., Thesing, S., Wilhelm, R.: Reliable and Precise WCET Determination for a Real-Life Processor. In: Henzinger, T.A., Kirsch, C.M. (eds.) EMSOFT 2001. LNCS, vol. 2211, pp. 469–485. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  11. The Glasgow Haskell Compiler, http://haskell.org/ghc

  12. Gomez, 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, pp. 31–40. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

  13. Gulwani, S., Mehra, K.K., Chilimbi, T.M.: SPEED: Precise and Efficient Static Estimation of Program Computational Complexity. In: Symp. on Principles of Prog. Langs (POPL’09), Savannah, USA, pp. 127–139. ACM, New York (January 2009)

    Google Scholar 

  14. Hammond, K.: Exploiting Purely Functional Programming to Obtain Bounded Resource Behaviour: The Hume Approach. In: Horváth, Z. (ed.) CEFP 2005. LNCS, vol. 4164, pp. 100–134. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  15. Hammond, K., Michaelson, G.J.: Hume: A Domain-Specific Language for Real-Time Embedded Systems. In: Pfenning, F., Smaragdakis, Y. (eds.) GPCE 2003. LNCS, vol. 2830, pp. 37–56. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  16. Hoffmann, J., Hofmann, M.: Amortized Resource Analysis with Polynomial Potential — A Static Inference of Polynomial Bounds for Functional Programs. In: Gordon, A.D. (ed.) ESOP 2010. LNCS, vol. 6012, pp. 287–306. Springer, Heidelberg (2010)

    Google Scholar 

  17. Hofmann, M., Jost, S.: Static Prediction of Heap Space Usage for First-Order Functional Programs. In: Symp. on Principles of Programming Languages (POPL ’03), New Orleans, USA, pp. 185–197. ACM, New York (January 2003)

    Google Scholar 

  18. Hofmann, M., 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 

  19. Hughes, R.J.M., Pareto, L.: Recursion and Dynamic Data Structures in Bounded Space: Towards Embedded ML Programming. In: Intl. Conf. on Functional Programming (ICFP ’99), Paris, France, pp. 70–81. ACM, New York (September 1999)

    Google Scholar 

  20. Hughes, R.J.M., Pareto, L., Sabry, A.: Proving the Correctness of Reactive Systems Using Sized Types. In: Symp. on Principles of Programming Languages (POPL’96), St. Petersburg Beach, USA, pp. 410–423. ACM Press, New York (January 1996)

    Google Scholar 

  21. Jost, S., Loidl, H.-W., Hammond, K., Hofmann, M.: Static Determination of Quantitative Resource Usage for Higher-Order Programs. In: Symp. on Principles of Prog. Langs (POPL ’10), Madrid, Spain, pp. 223–236. ACM, New York (January 2010)

    Google Scholar 

  22. Jost, S., Loidl, H.-W., Hammond, K., Scaife, N., Hofmann, M.: “Carbon Credits” for Resource-Bounded Computations Using Amortised Analysis. In: Cavalcanti, A., Dams, D.R. (eds.) FM 2009. LNCS, vol. 5850, pp. 354–369. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  23. Jost, S., Loidl, H.-W., Scaife, N., Hammond, K., Michaelson, G., Hofmann, M.: Worst-Case Execution Time Analysis through Types. In: Euromicro Conf. on Real-Time Systems (ECRTS’09), Dublin, Ireland, pp. 13–16. ACM, New York (July 1-3, 2009)

    Google Scholar 

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

    Book  MATH  Google Scholar 

  25. Pena, R., Segura, C., Montenegro, M.: A Sharing Analysis for Safe. In: Symp. on Trends in Functional Prog. (TFP’06), Nottingham, pp. 109–128. Intellect (2006)

    Google Scholar 

  26. Shkaravska, O., van Kesteren, R., van Eekelen, M.: Polynomial Size Analysis of First-Order Functions. In: Della Rocca, S.R. (ed.) TLCA 2007. LNCS, vol. 4583, pp. 351–365. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  27. Tarjan, R.E.: Amortized Computational Complexity. SIAM Journal on Algebraic and Discrete Methods 6(2), 306–318 (1985)

    Article  MathSciNet  MATH  Google Scholar 

  28. Vasconcelos, P.B.: Cost Inference and Analysis for Recursive Functional Programs. PhD thesis, University of St Andrews (February 2008)

    Google Scholar 

  29. Vasconcelos, P.B., Hammond, K.: Inferring Cost Equations for Recursive, Polymorphic and Higher-Order Functional Programs. In: Trinder, P., Michaelson, G.J., Peña, R. (eds.) IFL 2003. LNCS, vol. 3145, pp. 86–101. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  30. Wilhelm, R., et al.: The Worst-Case Execution-Time Problem—Overview of Methods and Survey of Tools. ACM Trans. Embed. Comput. Syst. 7(3), 1–53 (2008)

    Article  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

Loidl, HW., Jost, S. (2010). Improvements to a Resource Analysis for Hume . In: van Eekelen, M., Shkaravska, O. (eds) Foundational and Practical Aspects of Resource Analysis. FOPARA 2009. Lecture Notes in Computer Science, vol 6324. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-15331-0_2

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-15331-0_2

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-15330-3

  • Online ISBN: 978-3-642-15331-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics