Pointer analysis

Pointer analysis

In computer science pointer analysis, or points-to analysis, is a static code analysis technique that establishes which pointers, or heap references, can point to which variables or storage locations. It is often a component of more complex analyses such as escape analysis. A generalization of pointer analysis is shape analysis (software).

Introduction

Performing pointer analysis on all but the smallest of programs is a very resource intensive activity. Various simplifications have been made to reduce this overhead, the disadvantages of these simplifications is that the calculated set of objects pointed to may be larger than it is in practice.

Simplifications include:

:Treating all references to a structured object as being to one object.

:Ignoring flow-of control when analysing which objects are assigned to pointers, known as "context-insensitive pointer analysis" (when ignoring the context in which function calls are made) or "flow-insensitive pointer analysis" (when ignoring the control flow within a procedure).

Algorithms

Andersen's algorithm

Binary Decision Diagrams

ee also

* Alias analysis
* Escape analysis
* Shape analysis (software)


Wikimedia Foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Look at other dictionaries:

  • Pointer (computing) — This article is about the programming data type. For the input interface (for example a computer mouse), see Pointing device. Pointer a pointing to the memory address associated with variable b. Note that in this particular diagram, the computing …   Wikipedia

  • Pointer swizzling — In computer science, pointer swizzling is the conversion of references based on name or position to direct pointer references. It is typically performed during the deserialization (loading) of a relocatable object from disk, such as an executable …   Wikipedia

  • Shape analysis (software) — Shape analysis is a static code analysis technique that discovers and verifies properties of linked, dynamically allocated data structures in (usually imperative) computer programs. It is typically used at compile time to find software bugs or to …   Wikipedia

  • Escape analysis — In programming language compiler optimization theory, escape analysis is a method for determining the dynamic scope of pointers. It is related to pointer analysis and shape analysis.When a variable (or an object) is allocated in a subroutine, a… …   Wikipedia

  • Alias analysis — is a technique in compiler theory, used to determine if a storage location may be accessed in more than one way. Two pointers are said to be aliased if they point to the same location. Alias analysis techniques are usually classified by flow… …   Wikipedia

  • List of tools for static code analysis — This is a list of significant tools for static code analysis.Historical products* Lint the original static code analyzer of C code.Open source or Noncommercial products .NET (C#, VB.NET and all .NET compatible languages) *… …   Wikipedia

  • Data-flow analysis — is a technique for gathering information about the possible set of values calculated at various points in a computer program. A program s control flow graph (CFG) is used to determine those parts of a program to which a particular value assigned… …   Wikipedia

  • Six-pointer — is a sporting cliché, particularly used in association football, used to describe a game between two teams with similar league positions, in leagues that employ a three points for a win system. In a two points for a win league, the corresponding… …   Wikipedia

  • Definite assignment analysis — In computer science, definite assignment analysis is a data flow analysis used by compilers to conservatively ensure that a variable or location is always assigned to before it is used. Contents 1 Motivation 2 Terminology 3 The analysis …   Wikipedia

  • Constructed product result analysis — In the field of compiler implementation in computer science, constructed product result analysis (or CPR analysis) is a static analysis that determines which functions in a given program can return multiple results in an efficient manner.… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”