Ethereum virtual machine, or EVM for short, is a blockchain-based software platform. It allows developers to create decentralized applications (Dapps). Programmers value them for having no downtimes and keeping all created objects safe from modifying. (bitdegree.org)
- What is the format of the instructions that the EVM can read?
The smart contract will be written in Solidity, but the instructions will be compiled into EVM bytecode which the EVM of a node can send to the CPU of the node to execute those instructions. Thus, it is a readable version of the code that the EVM can read. All the EVMs of all the nodes in the network must achieve consensus.
An EVM consist of a database and the interpreter for EVM bytecode.
The interpreter runs EVM bytecode and is specially designed for creating secure deterministic programs suitable for blockchains. The most popular language for coding EVM smart contracts is Solidity, however any language that compiles to EVM bytecode can be run by the EVM interpreter. (https://loomx.io/developers/ko/evm.html)
- What is the relationship between the programming language Solidity and Bytecode?
Solidarity is the programming language that converts instructions into byte code which is then executed on the CPU,
- Why can’t Bitcoin run the same type of complex programs like Ethereum can?
These networks’ differences in functionality make sense given the differences in their programming languages. Both Bitcoin and Ethereum are scriptable, meaning that users can add code in both networks to automate tasks. But due to differences in programming, developers are able to code more efficiently and creatively on Ethereum than on Bitcoin.
Ethereum uses two programming languages, Solidity and Serpent, that are easy for developers to build with. These languages are advanced enough to be described as “Turing complete,” which means that they can solve any computational problem. They are also clear and readable, so developers can quickly use the advanced tools to create DAPPs. Here’s an example of Ethereum script in its Solidity language.
Bitcoin’s lower level of scriptability can be attributed to its restrictive language. Developers can only use it to do basic things, plus its scripting language is practically unreadable. For example, the ScriptPubKey, the short script that i9dentifies Bitcoin recipients, is an incomprehensible bundle of numbers and letters. (https://www.interana.com/blog/why-ethereum-matters)
- What is a Turing Complete programming language?
Turing completeness is a concept from theoretical computer science. It tells you how powerful a programming language is. Not in terms of performance or maintainability or how rich its ecosystem is. A programming language is Turing complete if you can implement any possible algorithm with it. (https://dev.to/gruhn/what-makes-a-programming-language-turing-complete-58fl)