Re: Using Object Oriented Programming to revolutionize physics?
On Feb 8, 12:19 am, Michael Helland <mobyd...@gmail.com> wrote:
On Feb 7, 5:41 pm, Owen Jacobson <angrybald...@gmail.com> wrote:
On Feb 7, 1:05 pm, Michael Helland <mobyd...@gmail.com> wrote:
On Feb 6, 4:37 pm, "John W. Kennedy" <jwke...@attglobal.net> wrote:
Michael Helland wrote:
The last discipline meaning that us computer programmers have the
unique position of being able to intuit what many consider counter=
intuitive, ideas that the physicists themselves are going to have =
a
very difficult time coming to grips with.
Translation: "I'm one of the last people on Earth to discover
object-oriented programming, and it's suddenly occurred to me that t=
his
would be a useful way of performing simulations. I bet no one's ever=
thought of that before.
My thesis isn't "use OOP to do simulations."
I'm suggesting a simulation that contains an internal observer.
That's never been done before.
Hold up a second. If we take, say, Java in the abstract, it's a
Turing-complete language[0]. That is, two interesting properties
hold:
1. Any computable process can be computed using the rules of the Java=
language.
2. Any Java program can be reduced to a single natural number.
Ok.
Can a single natural number be expanded to a Java program with no
further information?
<http://mathworld.wolfram.com/GoedelNumber.html>
Which actually describes how G=F6del numbers apply to Turing-computable
functions, but since all "real" computer languages are capable of some
strict subset of Turing-comptable functions that's not all that much
of a limitation.
To save you some effort:
"Then there exist algorithmic procedures that sequentially list all
consistent sets of Turing machine rules. ... Any such procedure gives
both an algorithm for going from any integer to its corresponding
Turing machine and an algorithm for getting the index of any
consistent set of Turing machine rules."
That is, for any particular mapping between computable processes and
numbers there will exist a computable mapping in either direction.
Are you seriously trying to convince me that there exist some numbers
which contain, when converted into Java (or some other Turing
language, or expressed as instructions for a UTM), is somehow self-
aware?
I guess that depends on the answer to my question above.
But the basic idea is to use the java program to create some virtual
substance in a computer program, and use it to build a second virtual
computer.
The second virtual computer should be gathering data about it's
environment, sort of like a human being does.
That has never been done
This has been done before: have a look at breve.
<http://www.spiderland.org/>
The field in general is called "alife" or "artificial life" and
revolves entirely around programmable entities operating within a
simulated environment.
It cannot possibly be any more powerful than the computer it's running
on. If you simulate anything within a JVM, the entire universe of the
simulation will be constrained by the capabilities of the JVM - that
is, to computable functions. Likewise with an x86 chip directly, or a
massively-parallel supercomputer[0].
We use hypotheses to predict the results of an experiment. What if the
computer program, with its two sets of data, is a hypothesis
A computer program is not a hypothesis. A formal statement of
expected results and reasons is a hypothesis.
and what
if we ignore the first set of information, the data of the computer
program, and instead make our predictions based on the second set of
information, the data in the virtual computer?
In other words, the model predicts the results of an experiment
through an internal artificial intelligence.
What will we find?
What if we used that fundamental substance to recreate the double-slit
experiment with an observer present?
How would the first set and the second set of information differ?
However the programmer intended them to differ. I can write a program
that simulates interferometry in a few different ways and play with
the fundamental constants involved -- change 'c', change the
interference function, whatever. The results will either be
consistent with the underlying mathematical and physical theories
behind interferometry, or they won't be.
But if they're not, it's probably because the code has a bug, not
because I've discovered that the math is wrong.
-o
PS. this is drifting rapidly off-topic for cljp. Would someone
suggest a more suitable venue? comp.programming springs to mind.
[0] <http://www.andrewboucher.com/papers/parallel.htm> -- parallel
operation does not increase the computational power of a Turing-
equivalent process.