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, Paolo, G. Antoniol, R. Fiutem, E. Merlo
Other Authors: G., Antoniol, R., Fiutem, E., Merlo
Format: Article in Journal/Newspaper
Language:unknown
Published: 1999
Subjects:
Online Access:http://hdl.handle.net/11582/1338
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 points-to links between locations. They are also integrated with other program understanding techniques like, e.g., call graph construction, slicing, plan recognition and architectural recovery