Topic: aliasing

topics > computer science > data > Group: access to data

alias names
binding names to variables or expressions
code optimization by flow analysis
dangling pointers
optimization of object-oriented programs
parameter passing by reference
pointer rotation
pointers to data
preventing accidental errors
safe use of pointers
shared objects
variable as reference to storage


Accidental sharing is called aliasing. This happens in procedures where a parameter and a global variable, or two parameters, reference the same object. Most aliasing can be prevented by compile time checks. (cbb 5/80)
Subtopic: aliasing as hidden dependency up

Quote: because of aliasing, changing one variable may accidentally change another [»hehnEC_1977a]
Quote: copying a pointer may cause aliasing; so its abstract value can be changed as a side-effect [»harmDE5_1991]
Quote: if variables are place holders then problems with self-reference and aliasing [»backJ_1972, OK]
Quote: many optimizations depend on copies creating equal values while not affecting other values; if not enforced, user types can not be optimized [»dehnJC4_1998]

Subtopic: change propagation up

Quote: changes to a structure propagate to all of its references, both direct and indirect

Subtopic: alias analysis up

Quote: efficient, context-sensitive pointer alias analysis using a context-insensitive algorithm; clone all methods in a call graph, one per context of interest [»whalJ6_2004]
Quote: link-time pointer alias analysis that handles pointer arithmetic and out-of-bound references; identifies 30-60% of memory reference instructions [»debrS1_1998]
Quote: static race detection by conditional must not aliasing; sound analysis, found more races than another algorithm analysing likely races [»naikM1_2007]

Subtopic: annotation up

Quote: pointer interfaces specify how procedures change the points-to information [»rugiR4_2001]
Quote: region interfaces specify the regions of memory accessed by a procedure

Subtopic: avoiding aliases up

Quote: prevent inadvertent aliasing by not importing var variables with local var declarations [»demeA3_1979]
Quote: Euclid avoids aliasing by explicitly importing all non-local variables [»veneT3_1978]
Quote: the flavor analyzer does not interpret data objects; so A(T) and A(R) are treated separately [»howdWE1_1990]
Quote: assignment by replica() assigns a copy of the parameter; example of function assignment swapping the result [»harmDE5_1991]
Quote: avoid aliasing by disallowing variables with different object contexts that reference the same part of the object store
Quote: Guava disallows unsynchronized shared access by classifying every object as a shared monitor, an unshared value, or a shareable object within a single thread [»bacoDF10_2000]
Quote: use alias burying to avoid destructive reads of 'read-once' variables; aliases must be dead when reading a unique field of possibly shared objects; static enforcement by restricting aliases across procedure calls [»boylJ5_2001]
Quote: control aliasing through read-only types with read-only methods; does not change the transitive state of an object [»knieG5_2001]

Subtopic: non-aliasing objects up

Quote: Vault identifies non-aliasing objects for type state analysis

Subtopic: no-alias property up

Quote: C++ lacks a 'no-alias' property because it can't be guaranteed, it may lead to accidental errors, and it is targeted to vectorizing computers [»stroB_1994]
Quote: Java non-references are values of primitive types without aliasing or sharing [»bacoDF10_2000]
Quote: Java local variables can not pointer aliased (no address) [»bodiR6_2000]
Quote: an unshared Guava object is permanently owned by a shared monitor or unshared value; no other references [»bacoDF10_2000]
Quote: Guava monitors are always synchronized; other instances are uniquely owned by a single monitor and never need synchronizing [»bacoDF10_2000]
Quote: Guava values are stored in variables; no references, value equality, method export, null value, deep copying [»bacoDF10_2000]
Quote: Guava uses deep-copying for values and objects within values; does not copy references to monitors

Subtopic: disallow aliases up

Quote: Fortran guarantees that multiple array arguments do not overlap; allows spectacular savings on vector hardware [»stroB_1994]
Quote: a variable should not be passed twice as distinct parameters; prohibited in standard FORTRAN

Related Topics up

Topic: alias names (39 items)
Topic: binding names to variables or expressions (10 items)
Topic: code optimization by flow analysis (47 items)
Topic: dangling pointers (13 items)
Topic: optimization of object-oriented programs (16 items)
Topic: parameter passing by reference (11 items)
Topic: pointer rotation (11 items)
Topic: pointers to data (55 items)
Topic: preventing accidental errors (37 items)
Topic: safe use of pointers (102 items)
Topic: shared objects (13 items)
Topic: variable as reference to storage
(12 items)

Updated barberCB 9/05
Copyright © 2002-2008 by C. Bradford Barber. All rights reserved.
Thesa is a trademark of C. Bradford Barber.