This preview has intentionally blurred sections. Sign up to view the full version.View Full Document
Unformatted text preview: Abstract Interpretation Using Typed Decision Graphs Laurent Mauborgne ? LIENS, ´ Ecole Normale Sup´ erieure, 45 rue d’Ulm, 75230 Paris cedex 05, France Abstract. This article presents a way of implementing abstract inter- pretations that can be very efficient. The improvement lies in the use of a symbolic representation of boolean functions called Typed Deci- sion Graphs (TDGs), a refinement of Binary Decision Diagrams. A gen- eral procedure for using this representation in abstract interpretation is given; we examine in particular the possibility of encoding higher order functions into TDGs. Moreover, this representation is used to design a widening operator based on the size of the objects represented, so that abstract interpretations will not fail due to insufficient memory. This approach is illustrated on strictness analysis of higher-order functions, showing a great increase in efficiency. 1 Introduction One of the basic problems of program analysis is that, even theoretically speak- ing, there are properties of programs which cannot always be computed, such as termination. A way to circumvent this difficulty is to allow for partial or approx- imate answers. Abstract interpretation is the theoretical framework to design automatic program analysis based on sound approximations. Although this the- ory deals very well with many problems of program analysis, it may become unusable in practice when the analysis is too precise, because of the amount of memory, or time required. The goal of this article is to show that it is some- times possible, using compact representations of boolean functions, not only to increase significantly the efficiency of the analysis, but also to balance the trade off between precision and efficiency during the analysis. In the second section of this paper, we will describe the symbolic represen- tation of boolean functions. In section 3, we will show how to use it in abstract interpretation. We will expose in detail the coding of higher order functions through TDGs, and the use of those graphs in conjunction with data approxi- mation. The last section is dedicated to a complete example of abstract inter- pretation using TDGs: strictness analysis. Because the most general framework of abstract interpretation is mathemat- ical, most elements of this paper have been described mathematically. Conse- quently some of the principles may come through unclear. The reader who is not familiar with some concepts or does not want to read mathematical formulas ? email: [email protected] should read the informal descriptions, which will give an idea of what is going on. On the other hand, if the reader is already familiar with one notions, he is invited to skip the informal presentation corresponding to this notion....
View Full Document
- Spring '05
- Boolean Algebra, Boolean function, Higher-order function, Binary decision diagram, Abstract interpretation