Topic: pointers to data

data > Group: access to data

access to data
data structures
data value
access to objects by a path
binding names to variables or expressions
binding of names to objects
code optimization by flow analysis
dangling pointers
data alignment
flag computer
naming by pointing or recognition
object-oriented objects
parameter passing by reference
pointer machines
procedure valued variables
recursive data structures
ref_any or Object data type
safe use of pointers
shared objects
unique numeric names as surrogates
name as address
using pointers in Thesa
variable as reference to a value
variable as reference to storage

topics n-r
using pointers in Thesa


A variable may point to a value's location. This assumes that pointers are themselves values. In 'von-Neumann' computers, a pointer is a value representing the address of a memory location. This concept is frequently supported in languages by an address operator and indirect content accessing. It can be used for multi-dimensional arrays, trees, current position, and recursive structures. Access paths frequently follow pointer links. Pointers can be incremented to process an array or vector of values. Pointers need a nil value to indicate 'no object'. (cbb 5/80)
Subtopic: object ID up

Quote: object IDs are logically nothing but pointers to objects [dateCJ_1998]
Quote: object IDs produce a pointer free-for-all as found in prerelational databases [dateCJ_1998]

Subtopic: pointer type up

Quote: pointer types are bound to a data type instead of a class variable; e.g., 'type P=.upArrow.T' [hoarCA_1973a]

Subtopic: pointer as reference up

Quote: a reference consists of a descriptive name, a target set (its qualification), and a target (its value or NONE) [handP_1981]
Quote: in a flag computer, pointers would be flags that are pinned to other flags; move together [hehnEC_1977a]
Quote: an object can not be dereferenced because the static type of an object does not determine the type of its data record [cardL_1991]
Quote: a reference value refers to an object belonging to a class or its subclasses; the value 'none' is permissible for any reference [dahlOJ_1967]
Quote: generate an object by evaluating an object designator; returns a reference [dahlOJ_1967]
Quote: 'this C' refers to the current instance (object) of class C or a subclass [dahlOJ_1967]
Quote: a reference to a structure is a constant, its value; a reference to a reference is a variable, resolved to a constant [edwaJ10_2005]
Quote: an L-value or location has a shape (its type) with links to its R-values; e.g., Cons type with Car and Cdr links [straC8_1967]
Quote: pointers are R-values that point to L-values; the type of a pointer includes the type of the thing it points to; e.g., pointer to real [straC8_1967]

Subtopic: pointer arithmetic up

Quote: LLVM's getelementptr instruction performs machine-independent, pointer arithmetic while preserving type information; load and store instructions do not perform indexing [lattC3_2004]

Subtopic: address of data up

Quote: a location or L-value is an area of the store that has a content or R-value; change the R-value with an updating operation [straC8_1967]
Quote: a fundamental property of successful computers is that memory is a sequence of words or bytes, addressed by integers [koenA12_1995]
Quote: allocated C-- memory is referenced by immutable values of the native data-pointer type [ramsN6_2000]
Quote: C-- identifies the native data-pointer and native code-pointer types [ramsN6_2000]
Quote: the address of x is the reference number of the storage location holding x [wilkMV_1951]
QuoteRef: wulfWA12_1971 ;;782 id's as literal addresses. .X is contents of x. ..X makes sense but not adr (adr (x))
QuoteRef: frieFL1_1974 ;;15 prefix operator loc and . for location of and indirect reference

Subtopic: value vs. reference up

Quote: no value shall possess an ID that is distinct from the value per se [dateCJ_1998]

Subtopic: pointer analysis up

Quote: use bootstrapping to improve cycle detection predictability of pointer analysis; improve on each run, 18% faster [liuF5_2016]
Quote: store compact, query-efficient, persistent pointer information during pointer analysis; 10x smaller, 3x faster, ListAliases very fast [xiaoX6_2014]
Quote: comprehensive study of pointer analysis algorithms [hindM8_2000]
Quote: extended SSA numbering for indirect pointer references; requires pointer analysis and side-effect analysis; easy to add [labkC3_1998]
Quote: use points-to analysis, connection analysis, and anchor handles to determine read/write sets for pointers; reduces memory references 7% to 35% [ghiyR1_1998]
Quote: points-to analysis--for every dereference, determine a superset of the pointer's possible references [dasM6_2000]

