Map
Index
Random
Help
Topics
th

Topic: aliasing

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



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

Summary

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
[»hoarCA_1974]

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.