Solidity is a statically typed contract language that contains state variables, functions, and common data types. Developers are able to write decentralized applications (DApps) that implement business logic functions in a smart contract. The contract verifies and enforces the constraints at compile time, as opposed to runtime. Solidity is compiled to EVM executable byte code. Once compiled, the contracts are uploaded to the Ethereum network. The blockchain will assign an address to the smart contract. Any permissioned user on the blockchain network can call a contract function to execute the smart contract.
Here is a typical flow diagram showing the process from writing contract code to deploying and running it on the Ethereum network: