Turing Complete

The ability of a computer to solve complex computational problems or run any algorithm, given it is provided with necessary conditions, memory, and time is called Turing Complete. Most of the modern programming languages are Turing Complete. A few examples of such codes are C++, JavaScript, Python, etc. In order to call a machine Turing Complete, it must be able to behave like a Turing Machine. Turing Machine was a theoretical machine developed by Alan Turing.

According to Alan Turing, a time shall come when a machine shall be able to perform any form of computation and it shall be called the Turing Machine. The hypothetical machine created by Turing was capable of performing any mathematical problem and could be expressed in code, having calculable answers. Simple calculators are popular examples of Turing incomplete machines since their application is limited to only a few types of calculations. However, a programmable scientific calculator can be considered a Turing Machine as it is capable of performing all sorts of calculations.

The blockchain scripting language for Bitcoin was intentionally made Turing Incomplete because it was designed to serve a particular purpose, and trying to make it more complex could introduce problems to the blockchain system. Ethereum on the other hand was Turing Complete. This was done as it was important for Ethereum to understand the agreements made with the help of smart contracts. This helps Ethereum to understand as well as implement future agreements. Ethereum is considered Turing Complete because its code base is such that it can perform any and every task as long as correct input is fed into the system.