Results 1 -
4 of
4
Efficient field-sensitive pointer analysis for C
- IN PROCEEDINGS OF THE ACM WORKSHOP ON PROGRAM ANALYSIS FOR SOFTWARE TOOLS AND ENGINEERING (PASTE
"... The subject of this paper is flow- and context-insensitive pointer analysis. We present a novel approach for precisely modelling struct variables and indirect function calls. Our method emphasises efficiency and simplicity and is based on a simple language of set constraints. We obtain an O(v 4) bou ..."
Abstract
-
Cited by 20 (4 self)
- Add to MetaCart
The subject of this paper is flow- and context-insensitive pointer analysis. We present a novel approach for precisely modelling struct variables and indirect function calls. Our method emphasises efficiency and simplicity and is based on a simple language of set constraints. We obtain an O(v 4) bound on the time needed to solve a set of constraints from this language, where v is the number of constraint variables. This gives, for the first time, some insight into the hardness of performing field-sensitive pointer analysis of C. Furthermore, we experimentally evaluate the time versus precision trade-off for our method by comparing against the field-insensitive equivalent. Our benchmark suite consists of 11 common C programs ranging in size from 15,000 to 200,000 lines of code. Our results indicate the field-sensitive analysis is more expensive to compute, but yields significantly better precision. In addition, our technique has been integrated into the latest release (version 4.1) of the GNU Compiler GCC. Finally, we identify several previously unknown issues with an alternative and less precise approach to modelling struct variables, known as
Dynamic Component Program Visualization
- In Proceedings of ninth Working Conference on Reverse Engineering
, 2002
"... Dynamic program visualization, i.e. the visualization of the runtime behavior of a program as opposed to the static structure of its source code has been investigated for various kinds of programs, usually on a fairly low level. The focus has been on control flow in procedural programs or on the com ..."
Abstract
-
Cited by 6 (1 self)
- Add to MetaCart
Dynamic program visualization, i.e. the visualization of the runtime behavior of a program as opposed to the static structure of its source code has been investigated for various kinds of programs, usually on a fairly low level. The focus has been on control flow in procedural programs or on the communication between objects in object-oriented programs.
Visual Representations of Executing Programs
"... Programmers have always been curious about what their programs are doing while it is executing, especially when the behavior is not what they are expecting. Since program execution is intricate and involved, visualization has long been used to provide the programmer with appropriate insights into pr ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
Programmers have always been curious about what their programs are doing while it is executing, especially when the behavior is not what they are expecting. Since program execution is intricate and involved, visualization has long been used to provide the programmer with appropriate insights into program execution. This paper looks at the evolution of on-line visual representations of executing programs, showing how they have moved from concrete representations of relatively small programs to abstract representations of larger systems. Based on this examination, we describe the challenges implicit in future execution visualizations and methodologies that can meet these challenges.
The BLOOM Software Visualization System
- in Software Visualization - From Theory to Practice
, 2003
"... BLOOM is a system for doing software understanding through visualization. Software understanding involves asking specific questions about the structure and behavior of a software system and getting accurate answers quickly. BLOOM addresses software understanding by providing a complete system that c ..."
Abstract
-
Cited by 4 (0 self)
- Add to MetaCart
BLOOM is a system for doing software understanding through visualization. Software understanding involves asking specific questions about the structure and behavior of a software system and getting accurate answers quickly. BLOOM addresses software understanding by providing a complete system that combines facilities for collecting and analyzing program data, a visual language for defining what should be visualized and how it should be displayed, and a powerful back end that supports a variety of high-density, high-quality visualizations. This paper describes the various aspects of the BLOOM system and our initial experiences with it. 1.

