Tracy R Reed wrote:
Darren New wrote:
Depends on which analog computer. Most are rather a lot smaller than a Turing machine. Remember the halting problem only exists for infinite-storage computers. Anything with a fixed number of states is "trivial" to check whether it halts.

A modern digital computer has a fixed number of states but given the definition of a program and a finite input is unable to tell you whether that program will run forever or not.

I can tell you whether a program on (for example) a Z80 computer will run forever fairly easily, assuming it's a self-contained system.

The Z80 has 2^16 bytes of address space (add the appropriate amount of space for registers). That means the processor can only be in one of 8*2^16 different states (again, modulo register content, which is just more memory, and ignoring external stuff like removable media, interrupts, keyboards, etc).

Run the processor, making a complete copy of memory after every instruction. Continue until you execute a halt instruction or until the state of memory matches what you have already seen. In the former case, the program halts. In the latter, it is in an infinite loop. Both cases will be determined in finite time.

Trivial, except for the cost of storing (8*2^16)^(8*2^16) copies of the memory, or so.

The reason you can't solve the halting problem on a Turing machine is you don't have an upper limit on the number of states you have to examine, since memory is unbounded.

> The last two sentences of the
above paragraph are false. Were they true it would imply that my computer with a mere 4G of RAM is not an infinite-storage computer and can therefore decide the halting problem.

No, it can't decide the halting problem due to being finite. It can be the subject of the decision due to being finite.

It also has a fixed number of states but checking whether a program halts is far from trivial.

It's quite trivial if the machine doing the checking has unbounded amounts of memory.

Not sure where the halting problem comes in at all, actually.

The human brain can analyze a program and determine whether or not it will ever halt.

The halting problem isn't that "there are no programs for which you can decide whether it halts." The halting problem is "there are some programs for which you cannot decide whether it halts." There are many, many programs for which it is easy to determine whether the program halts - all programs lacking indefinite loops, for example. The problem is whether you can do this for *every* program, and no, the human brain cannot look at *every* program and figure out whether it halts.

--
  Darren New / San Diego, CA, USA (PST)
    It's not feature creep if you put it
    at the end and adjust the release date.

--
KPLUG-LPSG@kernel-panic.org
http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-lpsg

Reply via email to