Skip to main content

Advanced Program Analysis for Real-Time Systems

Final Report Summary - APARTS (Advanced Program Analysis for Real-Time Systems)

The real-time performance of embedded software is often critical for the safety and quality of the software-controlled system. Recent research has made it possible to find safe bounds on the worst-case execution time (WCET) of a program by statically analysing the machine-code program. A crucial step is the analysis of the program's computations on integer data. For instance, the program flow usually depends on such computations. Current WCET analysis tools often require program flow constraints to be provided manually, which is cumbersome and error-prone. Better analyses of integer computations would reduce the need for such manual intervention. Such analyses must be both precise and correct.

The mathematical models for such analyses are usually formulated in terms of mathematical integers of unbounded size, while the program actually uses data stored in a fixed number of bits. This can lead to incorrect or imprecise results. The project has aimed to improve WCET analysis by incorporating computation models that give bit-precise results reflecting the finite size of each variable and the possibility of overflow.

Most current WCET-analysis tools analyse the possible values of each variable separately, commonly producing an interval of possible values for each variable. However, the behaviour of the program, and thus its WCET, often depend strongly on the relationship between variable values. Ignoring such relationships can make the analysis fail or give over-estimated WCET bounds. The project has aimed to develop computation models that find and use such relationships, typically expressed as affine constraints between several variables. The end goal is WCET analysis with computation models that are both relational and bit-precise. We expect that this will increase the safety, precision, and level of automation of the analysis, and lead to WCET analysis tools that are easier to apply.

The main results of the project are the following:

- Improved bit-precise abstract domains,

- Value analyses utilising these abstract domains to obtain higher precision while being sound also in presence of wrap-arounds,

- A both faster and more accurate method for program slicing, and

- An improved method to reconstruct flow-graphs from code containing dynamic jumps, which uses the analyses above.

Together, these results will help improve the automation, precision and correctness of WCET analysis tools. The impact on society will be shorter development times and decresaed development costs for embedded time-critical software, and safer embedded systems in safety-critical applications. On a wider scale this will strengthen European industry in areas like automotive, and avionics.

For more information, see the project website or contact the Project Coordinator, Prof. Björn Lisper,