Points-to Analysis for Program Understanding

Real world programs (in languages like C) heavily make use of pointers. Program understanding activities are thus made more difficult, since pointers affect the memory locations that are referenced in a statement, and also the functions called by a statement, when function pointers are used. The pro...

Full description

Bibliographic Details
Main Authors: Tonella Antoniol Fiutem, P. Tonella, G. Antoniol, R. Fiutem, E. Merlo
Other Authors: The Pennsylvania State University CiteSeerX Archives
Format: Text
Language:English
Published: DRAFT 1997
Subjects:
Online Access:http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.21.6461
http://serg.ing.unisannio.it/~antoniol/papers/iwpc97.ps.gz
Description
Summary:Real world programs (in languages like C) heavily make use of pointers. Program understanding activities are thus made more difficult, since pointers affect the memory locations that are referenced in a statement, and also the functions called by a statement, when function pointers are used. The programmer needs to build a mental model of the memory use and of the pointers to its locations, in order to comprehend the functionalities of the system. This paper presents an efficient flow insensitive context insensitive points-to analysis algorithm capable of dealing with the features of the C code. It is extremely promising with regard to scalability, because of the low complexity. The results are valuable by themselves, as their graphical display represents the pointsto links between locations. They are also integrated with other program understanding techniques like, e.g., call graph construction, slicing, plan recognition and architectural recovery. 1