Topic: constants
Topic: definition languages
Topic: functional programming
Topic: immutable files and data
Topic: initialization of data
Topic: named constants and expressions
Topic: owned resources and data objects
Topic: parameter passing by value
Topic: replacement as defining a variable
Topic: static single assignment; SSA
Topic: variables as objects which remember a value
| |
Summary
An initialized constant is a name whose value is permanently assigned on first use. They are helpful for setting up the context for an execution. Their largest use is in parameter passing by value. In functional programming, all names are initialized constants. (cbb 1/90)
Subtopic: initialized constants
Quote: a non-local or public identifier in an environment is assigned a constant value when the environment is created [»hansDR5_1978]
| Quote: Smalltalk class variables are usually used as initialized constants [»xlrg8_1981]
| Quote: Alphard allows initialized types; i.e., it is constant once defined [»wulfWA6_1976, OK]
| Quote: a dynamic constant is an object which retains its first value indefinitely [»gunnIE7_1979]
| Quote: allow declarations were needed. Used for initialize-only/single-assignment programming, references, initialized constants, and efficiency. [»stroB_1994]
| Quote: need notation for single-assignment variables [»atkiMP6_1987]
| Quote: for write-once fields, the commit/reconcile/fence (CRF) memory model needs monitor-like locks and a freeze op
| Subtopic: use named constants everywhere
Quote: a named constant (assign-once) can replace most variables except for repetition state [»redeDH7_1979]
| Quote: a Cedar rope is an immutable, garbage-collected, text string; widely used in all system levels [»swinDC7_1985]
| Subtopic: futures for synchronization
Quote: use futures for concurrent return values, event objects, and macro-dataflow programming; wait until value is assigned; assign-once [»chriTW2_2002]
| Subtopic: 'const' attribute
Quote: reference arguments should use 'const' if the argument is not modified; allows literal and expression arguments; improves readability
| Subtopic: read-once
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]
|
Related Topics
Topic: constants (21 items)
Topic: definition languages (3 items)
Topic: functional programming (45 items)
Topic: immutable files and data (59 items)
Topic: initialization of data (45 items)
Topic: named constants and expressions (21 items)
Topic: owned resources and data objects (12 items)
Topic: parameter passing by value (5 items)
Topic: replacement as defining a variable (8 items)
Topic: static single assignment; SSA (19 items)
Topic: variables as objects which remember a value (10 items)
|