Every year, software bugs cost hundreds of millions of euros to compagnies and administrations. A number of disasters such as the Ariane 5 first flight failure can are due to faulty softwares. Static analysis aims at computing automatically properties of softwares, so as to prove they are exempt from some class of bugs. In the last ten years, static analysis of numeric intensive applications improved dramatically so that the certification of safety properties like the absence of runtime errors in industrial size control-command, numeric intensive applications, such as Airbus fly-by-wire softwares is now feasible.
By contrast, the situation is much worse for memory intensive softwares. Existing static analyzers for such softwares do not scale to large scale softwares, and fail to prove strong invariants on large classes of softwares. These limitations stem from the fact they use a monolithic algebra of logical formulas (or abstract domain).
Our proposal is based on the observation that the complex memory properties that need be reasoned about should be decomposed in combinations of simpler properties. Therefore, in static analysis, a powerful memory abstract domain could be designed by combining several simpler domains, specific to common memory usage patterns. The benefit of this novel vision is twofold: first it would make it possible to simplify drastically the design of complex abstract domains required to reason about complex softwares, hereby allowing certification of complex memory intensive softwares by automatic static analysis; second, it would enable to split down and better control the cost of the analyses, thus significantly helping scalability.
This shift of focus will bring both theoretical and practical improvements to the program certification field. We propose to build a static analysis framework for reasoning about memory properties, and put it to work on important classes of applications, including large safety critical memory intensive softwares.
Call for proposal
See other projects for this call