Subtopic: connection analyis up

Quote: connection analysis of heap pointers determines unrelated pointers; e.g., any operation on array A is distinct from operations on array B [ghiyR1_1998]

Subtopic: pointer arithmetic up

Quote: a designator is an expression that denotes a variable or a variable's value; either readonly or writable [cardL_1991]
Quote: in C++, pointer arithmetic is defined only within an array; the difference of two pointers is the number of array elements between them [stroB_1991]

Subtopic: array pointer up

Quote: pointers in C supported nontrivial data structures and embedded arrays; increment by node instead of byte [seibP_2009]
Quote: compress pointer structures by replacing pointers with computed offsets; e.g., implicit heap [chilTM12_2000]
Quote: compress the pointer to Java's Type Information Block by bit-stealing from pointer, index into array, or memory pool of objects with same type [bacoDF6_2002]

Subtopic: pointer to data member up

Quote: interior pointers are easily misidentified by garbage collection, e.g., ANSI C; not an issue if a base pointer is likewise retained [boehHJ6_1993]
Quote: use pointers to data members to express the layout of a C++ class in an implementation-independent manner [stroB_1994]
Quote: OS kernels may return a pointer to the enclosing structure; CHERI must special-case pointer subtraction [chisD3_2015]

Subtopic: identification of pointers up

Quote: conservative garbage collectors need to identify large objects that contain no pointers; avoid scanning large static data areas that contain seemingly random, nonpointer areas, e.g. IO buffers [boehHJ6_1993]
Quote: conservative garbage collectors should blacklist pages that contain non-pointer data that might become valid pointers; scan after system startup; avoids accidental storage retention [boehHJ6_1993]
Quote: a global variable may contain a valid pointer that is no longer useful; needs clearing or deallocation for garbage collection [boehHJ6_1993]
Quote: RISC architectures may have large stack frames with pointers from earlier procedure calls; the allocator should periodically clear beyond the stack, particularly if the stack is much shorter than before [boehHJ6_1993]

Subtopic: chained access up

Quote: access remote data by a chain of pointers; e.g., ABC is the name of A->B->C [knowK8_1966]
Quote: use reference variables to refer to records and their fields; e.g., age(father(B)) is the age of B's father [wirtN6_1966]

Subtopic: data structures up

Quote: SNOBOL data structures consist of templates of arbitrary elements (e.g., functions); implement with pointers [hallJC5_1974]
Quote: use reference types to link records into structural networks of any desired complexity [wirtN6_1966]
Quote: use references to represent functional relationships between objects; e.g., the 'father' field of A points to A's father [wirtN6_1966]
Quote: restrict reference variables to a specific type; prevents accessing the incorrect class [wirtN6_1966]

Subtopic: tree traversal and modification up

Quote: Huet's zipper data structure focuses on a particular node in the tree with explicit up-, left-, right-, and down-links; suspend-resume; enables efficient destructive algorithms [ramsN9_2005]

Subtopic: unique pointer up

Quote: use unique pointers to avoid pointer-induced aliasing; helps encapsulation, reasoning, thread interactions, storage management; practical [minsNH7_1996]

Subtopic: null pointer up

Note: null pointers mark the boundary between visited and unvisited objects; test for null; reference returns a new object [cbb_2000 OK]
QuoteRef: mckeWM_1966 ;;95 undefined types: null and inf (for a/0) can be tested and propagated
Quote: a reference value refers to an object belonging to a class or its subclasses; the value 'none' is permissible for any reference [dahlOJ_1967]

Subtopic: two-way pointer up

