references/addrresses in imperative languages

Walter Roberson roberson at ibd.nrc-cnrc.gc.ca
Mon Jun 20 03:33:48 EDT 2005


In article <1119220461.626477.56110 at g49g2000cwa.googlegroups.com>,
Xah Lee <xah at xahlee.org> wrote:
>In hindsight analysis, such language behavior forces the programer to
>fuse mathematical or algorithmic ideas with implementation details. A
>easy way to see this, is to ask yourself: how come in mathematics
>there's no such thing as "addresses/pointers/references".

There is. Each variable in predicate calculas is a reference.
No matter how large the formulae, a change in a variable
is, in mathematics, immediately propagated to all occurances
of the variable (potentially changing the references of other
variables).

If the predicate calculas variables were not equivilent to references,
then the use of the variable in a formula would have to be a
non-propogating copy. and a change to the original value whence not
be reflected in all parts of the formula and would not change
what the other variables referenced.

Consider for example the proof of Goedel's Incompleteness
theorem, which involves constructing a formula with a free
variable, and constructing the numeric encoding of that
formula, and then substituting the numeric encoding in as
the value of the free variable, thus ending up with
a number that is "talking about" iteelf. The process of
the proof is *definitely* one of "reference" to a value
in the earlier stages, with the formula being "evaluated"
at a later point -- very much like compiling a program
and then feeding the compiled program as input to itelf. You
cannot do it without a reference, because you need to
have the entire number available as data at the time
you start evaluating the mathematical formula.
-- 
Ceci, ce n'est pas une idée.



More information about the Python-list mailing list