Re: What if black holes are just a glitch in the matrix?



In sci.physics, Sam Wormley
<swormley1@xxxxxxxxx>
wrote
on Sun, 29 Oct 2006 13:58:14 GMT
<Wr21h.122050$aJ.16310@attbi_s21>:
StarbladeEnkai@xxxxxxxxxx wrote:
Sam Wormley wrote:
Ed Zagmoon wrote:
This whole world is a computer program that is running since
billions of years

Computer programs are deterministic...

Nothing is deterministic.


Write a non deterministic computer program starblade.

I should point out here that this is partially a hardware problem.
:-)

For example, one could do something along the lines of the following.

char data[1024];

for(int i = 0; i < 1024; i++)
{
for(int j = 0; j < 8; j++)
{
int k;

asm {
IN #12345, k;
}

data[i] <<= 1;
if(k&0x80) data[i] |= 1;
}
}

where port 12345's 7th bit is hooked into a flipflop
fed by a neon-capacitor trigger, or perhaps one would
prefer a mica/gas trigger similar to those used in Geiger
counters, feeding said flip-flop. Either way, the program
executes in slightly unpredictable time and leaves after
the execution a populated data array that is completely
random -- or as random as the randomizing device feeding
it allows.

There are also unintended side effects -- many of them usable in
machine attacks. For example, the mostly useless function:

int f() {
char data[1024];
if(fgets(data, 2048, stdin) == NULL) /* whoopsie! */
return -1;
return strlen(data);
}

would result in corruption of the stack somewhere below
data; depending on machine architecture this would either
have little effect (HP PA Risc running HP/UX) or result
in the program executing an arbitrary machine location
(most other machine types).

Fortunately C provides sizeof(); the above is more correctly
written

int f() {
char data[1024];
if(fgets(data, sizeof(data) - 1, stdin) == NULL)
return -1;
data[sizeof(data)-1] = '\0;' /* just in case */
return strlen(data);
}

Since fgets() is carefully specified, one can also get away with the
slightly simpler

int f() {
char data[1024];
if(fgets(data, sizeof(data), stdin) == NULL)
return -1;
return strlen(data);
}

if the library is known to be bug-free in that area.

There are also other effects such as referencing a free
pointer. In a single-threaded OS (these are extremely
rare nowadays) sans such things as interrupts one might
very well be able to reproduce an effect every time, but
interrupts, multithreading, I/O processing, and memory
sharing make life interesting for the modern programmer. :-)

No doubt you're also familiar with the classical Halting
Problem. Even in the context of a deterministic Turing
machine, which is essentially a non-modifiable-code
single-threaded non-interruptible device, one can't
algorithmically determine whether it will halt or not,
even though one knows that

(a) it must halt or run forever, and
(b) given the same input, state set, start state, and transition
function it will always do exactly the same thing.

And yes, there are non-deterministic Turing machines, as well as other
such variants; such are often used in parsing. For example, an
acceptor for the regular expression

?*abcde?*

can be easily modeled as an 8-state nondeterministic machine. It is
of course converted into a deterministic machine during execution,
either prior to actual run of the machine, or by simply maintaining
a set of active states while the machine chews on the input string.

[]12abcde34 {0,1}
[1]2abcde34 {0,1}
1[2]abcde34 {0,1}
12[a]bcde34 {0,1}
12a[b]cde34 {0,1,2}
12ab[c]de34 {0,1,3}
12abc[d]e34 {0,1,4}
12abcd[e]34 {0,1,5}
12abcde[3]4 {0,1,6,7}
12abcde3[4] {0,1,7}
12abcde34[] {0,1,7}

(Or something like that.)

--
#191, ewill3@xxxxxxxxxxxxx
Windows Vista. Because a BSOD is just so 20th century; why not
try our new color changing variant?

--
Posted via a free Usenet account from http://www.teranews.com

.



Relevant Pages

  • Re: Benchmark results (Re: Storage of char in 64 bit machine)
    ... CurEqual(char *c1, char *c2) ... int ceq ... strings this is the MOST LIKELY result. ... Don't forget that execution speed is data dependant so you ...
    (comp.lang.c)
  • freeing of char**
    ... When comes the moment to free it, i have to free all the (char*) inside. ... well, on execution the system says 'junk pointer, too low to make sense' ...
    (comp.lang.c)
  • Re: Python(2.5) reads an input file FASTER than pure C(Mingw)
    ... Remove it and execution will drop to 0.25s. ... If you write a code that does an fread loop, ... int main{ ... char *begin, *end; ...
    (comp.lang.python)
  • SSPI Kerberos for delegation
    ... const char *tokenSource, const char *name = NULL, ... DWORD bufsiz = sizeof buf; ... int n = ib.cbBuffer; ... // wserr() displays winsock errors and aborts. ...
    (microsoft.public.dotnet.framework.remoting)
  • [EXPL] ELOG Remote Shell Exploit
    ... char content; ... static int content_length; ... static unsigned char boundary; ... void get_server_version; ...
    (Securiteam)