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).
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
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)
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)
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
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)
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)
Chin, W.-N., Khoo, S.-C.: Calculating Sized Types. Higher-Order and Symbolic Computing 14(2,3), 261–300 (2001)
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)
Cormen, T.H., Leiserson, C.E., Rivest, R.L., Stein, C.: Introduction to Algorithms, 2nd edn. MIT Press and McGraw-Hill (2001)
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)
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)
The Glasgow Haskell Compiler, http://haskell.org/ghc
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
Okasaki, C.: Purely Functional Data Structures. Cambridge University Press, Cambridge (1998)
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)
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)
Tarjan, R.E.: Amortized Computational Complexity. SIAM Journal on Algebraic and Discrete Methods 6(2), 306–318 (1985)
Vasconcelos, P.B.: Cost Inference and Analysis for Recursive Functional Programs. PhD thesis, University of St Andrews (February 2008)
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)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)