The purpose of this talk is to explain the basic principles of abstract interpretation and to explain, in an informal way, how the concept of approximation, formalized by this theory, is central to all software verification methods (from debugging, to typing, model-checking and deductive methods). In abstract interpretation we consider safe approximations which provide a full coverage of all possible cases at run-time.
Then, we sketch the application to the formal design of static program analyzers by compositional abstraction of a programming language semantics. The price to be paid for the effective static safe approximation of run-time properties is that of uncertainty. Practical analyzers have therefore to provide a good compromise between the cost of the analysis and its precision. We discuss various methods which can be used to obtain an acceptable balance.
Finally, we explain an application of static program analysis to abstract testing, a version of interactive program debugging where the execution of programs on test values are replaced by the static checking of user provided program properties.
A
\bibitem{Cousot01-FEmSys-Talk} P{.} Cousot. \newblock Abstract Interpretation for Software Verification. \newblock Workshop on “Formal Design of Safety Critical Embedded Systems, FEmSys'2001”, München, Germany, 21-23 March, 2001. @unpublished{Cousot00-Dagstuhl-Talk, author = {Cousot, P{.}}, title = {Abstract Interpretation for Software Verification}, note = {Workshop on “Formal Design of Safety Critical Embedded Systems, FEmSys'2001”, München, Germany}, month = {21--23 mar}, year = 2001, }
.
Last modified:
Monday, 07-May-2012 18:06:44 EDT