# Is a PDA as powerful as a CPU?

This is a question I have stumbled upon in my exam revision and I find it intriguing:

My computer is blue and it has a massive graphics card and a DVD and every- thing so which is more powerful: my computer or a Pushdown Automaton?

## My Thoughts

When we talk about power I have assumed this to be computational power. I believe that a PDA has the computational power to equal the computational power of a CPU (cpu in this case is the core elements of a computer ie memory and processor). This is because a PDA utilises a stack which is memory(RAM) in a computer. The PDA has states as does a CPU and also the PDA calculates simple logic at each state. I realise that the PDA itself would be a complex series of states to emulate the computational power of the cpu and there would have to be a series of PDAs to compute different functions.

My Question: I know that Turing machines are best used to simulate the logic of a CPU but am I right in saying that a PDA (Or PDA's) can be designed to be as powerful as a cpu?

## migrated from cstheory.stackexchange.comMay 16 '12 at 12:12

This question came from our site for theoretical computer scientists and researchers in related fields.

If you count a CPU (as you imply in your text) as an unbounded memory and the processor, then no you can't model it as a PDA. A push down automaton (with one stack) can only recognize context-free languages, for example $\{a^n b^n c^n | n \geq 0\}$ cannot be recognized by a PDA, but presumably could be recognized by your blue computer with massive graphics card and DVD.

Typically, we think of your blue computer with massive graphics cards and DVD as a Turing Machine, because that often proves to be the best way to model it.

On the other hand, if you model your CPU without unbounded memory, then PDA is still not the right model. If your CPU has no memory or only a small (i.e. bounded) amount of on-chip memory, then it can only be in a finite number of states, and is better modeled as a DFA.

This is a big subject, but there are two basic schools of thought on how to model real-life computers (which I assume you mean -- the CPU is only one part of a computer) with mathematical automata, and they lead to two different theoretical areas -- (a) finite-state automata; (b) infinite-state automata with various restrictions. Both Turing Machines and PDA's are examples of the latter, as are resource-bounded models of computation in complexity theory (P, NP and all that).

The argument for finite state automata is that all computers are inherently limited to a finite number of states, however large (and it is large, like $10^{12}$+, even without the disk, which takes it up to $10^{25}$ or so) because the world is a finite place, at least the corner of it that computers live in. The infinite-state perspective says that's true, but the number of states of an actual computer is so large that modelling it with infinite state mathematics leads to more useful insights on their structure and limitations. Both make some sense, but the infinite-state position is by far the predominant one today, especially with complexity theory. There is some research activity on finite-state models still going on, but the majority of it is concerned with the complexity of smaller circuits and devices rather than entire computers.

As for whether a PDA is a good model for a real computer, that's clearly a question in the latter category -- PDA's have infinite states structured and limited in a specific way. But that way -- a single, simple stack -- is pretty much unheard of in the world of real computers. There have been and still are real computers with built-in stacks, but many of them and they usually have features that exceed those of a simple PDA . Nevertheless, the theory of pushdown stacks has been useful in understanding such computers. Also, mathematical models of target machines for high-level languages invariably use stacks, and again the theory of how stacks work is very useful there for analyzing such models.

So, the answer to your question -- in brief -- is mostly no, the PDA is not generally a good mathematical model of real computers, but it has some relevance. But neither is a Turing Machine, since real computers don't use anything resembling the tape of a TM. On the other hand, both PDAs and TMs lead to useful mathematical models of different aspects of computation in general with many important theoretical and practical consequences.

You are right if your CPU has bounded memory. A CPU can do basically exactly what a turing machine can do. But: The reality it is build in gives the CPU limitations, such as the amount of memory it can access. If we assume the CPU has only finite memory available, it resembles to a TM with constant space, making your CPU as powerful as a DFA - which can be easily simulated by a PDA.

Note: The PDA to simulate your CPU and GPU that has access to Trillions of Bits of memory would be quite huge, to say the least.

• I don't see how "You are right" makes sense... PDA is not the appropriate model. If memory is unbounded, then proper model is TM, if memory is bounded then proper model is DFA (as my answer already explains). In no case is PDA the proper model. – Artem Kaznatcheev May 16 '12 at 13:02
• He is right in the sense that a PDA can be designed to be (at least) as powerful as a CPU [with limited memory]. Yes, for that case a DFA would be a proper model, but I tried to answer his question in context of the origin of his question: 'what is more powerful', and less in search for proper models. – Mike B. May 16 '12 at 14:05