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: using an address as a name
Topic: using pointers in Thesa
Topic: variable as reference to a value
Topic: variable as reference to storage
| |
Summary
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
Quote: object IDs are logically nothing but pointers to objects
| Quote: object IDs produce a pointer free-for-all as found in prerelational databases
| Subtopic: pointer as reference
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
| 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: address of data
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
| Quote: the address of x is the reference number of the storage location holding x
| 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
Quote: no value shall possess an ID that is distinct from the value per se [»dateCJ_1998]
| Subtopic: pointer analysis
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
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
Quote: a designator is an expression that denotes a variable or a variable's value; either readonly or writable
| 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
Quote: compress pointer structures by replacing pointers with computed offsets; e.g., implicit heap [»chilTM12_2000]
| Subtopic: pointer to data member
Quote: use pointers to data members to express the layout of a C++ class in an implementation-independent manner [»stroB_1994]
| Subtopic: chained access
Quote: access remote data by a chain of pointers; e.g., ABC is the name of A->B->C [»knowK8_1966, OK]
| 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
Quote: data structures consist of templates of arbitrary elements (e.g., functions); implement with pointers [»hallJC5_1974, OK]
| 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: unique pointer
Quote: use unique pointers to avoid pointer-induced aliasing; helps encapsulation, reasoning, thread interactions, storage management; practical [»minsNH7_1996]
| Subtopic: null pointer
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
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
Quote: traditionally, pointer arguments should be hidden; but communication of names is needed for a process calculus [»milnR1_1993]
| Subtopic: file handle
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
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
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, OK]
| 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
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: pointers not understood
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 Topics
Group: data structures (12 topics, 278 quotes)
Group: data value (19 topics, 433 quotes)
Topic: access to objects by a path (13 items)
Topic: aliasing (28 items)
Topic: binding names to variables or expressions (10 items)
Topic: binding of names to objects (19 items)
Topic: code optimization by flow analysis (47 items)
Topic: dangling pointers (13 items)
Topic: data alignment (2 items)
Topic: flag computer (2 items)
Topic: naming by pointing or recognition (13 items)
Topic: object-oriented objects (39 items)
Topic: parameter passing by reference (11 items)
Topic: pointer machines (17 items)
Topic: procedure valued variables (34 items)
Topic: recursive data structures (18 items)
Topic: ref_any or Object data type (9 items)
Topic: safe use of pointers (102 items)
Topic: shared objects (13 items)
Topic: unique numeric names as surrogates (67 items)
Topic: using an address as a name (22 items)
Topic: using pointers in Thesa (49 items)
Topic: variable as reference to a value (21 items)
Topic: variable as reference to storage (12 items)
|