EVM is Ethereum’s second layer software program run on all nodes to encapsulate a smart contract to read and help the CPU execute the instructions for the smart contract in an unstoppable, transparent, and secure manner.
EVM can read instructions in Bytecode.
Solidity compiles the instructions into Bytecode to be read by the CPU for processing smart contracts.
Bitcoin has a limited programming language that is not secure for smart contracts. The language is not Turing Complete, which opens the blockchain to a possible spam risk.
Solidity is a good example of Turing Complete software, using loops, it runs instructions in loops to promote security throughout the network of nodes running. These loops are difficult for hackers to recreate and or pass off a spam risk in the consensus reaching process.