Towards Formally Verifiable WCET Analysis for a Functional Programming Language

This paper describes ongoing work aimed at the construction of formal cost models and analyses to yield verifiable guarantees of resource usage in the context of real-time embedded systems. Our work is conducted in terms of the domain-specific language Hume, a language that combines functional programming for computations with finitestate automata for specifying reactive systems. We outline an approach in which high-level information derived from source-code analysis can be combined with worst-case execution time information obtained from high quality abstract interpretation of low-level binary code.

[1]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[2]  Magnus Carlsson,et al.  Programming with time-constrained reactions , 2005 .

[3]  Greg J. Michaelson,et al.  Predictable Space Behaviour in FSM-Hume , 2002, IFL.

[4]  Greg J. Michaelson,et al.  FSM-Hume is finite state , 2003, Trends in Functional Programming.

[5]  Greg J. Michaelson,et al.  Hume: A Domain-Specific Language for Real-Time Embedded Systems , 2003, GPCE.

[6]  Joe Armstrong,et al.  Concurrent programming in ERLANG , 1993 .

[7]  Reinhard Wilhelm,et al.  The influence of processor architecture on the design and the results of WCET tools , 2003, Proceedings of the IEEE.

[8]  Kevin Hammond,et al.  Is it time for real-time functional programming? , 2003, Trends in Functional Programming.

[9]  Raimund Kirner,et al.  Measurement-based worst-case execution time analysis , 2005, Third IEEE Workshop on Software Technologies for Future Embedded and Ubiquitous Systems (SEUS'05).

[10]  Henrik Theiling,et al.  Combining abstract interpretation and ILP for microarchitecture modelling and program path analysis , 1998, Proceedings 19th IEEE Real-Time Systems Symposium (Cat. No.98CB36279).

[11]  Reinhold Heckmann,et al.  Computing the Worst Case Execution Time of an Avionics Program by Abstract Interpretation , 2007 .

[12]  Daniel Sehlberg Static WCET Analysis of Task-Oriented Code for Construction Vehicles , 2005 .

[13]  Nicolas Halbwachs,et al.  LUSTRE: A declarative language for programming synchronous systems* , 1987 .

[14]  Christian Ferdinand,et al.  Cache behavior prediction for real-time systems , 1997 .

[15]  Alan Burns,et al.  Guest Editorial: A Review of Worst-Case Execution-Time Analysis , 2000, Real-Time Systems.

[16]  Reinhard Wilhelm,et al.  An abstract interpretation-based timing validation of hard real-time avionics software , 2003, 2003 International Conference on Dependable Systems and Networks, 2003. Proceedings..

[17]  Jan Gustafsson,et al.  Static Timing Analysis of Real-Time Operating System Code , 2004, ISoLA.

[18]  Paul Hudak,et al.  Real-time FRP , 2001, ICFP '01.

[19]  Paul Le Guernic,et al.  SIGNAL: A declarative language for synchronous programming of real-time systems , 1987, FPCA.

[20]  Colin Runciman,et al.  Extending a functional programming system for embedded applications , 1995, Softw. Pract. Exp..

[21]  Guillem Bernat,et al.  WCET analysis of probabilistic hard real-time systems , 2002, 23rd IEEE Real-Time Systems Symposium, 2002. RTSS 2002..

[22]  Henrik Theiling,et al.  Reliable and Precise WCET Determination for a Real-Life Processor , 2001, EMSOFT.

[23]  Jan Gustafsson,et al.  Applying static WCET analysis to automotive communication software , 2005, 17th Euromicro Conference on Real-Time Systems (ECRTS'05).

[24]  Alan Burns,et al.  Portable worst-case execution time analysis using Java Byte Code , 2000, Proceedings 12th Euromicro Conference on Real-Time Systems. Euromicro RTS 2000.

[25]  Stephan Thesing,et al.  Pipeline Modeling for Timing Analysis , 2002, SAS.