Abstract
This paper provides guaranteed bounds on worst-case execution times for a strict, purely functional programming notation. Our approach involves combining time information obtained using a low-level commercial analyser with a high-level source-derived model to give worst-case execution time information. We validate our results using concrete timing information obtained using machine code fragments executing on a Renesas M32C/85 microcontroller development board. Our results confirm experimentally that our worst-case execution time model is a good predictor of execution times.
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
Augustsson, L.: Compiling Lazy Functional Languages, Part II. PhD thesis, Dept. of Computer Science, Chalmers University of Technology, Göteborg, Sweden (1987)
Bernat, G., Burns, A., Wellings, A.: Portable Worst-Case Execution Time Analysis Using Java Byte Code. In: Proc. 12th Euromicro Intl. Conf. on Real-Time Systems (ECRTS 2000), Stockholm (June 2000)
Bernat, G., Colin, A., Petters, S.M.: WCET Analysis of Probabilistic Hard Real-Time Systems. In: Proc. 23rd IEEE Real-Time Systems Symposium (RTSS 2002) (December 2002)
Bonenfant, A., Chen, Z., Hammond, K., Michaelson, G.J., Wallace, A., Wallace, I.: Towards resource-certified software: A formal cost model for time and its application to an image-processing example. In: ACM Symposium on Applied Computing (SAC ’07), Seoul, Korea (March 11-15, 2007)
Byhlin, S., Ermedahl, A., Gustafsson, J., Lisper, B.: Applying static WCET analysis to automotive communication software. In: 17th Euromicro Conference of Real-Time Systems, (ECRTS’05), Mallorca, Spain (July 2005)
Comaniciu, D., Ramesh, V., Meer, P.: Kernel-based object tracking. IEEE Transactions on Pattern Analysis and Machine Intelligence 25(5), 564–575 (2003)
Renesas Technology Corp. (2006), Home Page http://www.renesas.com
Corti, M., Gross, T.: Approximation of the Worst-Case Execution Time Using Structural Analysis. In: Proc. ACM International Conference on Embedded Software (EMSOFT 2004) (2004)
Cousot, P., Cousot, R.: Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: 4th ACM Symposium on Principles of Programming Languages, pp. 238–252. ACM Press, New York (1977)
Crary, K., Weirich, S.: Resource Bound Certification. In: POPL 2000 — Symposium on Principles of Prog. Langs. pp. 184–198, Boston, MA (January 2000)
Ferdinand, C.: Cache Behavior Prediction for Real-Time Systems, Saarland University, Saarbrücken, Germany. PhD thesis (1997)
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)
Ferdinand, C., Martin, F., Wilhelm, R., Alt, M.: Cache behavior prediction by abstract interpretation. Science of Computer Programming 35(2), 163–189 (1999)
Hammond, K.: Exploiting Purely Functional Programming to Obtain Bounded Resource Behaviour: the Hume Approach. In: Central European Summer School on Functional Programming, July 2005. Spinger-Verlag LNCS (to appear)
Hammond, K., Ferdinand, C., Heckmann, R., Dyckhoff, R., Hofmann, M., Jost, S., Loidl, H.-W., Michaelson, G.J., Pointon, R., Scaife, N., Sérot, J., Wallace, A.: Towards Formally Verifiable WCET Analysis for a Functional Programming Language. In: Proc. Intl. Workshop on Worst-Case Execution Time (WCET) Analysis (April 2006)
Hammond, K., Michaelson, G.: Bounded Space Programming using Finite State Machines and Recursive Functions: the Hume Approach. ACM Transactions on Software Engineering and Methodology (TOSEM 2006) (in preparation)
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)
Hammond, K., Michaelson, G.J.: Predictable Space Behaviour in FSM-Hume. In: Peña, R., Arts, T. (eds.) IFL 2002. LNCS, vol. 2670, Springer, Heidelberg (2003)
Heckmann, R., Langenbach, M., Thesing, S., Wilhelm, R.: The influence of processor architecture on the design and the results of WCET tools. Proceedings of the IEEE 91(7), 1038–1054 (July 2003) Special Issue on Real-Time Systems.
Hofmann, M., Jost, S.: Static Prediction of Heap Space Usage for First-Order Functional Programs. In: POPL’03 — Symposium on Principles of Programming Languages, New Orleans, LA, USA, ACM Press, New York (2003)
Hughes, R.J.M.: The Design and Implementation of Programming Languages, DPhil Thesis, Programming Research Group, Oxford (July 1983)
Langenbach, M., Thesing, S., Heckmann, R.: Pipeline modeling for timing analysis. In: Hermenegildo, M.V., Puebla, G. (eds.) SAS 2002. LNCS, vol. 2477, pp. 294–309. Springer, Heidelberg (2002)
Li, Y.-T.S., Malik, S., Wolfe, A.: Efficient Microarchitecture Modeling and Path Analysis for Real-Time Software. In: Proc. RTSS 1995: IEEE Real-Time Systems Symposium, pp. 298 (1995)
Meyerhöfer, M., Lauterwald, F.: Towards Platform-Independent Component Measurement. In: Proc. WCOP 2005 – Tenth International Workshop on Component-Oriented Programming, Glasgow (July 2005)
Puschner, P., Bernat, G.: WCET Analysis of Reusable Portable Code. In: Proc. 13th Euromicro Intl. Conf. on Real-Time Syst. (ECRTS 2001), pp. 45–52 (2001)
Sandell, D., Ermedahl, A., Gustafsson, J., Lisper, B.: Static timing analysis of real-time operating system code. In: Margaria, T., Steffen, B. (eds.) ISoLA 2004. LNCS, vol. 4313, Springer, Heidelberg (2006)
Sehlberg, D.: Static WCET analysis of task-oriented code for construction vehicles. Master’s thesis, Mälardalen University, (October 2005)
Souyris, J., Le Pavec, E., Himbert, G., Jégu, V., Borios, G., Heckmann, R.: Computing the Worst Case Execution Time of an Avionics Program by Abstract Interpretation. In: Proc. 2005 Intl Workshop on Worst-Case Execution Time (WCET) Analysis, pp. 21–24 (2005)
IAR Systems (2006), Home Page http://www.iar.com/
Theiling, H., Ferdinand, C.: Combining abstract interpretation and ILP for microarchitecture modelling and program path analysis. In: Proc. RTSS 1998: IEEE Real-Time Systems Symposium, pp. 144–153, Madrid, Spain (December 1998)
Vasconcelos, P.B.: Cost Inference and Analysis for Recursive Functional Programs. PhD thesis, University of St Andrews (in preparation)
Vasconcelos, P.B., Hammond, K.: Inferring Costs 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.: Determining bounds on execution times. In: Zurawski, R. (ed.) Handbook on Embedded Systems, CRC Press, Boca Raton pp. 14–1,14–23. (2005)
Wong, P.: Bytecode Monitoring of Java Programs, MSc thesis, University of Warwick (2003)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2007 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Bonenfant, A., Ferdinand, C., Hammond, K., Heckmann, R. (2007). Worst-Case Execution Times for a Purely Functional Language. In: Horváth, Z., Zsók, V., Butterfield, A. (eds) Implementation and Application of Functional Languages. IFL 2006. Lecture Notes in Computer Science, vol 4449. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-74130-5_14
Download citation
DOI: https://doi.org/10.1007/978-3-540-74130-5_14
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-74129-9
Online ISBN: 978-3-540-74130-5
eBook Packages: Computer ScienceComputer Science (R0)