I'm not a student in computer science, but from what I understand from the Wikipedia article on the topic, a programming language is Turing complete if it can emulate another Turing complete language's algorithm.

Now if we consider that languages like Java, C, C++ and so on are considered Turing complete, and that all algorithms implemented in programmation are by necessity first formulated in our brain, does this mean the human brain is Turing complete?

Also a human can simulate the processes going on in a processor (or we couldn't have been able to build them), but a processor can't simulate a human brain, so how is the human brain placed in terms of Turing equivalence?


1 Answer 1


Let's do this in order:

  1. We do not say "another Turing complete language's algorithm" because "language's algorithm" is at best a confusing phrase. You might have meant "language's interpreter" but we cannot tell. It would be better to say "a programming language is Turing complete if it can emulate another Turing complete programming language". Note however that this is a circular condition, you need to get started somewhere. The place to start is Turing machine, of course. So: a language is Turing complete if it can be simulated by Turing machines and can simulate Turing machines. We would still have to precisely explain what "simulate" means here.

  2. Languages such as C, C++ and Java are not "considered" Turing complete. They are Turing complete.

  3. I deny that "all algorithms are by necessity formulated in our brains". For instance, a machine learning algorithm can come up with a new algorithm. Or perhaps an algorithm can be discovered by exhaustive search. Aliens could land and propose a new algorithm for sorting an array. Be that as it may, even if you are correct and all algorithm are formulated in our brains, your conclusion still does not follow. The following situation is in principle possible:

    • human brains are devices which spew out algorithms, i.e., they produce code to be executed, but
    • human brains are not capable of running such code

    In the extreme case a human brain could be nothing but a device which mindlessly produces all possible algorithms. One can in fact build a machine which does this, but this machine would not be Turing complete.

  4. Regarding a brain simulating a processor, I highly recommend that you read Turing's original paper, keeping in mind that in 1936 "a computer" was a person performing computations. Turing machines were designed to capture the mental abilities of humans performing calculations!

  5. I take issue with your claim that a machine cannot simulate a brain. You have provided no evidence for this, and it seems in principle possible that a sufficiently powerful machine would simply simulate everything that is going on in a brain. It may seem complicated, but so far as we know, the laws of physics do not prevent this possibility.

  • $\begingroup$ Regarding point 2 and 3, if a machine was built to generate Turing complete languages, would that machine be Turing complete itself? $\endgroup$ Jun 30, 2016 at 11:22
  • $\begingroup$ What do you mean by "generate a Turing complete language"? It means something like "a computably enumerable set of degree $0'$", i.e., something that is Turing equivalent to the halting set. But I suspect you did not mean this. In any case, the answer is still no. Generating stuff just means "spewing it out" without really undrstanding what is going on. For instance, it is very easy to construct a Turing machine which "generates" all Turing machines, just like it is very easy to generate a machine which produces all possible works of literature (as well as a whole lot of crap). $\endgroup$ Jun 30, 2016 at 12:06
  • 1
    $\begingroup$ @user6245072 In case you are interested in reading Turing's paper but you would appreciate some help in understanding it (like I did) I would recommend the book The Annotated Turing: A Guided Tour Through Alan Turing's Historic Paper on Computability and the Turing Machine. $\endgroup$ Jan 24, 2018 at 0:41
  • $\begingroup$ You say that human brains can't run code yet I think it can. I would consider that brains can run all algorithms and interpret any programming language. It just that they can only do it very slowly. Memory may be unreliable and short but we can use notepad to write down memory not really much different from CPU. $\endgroup$
    – Ski
    Apr 22 at 18:54

Not the answer you're looking for? Browse other questions tagged or ask your own question.