Does our PC work as Turing Machine?

Does our PC work as Turing Machine? The model of a Turing Machine consists of infinite memory tape, which means infinite states. But suppose if our PC has 128 MB memory and 30GB disk it would have 256^30128000000 states and thus, it has finite states.

I know that we can write a type of program that, if during execution we run out of memory, will request to swap memory disk with empty memory disk and resume execution.

But what if we don’t swap memory disk, in this case is it right to consider PC as FA?

• note even [large] disk is finite & therefore computation based on it can be represented technically as a FSM. very similar to this other question Turing complete and computational power – vzn Apr 25 '13 at 1:05
• A computer isn't limited to internal memory; it can use external storage, too. – reinierpost Oct 3 '16 at 21:20
• Nope, it works as a von Neumann machine. Also, $256^{30128000000}$ is closer to infinity than you might expect. – Andrej Bauer Jun 12 '17 at 20:35
• Turing machines don't necessarily have an infinite amount of memory. They just have a sufficient amount of memory to do whatever you want to do. If you limit yourself to halting programs, a Turing machine may as well have finite memory. Either way, the amount of memory a turing machine will use at any given time is finite, although possibly increasing. Networked computers also have a finite, but possibly increasing amount of memory. – DanielV Jun 12 '17 at 20:59

You're right that physical computers have finite memory and so are not Turing-complete. There are other ways in which computability theory is not a good model for computing - it doesn't take into account time and memory constraints. Complexity theory was invented (perhaps) as a more realistic depiction of computing, but IMHO suffers from similar (but subtler) problems.

On the other hand, in order to mathematically study the capabilities and limits of computing, we need to use some abstraction which is unconstrained. That makes the analysis possible. Similarly, in statistical mechanics we assume that the number of elements (atoms or molecules) is so large, that the behaviour is close to the limit (that is, we let the number of elements tend to infinity). Studying computing from an asymptotic perspective has similar advantages, but sometimes is misleading. Here are some examples of the latter:

1. In cryptography, exponential algorithms are sometimes feasible. If we choose the wrong security parameters, our encryption might be insecure even though it's "provably secure".
2. Polynomial-time algorithms are supposed to represent efficient and feasible computing, but many of them aren't feasible. As an example, most sophisticated matrix multiplication algorithms aren't used in practice.
3. Modern complexity theory is obsessed with worst-case performance, and cannot analyze heuristic algorithms which are used in practice. NP-hard problems are considered infeasible, yet they are being solved in practice all the time.

A separate issue is that real computers don't work like Turing machines at all. They work like RAM machines, which are a better abstraction for actual computing.

I think you've given the answer yourself already. If the main aspect you are concerned about is the (in)finity of states, then a Turing Machine as such only exists as "a hypothetical device".

No matter how much memory you'll give your PC, it will always be limited, hence you can find program that will run on a "real" Turing Machine, but not on this PC due to the bounded tape.

http://en.wikipedia.org/wiki/Turing_machine#Comparison_with_real_machines

• Turing machines have a potentially infinite number of states, but a universal Turing machine can simulate any Turing machine, while at the same time has a fixed number of states. – Yuval Filmus Apr 23 '13 at 12:30
• @YuvalFilmus I think you're confused between states and configurations. All Turing machines have a finite number states, but due to their unbounded memory that can be in infinitely many configurations. Universal TMs too have only finitely many states, but might need unbounded memory to simulate their input-machine. – adrianN Apr 23 '13 at 13:29

At the time Turing machines were invented, computers were women who would execute calculations on scrap paper. That is the notion of computation Turing machines express. Their tape isn't part of them any more than scrap paper is part of a person performing calculations.

This is still a good model for computer-based calculation because the bounds on resources in computers are usually quite large. Inherently finite computation models only become useful when the number of possible states is very small.

A modern computer is Turing complete, generally this term is used with the exception of infinite storage device. In practice, the memory can be quite long. For example, along with being universal function approximators, recurrent neural networks with memory (and running repeatedly) are said to be Turing complete. Indeed, Neural Turing Machines take this idea to a stage further inferring simple algorithms.

• How does this answer the question? – Raphael Jun 13 '17 at 4:42