To the question “Is the universe a computer?” many today might answer “Yes…a quantum computer!” The first comment I want to make about this is that this is a kind of funny answer. The reason this answer is funny is that when we refer to a quantum computer we are usually refering to a machine with a finite language. So what many people mean by this is that one could set up a quantum computer which runs a program which simulates the physics of our universe. Of course there are all sorts of issues with the fact that this will be some sort of approximation of the universe. Another interesting fact is that what we probably mean by the universe is a quantum computer is we are thinking about a grid of quantum computers each executing local evolutions which give us the full evolution of the universe. So we might be better of saying the universe is well approximated by a bunch of quantum computers.
In comparison to the question “Is the universe a computer?” if we ask people “Is the universe a classical computer?”, we will universally get the response that the universe is not a classical computer. The first reason for thinking that the universe is not a classical computer is that we think that quantum computers are more powerful than classical computers. Thus we might think that if the universe is a classical computer, then it is very inefficient. Well you might not care that it is inefficient! Well, OK, but what about the nonlocality in quantum mechanics. Bell’s theorem tells us that in a real way, the universe is not a bunch of local computers which only talk to their neighbors. Quantum nonlocality challenges the notion of local realistic descriptions of nature.
What has begun to intrigue me lately is the question of whether the issue of programming languages has much to say about the question of whether the universe is a classical computer. To explain this I’d like to explain a bit about the difference between an imperitive programming language and a declaritive programming language. Imperitive programming languages are the ones most of us are used to (like C++, assembly language, etc.) In imperitive languages, one provides a list of instructions to execute in a particular order. The computer has a state which is updated according to the next instruction to be updated. Declaritive languages are used less frequently. The prototypical example of such a language is Prolog. In declarative languages one gives the computer a set of conditions (relationships between variables) and the computer then applies a fixed algorithm to these relations to produce a result.
So the question I want to ask is whether thinking about the universe as a classical computer with an imperitive versus a declaritive language helps clear up this whole bloody issue of quantum nonlocality? The basic idea for why this might help is that the declaritive languages are much more like path integrals in quantum theory. What I’m imagining is not local computers executing declaritive languages, but that the universe a computer which can execute a nonlocal declaritive language. In many ways this reminds me of those who delude themselve into believe quantum logic is the solution to all interpretive problems in quantum theory, but maybe casting the question in terms of the programming language helps overcome some of these interpretive questions.