Quote: some frame languages use two-way pointers to update inverse relations; avoids tangling pointers by automatically updating all references [tichWF11_1987]
Quote: the Connection Machine uses trees and butterflies for collecting, combining, and spreading information, e.g., sets; need two-way pointers [hillWD_1985]
Quote: besides Ross's n-component elements, Sketchpad includes back-pointers stored in a ring; e.g., e.g., ring of line segments that terminate on a point [suthIE5_1963]

Subtopic: distributed pointer up

Quote: traditionally, pointer arguments should be hidden; but communication of names is needed for a process calculus [milnR1_1993]

Subtopic: file handle up

Quote: files in OS6 are first-class values; access heading and body by file handle; heading contains information about file [stoyJE3_1972]

Subtopic: garbage collection up

Quote: with pointer types, dynamically generated variables are allocated from a single pool [hoarCA_1973a]
Quote: share tables of live pointers across call sites; shrinks garbage collection tables to 20-25% of their original size; 1% of executable code [tardD10_2000]

Subtopic: notation for pointer access up

Quote: in C, '->' is shorthand for accessing a structure component via a dereferenced pointer [ritcDM7_1978c]
Quote: Mesa automatically handles p<-v and v<-p when v is a variable and p is a pointer [gescCM6_1975]
Quote: represent a link with a compass widget; on visit, the indicator tick extends to the link's source; need mouse to appreciate the dynamic display of reference [edwaJ10_2005]
QuoteRef: wirtN1_1971 ;;46 in Pascal, variable access by b[red] or U.realpart or file_name^ or pointer^
QuoteRef: palmJ5_1973 ;;6 Simula uses :- for linked to
Quote: @v is a reference, indirect assignment is v.<-E [wirtN1_1966]

Subtopic: index register up

Quote: construct a program with many fewer orders by modifying the orders during program execution [wilkMV_1951]
Quote: in 1955, EDSAC's B-register (index register) made instruction modification obsolete; invented at Manchester University [campM1_1980]

Subtopic: limit indirection up

Quote: no more than two levels of indirection in an object declaration or two levels of deferencing per object [jpl3_2009]

Subtopic: pointer complexity up

Quote: problems with an imperative flow graph (nodes linked by pointers) -- complex pointer invariants, static type did not include edge counts, multiple pointer mutations with temporary loss of invariant [ramsN9_2005]

Subtopic: pointers not understood up

Quote: we need to start over with software; no concept of pointer in the real world; information takes space, exists over time at a location [seibP_2009]
Quote: pointers weakly support relations; too complex for casual users; only degree 2, directional, complex data structures [coddEF_1990]
Quote: compare values to interrelate database objects instead of using pointers; well understood by all users [coddEF_1990]
Quote: plex structures become so elaborate and interwoven that they are impossible to understand; need to automatically translate from language to plex structures [rossDT_1963]

Related up

Group: data structures
Group: data value
Topic: access to objects by a path
Topic: aliasing
Topic: binding names to variables or expressions
Topic: binding of names to objects
Topic: code optimization by flow analysis
Topic: dangling pointers
Topic: data alignment
Topic: flag computer
Topic: naming by pointing or recognition
Topic: object-oriented objects
Topic: parameter passing by reference
Topic: pointer machines
Topic: procedure valued variables
Topic: recursive data structures
Topic: ref_any or Object data type
Topic: safe use of pointers
Topic: shared objects
Topic: unique numeric names as surrogates
Topic: name as address
Topic: using pointers in Thesa
Topic: variable as reference to a value
Topic: variable as reference to storage

Subtopics up

address of data
array pointer
chained access
connection analyis
data structures
distributed pointer
file handle
garbage collection
identification of pointers
index register
limit indirection
notation for pointer access
null pointer
object ID
pointer analysis
pointer arithmetic
pointer arithmetic
pointer as reference
pointer complexity
pointer to data member
pointer type
pointers not understood
tree traversal and modification
two-way pointer
unique pointer
value vs. reference

Updated barberCB 11/05
Copyright © 2002-2023 by C.B. Barber
Thesa, Avev, and thid-... are trademarks of C.B. Barber