But our machines, our computers, are machines which can accept other machines as input. And even in this limited domain we cannot solve the Halting Problem, so I consider them a part of the Turing Machine class even if they are descendants of Turing's Form.
Edit: In more concrete terms, one can design a very simple program in C, but that doesn't mean that C isn't capable of being used to design more complicated programs. It also isn't very useful to measure a _specific_ C program, especially a simple one, as a measure of what _all_ C programs may be able to do.
Edit^2: After thinking about this more, I think a better argument is this: it is true that our physical machines must exist in some sort of finite state, but if our big problems (such as the Halting Problem) were merely symptoms of infinity, then we would have solved them by now in our limited and finite domain.
Any Turing Machine we will have made into silicon is able to run any Turing Machine we can formulate (at this current moment in time) except only up to a finite point. But we can forever increase that finite point of measure! For example, our computers now may be able to calculate up to N. The next year, we may be able to do N+10000. The following year, N+10000000, and on and on. This is a limit of our reality, but not of the Turing Machine, which our machines must be because they are capable of being extended all the way to infinity, even if we take them there step by step, by adding 1 at a time.
Again, if this were a problem of infinity, then we would have limited the domain and solved the issue already. But we can design very simple, very finite Turing Machine programs for which the Halting Problem cannot be solved:
while (true) {
sleep(1);
}
edit: you were right -- we are talking past each other. The "finite" in "finite state machine" is not useful here. Any infinite Turing Machine which we have made into silicon is still an infinite Turing Machine, just one we have inherently limited due to our realities of only having so much time or room or resources or whatever else. But a FSM is not one we limited artificially, it is a different class entirely and a class we can completely make into silicon without any sort of loss. Again, if this were a problem of "infinity" then we would have limited the domain by our own choice and solved it, which we have done for machines of a lower complexity, but _not_ for Turing Machines.And the halting problem is solvable for any finite machine. A finite machine has a finite number of states. You only need to run N steps where N is the number of possible states. If it hasn't halted at that point, it must run forever.
It's at most N steps - the machine can return to a prior state long before that happens, which would also prove that it's non-halting.
Of course the memory requirements to do that make it purely theoretical - but so too is exhaustive execution (due to time requirements).
https://en.wikipedia.org/wiki/Busy_beaver#Exact_values_and_l...
Non-halting finite machines are periodic.
The fact that we are unable to detect that they have returned to a prior state is a physical limitation, not a theoretical one.
https://en.wikipedia.org/wiki/Turing_completeness#Formal_def...
> Turing equivalence: A Turing-complete system is called Turing-equivalent if every function it can compute is also Turing-computable; i.e., it computes precisely the same class of functions as do Turing machines.
> Turing machines, first described by Alan Turing in Turing 1936–7, are simple abstract computational devices intended to help investigate the extent and limitations of what can be computed.
https://plato.stanford.edu/entries/turing-machine/
Even if we had infinite memory, our computers would be closer to those of the Von Neumann architecture than to Turing machines.
> The Von-Neumann architecture is an architecture for constructing actual computers (which implement what the Turing machine describes theoretically).
https://stackoverflow.com/questions/2782014/turing-machine-v...
This is not simple pedantry - Turing never intended for the machine to be built, it was only ever a device intended to explain computability.
The theoretical Turing machine can accept a tape for any definable program, but the architecture cannot possibly run efficiently.
It was never intended to.
If we had infinite memory and infinite symbols (instead of only 2^64), we could build a universal Turing Machine. But that doesn’t mean our physical computers aren’t Turing Machines executing Turing-complete programs that just happen to be in the space of programs executable in a finite time and within the limitations of our current physical realities.
I’m not sure who told you that Turing never intended for the machine to be built. He knew that he could not build a machine with infinite tape, as we both know too. But when he built the machine to crack the Enigma Machine, he did this _after_ writing his paper, “On Computable Numbers.” So, he was in effect making a Turing Machine (but he called them a-machines).
We literally didn’t have computers before Turing formalized a way to execute them, instruction by instruction, and in detail. Once we had some kind of formal method to do this, physical machines could start being built.
Edit: My comments have not shown misunderstanding. There seems to be this consensus that our mathematics here came _after_ our machines. But this is wrong and the implications are tremendous. Our computers we have really are machines which execute other machines. What is the only class of machine that can do that? The Turing Machine.
Edit2: I suppose this is an argument of semantics. I didn’t realize. Yes, perhaps our computers are “Turing-equivalent”. I still think the “tape” and “symbol” and all of those things are merely mental variables, which is why I called these things a Form earlier. We built a physical tape, it just took the form of RAM and has much detail that electrical engineers can talk about. We also built symbols, we just called them instructions and placed them into a CPU. All of our physical devices have come from theoretical findings, not vice-versa.
No, it's not a Turing machine - it's Turing equivalent.
Turing equivalent, say it with me: Turing equivalent.
No, it is not the same damned thing. No, my memory pool is not a fucking tape.
If I claimed that a Ryzen CPU is still and Intel machine, I would be wrong (I'd be less wrong than you are, they're a hell of a lot closer than Von Neumann and Turing).
There's a whole lot of nuance in this discussion that you are either unwilling or unable to understand.
Every comment you've left in this thread has shown some misunderstanding of the topic at hand - you might try listening to what people are saying to you.
And no, it's not pure pedantry - the machine architectures serve very different purposes.