Programming languages
Code for smart contracts in Ethereum is written in high-level languages such as Serpent, Low-level Lisp-like Language (LLL), Solidity, or Vyper, and is converted into the bytecode that the EVM understands for it to be executed.
Solidity is one of the high-level languages that has been developed for Ethereum. It uses JavaScript-like syntax to write code for smart contracts. Once the code is written, it is compiled into bytecode that's understandable by the EVM using the Solidity compiler called solc.
Official Solidity documentation is available at http://solidity.readthedocs.io/en/latest/.
LLL is another language that is used to write smart contract code.
Serpent is a Python-like, high-level language that can be used to write smart contracts for Ethereum.
Vyper is a newer language that has been developed from scratch to achieve a secure, simple, and auditable language.
More information regarding Vyper is available...