1.-
It translate the high level language on which the contract is written (Solidity, Viper) into the low level machine language. Also the EVM is the environment on which contracts will execute.
2.-
EVM runs programs or smart contracts that are already compiled.
3.-
Solidity is high level language that needs to be transformed into byte code by a compiler.
4.-
Bitcoin was not designed to have a complex language on top of it.
5.-
It means that it can be used to program computable functions, which means that if there is an algorithm to resolve a given problem it can be programmed with this language.