Q1 What does the EVM do?
The Ethereum virtual machine (EVM) is a virtual stack that is embedded within each Ethereum node. The EVM allows smart contracts to be executed while maintaining consensus. Ethereum is a network of computers. There is no one CPU that executes code. The EVM runs on top of the hardware on each node and uses the CPU, ram etc of each node to run or execute smart contact code. Each node uses the EVM to execute the smart contact code to arrive at the same conclusion therefore consensus is maintained.
Q2 What is the format of the instructions that the EVM can read?
The EVM takes readable code from solidity for example and compiles it into a a version of that code that can be understood by the computer. We commonly say low level code designed for a software interpreter. The Ethereum EVM compiles smart contact code into bytecode which can then be executed by the EVM. Ethereum bytecode is an assembly (low level) language
Q3 What is the relationship between the programming language Solidity and Bytecode?
So we know that solidity is a smart contact programming language. Soldidity is constructed in a way that allows user to easily read and userstand the functionality o the code that is being written. When this smart contract code is executed the EVM complies it and conversts our readble solidity code into a format that the computer can understand at a low level. Once this program has been compiled and its format changed so that the computer can understand it is executed. This is the link between solidity and bytecode
Q4 Why can’t Bitcoin run the same type of complex programs like Ethereum can?
The reason bitcoin cannot run the same type of complex programs like ethereum because the programming language built into bitcoin called script is very limited in its capabilities and really limits users on they type of things they can do. One of the main reasons for this is that there is no ability to create loops in script
Q4 What is a Turing Complete programming language?
A Turing complete programming language is simply a language that allows the user to do anything they want. For example in HTML we cannot declare variables or functions. Thus we could not write a program in HTML to do certain things on command. Whereas we look at python or C we can code up anything we want pretty much and there is far fewer limits on what we can tell our code to do.