---
# System prepended metadata

title: What is Turing complete

---

#  What is Turing complete
* Turing complete machine is one where we can run any program.
* Means,It includes some form of loops or recursion. That is, repeat this until it reaches some condition.

## Important characteristic:
* If they are going into a loop, we don't know when they are going to complete and reach an exit condition.
* We can't know in-advance whether this program terminates. This is exeactly Alan Turing proved and Its an important problem to be true.
* It has an unpredictable runtime or unprovable runtime.

### what is Turing incomplete?
* The programming languages with no loops or recursion.
* It has predictable runtime and can be estimated when it exits.
* Ex. `Bitcoin scripting language`.
* Infact, Its harder to make make something Turing incomplete, Many Turing incomplete programming language accidently made to be Turing complete.

# Ethereum is Turing complete
* Considering the above facts, When we have Blockchain that operates Turing complete system, We need a way to meter the time & resources that uses so that It doesn't run for ever. 
* We can run any program in Ethereum Virtual machine that run for ever,To prevent that Ethereum has something called upper gas limit to limit the usage of resource used by smartcontract execution. 