EON - a very short, very long-running program
The idea is to treat all (or as much as you want) of memory as one long counter. This requires only one very short loop. Depending on the amount of memory allocated, it can take a very long time to complete, hence the name EON.
In one sense, this is just an elaborate way of wasting time. In fact, asking an annoying bot to execute a version of this in a served web page, can be a way of effectively disabling it.
It is also an implementation of the monkeys-typewriter joke, where, given enough time, the typing monkeys will produce all of Shakespeare's plays, including the ones he never published.
Marvin Minsky was reported to use this as an example of an inefficient automatic program development process. That is: increment memory, then test if the result is a Fortran [1] compiler, if not then repeat. One problem, he pointed out, was the test, which was problematic because the program would also produce all possible buggy Fortran compilers.
[1] Where Fortran was everyones favorite whipping boy [2].
mem[] is a large, zero-based array (unlike Fortran) of unsigned bytes (thus, adding one byte to the array size increases run time by 256)
i=0 do while True mem[i] +=1 if mem[i] = 0 then i=i+1 else i=0 end
The difference between signed and unsigned arithmetic should not be a problem in practice, only in interpretation. Both systems of arithmetic will move through all possible states in this calculation. Starting from zero and adding one at each iteration, the number will eventually roll around to zero, which is all we test for. When using signed arithmetic, the counter will overflow and change from the most positive possible number to the most negative possible number. Continuing to add one to this will make the number less and less negative, eventually reaching -1 and then zero.
see also: Infinite monkey theorem
note to self: The article gets hung up in the evolution argument. The theory of evolution does not rely on this sort of random generation. This is fairly obvious, and is well known. The focus is now on what mechanisms could work. Walter Gilbert made a major contribution with his article Why genes in pieces?.
[2] More Fortran jokes:
- I don't know what language physicists will be using in 20 years, but I know it will be called Fortran.
- Every interpreter, as it's processing power grows, will eventually have it's own Fortran compiler.