ES_PASS

ES_PASS Workshop: Industrialization of Abstract Interpretation 2009

Oct. 28, 2009, Madrid, Spain

Survey on Static Timing Analysis and Static Stack Usage Analysis

To verify that a safety-critical application meets all requirements lies in the responsibility of the system designer(s). Classical software validation methods like code review and testing with debugging are expensive and cannot really guarantee the absence of errors. In contrast, abstract interpretation provides a methodology for static program analysis that yields statements valid for all program runs with all inputs. Employing static analyzers is thus orthogonal to classical testing.
A possible cause of catastrophic failure is stack overflow. By abstract interpretation of the stack pointer value, AbsInt's tool StackAnalyzer figures out how the stack level changes along the various control-flow paths. The predicted worst-case stack usages of individual tasks in a system can be used in an automated overall stack usage analysis for all tasks running on one Electronic Control Unit.
Another cause of failure is the violation of timing constraints. Recent trends, e.g. in automotive industries (X-by-wire, time-triggered protocols), require knowledge on the Worst-Case Execution Time (WCET) of each task. Yet WCET determination is a difficult problem because of the characteristics of modern software and hardware. AbsInt's tool aiT combines abstract interpretation and integer linear programming to determine upper bounds for the WCETs of code snippets given as routines in executables. These bounds are determined without the need to change the code and hold for all executions.

Back to Program.