From: Herbert Kleebauer on
Paul Dunn wrote:
> Herbert Kleebauer wrote:
>
> > If you have an closed system
> > with a finite number of states (N), then it is trivial to solve the
> > halting problem for such a system: simulate N steps, then either the
> > system has halted or it never will halt.

> Seems to me that this is the problem here - do you have enough time to
> determine with 100% accuracy that the machine has halted?

It is a finite amount of time, that's all that matter. For a system with
a 10 Gbyte HD you get about 10^11 bit (including RAM and HW FlipFlops).
All you have to do is, to simulate 2^(10^11) steps. This is practical
impossible but theoretical trivial.

> If an external
> agency, such as an interrupt,

It is a closed system, so no external interrupts.
From: Herbert Kleebauer on
Phil Carmody wrote:
> Herbert Kleebauer <klee(a)unibwm.de> writes:
> > Phil Carmody wrote:

> > > Mathematically (and I'm a mathematician at heart), you're correct.
> >
> > If you are a "mathematician at heart", then you should know the
> > difference between "theoretical impossible" and "practical impossible".

>
> If you insist on being publically hit with a clue-stick - work out
> what N might be, and quit posting things that demonstrate that
> you've not thought about things enough until you've:
> a) counted up to N (write a program, in assembly if you like)
> and
> b) thought about things enough.

Do you really claim that there exist a (closed) digital system for
which no N exist, so that the number of possible different states
is <N ?

Or do you claim that it is wrong, that if the number of possible
different states is <N, that then after N simulation steps the system
either has halted or will never halt.

Or do you simple not understand the difference between the theoretical
proof that a solution exists and the inability to find this solution.
From: randyhyde@earthlink.net on

Herbert Kleebauer wrote:
>
> Or do you simple not understand the difference between the theoretical
> proof that a solution exists and the inability to find this solution.

I think the point that Phil is making is that although, in theory, all
real computer systems have a finite number of states, and therefore you
can enumerate all possible combinations of those states, the number of
states is so high that for all practical purposes it is impossible to
enumerate them.

Also note one other thing (as this relates to disassemblers), in order
to enumerate all those possible states, and recognize which collections
of states correspond to halting (or non-halting) programs, you need a
*bigger* machine to do the recognition. IOW, it may be theoretically
possible to create a program that will recognize all programs that can
halt on an x86 CPU, but you certainly aren't going to be able to *run*
that program on an x86 CPU, as that program requires more states that
are available on the x86.
Cheers,
Randy Hyde

From: Charles A. Crayne on
On 27 Sep 2005 09:44:49 -0700
"randyhyde(a)earthlink.net" <randyhyde(a)earthlink.net> wrote:

:IOW, it may be theoretically
:possible to create a program that will recognize all programs that can
:halt on an x86 CPU, but you certainly aren't going to be able to *run*
:that program on an x86 CPU, as that program requires more states that
:are available on the x86.

Your conclusion that one cannot emulate an x86 CPU in a program which runs
on an x86 CPU will come as a great surprise to those who have already done
so.

-- Chuck
From: randyhyde@earthlink.net on

Charles A. Crayne wrote:
>
> Your conclusion that one cannot emulate an x86 CPU in a program which runs
> on an x86 CPU will come as a great surprise to those who have already done
> so.
>
> -- Chuck

There is a big difference between "a" program and "any" program.
Cheers,
Randy Hyde