Abstract

Abstract Interpretation is a theory for static analysis of software systems that formalizes the notion of approximation and abstraction in a mathematical setting, and which is independent of particular languages and applications. Nevertheless, when looking at the literature produced in the last two decades (see the electronic version with extended bibliography of [14]), the amazingly rich suite of problems and solutions that fit in the abstract interpretation setting is often dependent both on the specific programming language and on the given property to be analyzed (that might also be language dependent). Since abstract interpretation has a very semantic-based character, it is not surprising that language paradigms with strong semantic foundations, e.g. functional and logic programming, have been in the past a very fertile test bed for the development of sophisticated abstract domains and specialized fixpoint algorithms. On the other hand, when looking at the contributions in the area of object-oriented programming, the picture is somehow still fragmented, and this may overshadow the great potentialities of abstract interpretation on the mainstream programming platforms where the OO paradigm is getting a leader position. This paper is aimed at providing a general survey of existing literature on abstract interpretation for object-oriented languages, and draw a few hints on how the research in this field may get further advances.