To create smart contracts on the Ethereum platform, it is necessary to write the code in one of the supported languages (Solidity is the default language), then compile the code, thus obtaining the bytecode for the EVM, and finally deploy the contract on the platform. Unlike other blockchains (such as Bitcoin's), Ethereum supports the development of smart contracts through Turing-complete programming languages.
In the following section, we'll see the consequences of using Turing-complete development languages for smart contract security.