Smart contract and programing language
Ethereum offers two different types of accounts. One of them is externally owned and the other a contractual account. Most importantly, EOA is under user control. Control is the most often by wallet applications. Contract accounts, on the other hand, are controlled by program code. Many wonder what contract accounts are and the program code that controls them.
With the help of a smart contract, we can describe a large number of different things. For smart contract, we can say is a set of promises in the digital form devised by Nick Szabo. The other parties must also keep their promises. From the time it was created until today, the smart contract has evolved.
Smart contracts must be written in a high-level language. One of them is Solidity. Once the smart contract is compiled, it can be set up on Ethereum. Needs to be done through a special transaction for creating a contract. Each of the contracts will be identified by an Ethereum address. Also, what is very important is that contracts are performed only if they are called by a transaction.
One contract can call another contract, which can then call for another contract. But in that case, the first one will always be called by the transaction from the EOA. Also, the contract can’t work alone, or in the background. We can program smart contracts directly in the bytecode. But EVM is quite awkward, and sometimes that code can be very difficult to read and understand. Because of this, most Ethereum developers use other languages to write code and then translate it into bytecode.
Nowadays, we can adapt any language to write a smart contract. But it can cause great confusion. For this reason, we have several languages that are used exclusively for programming smart contracts. Ethereum programming languages can be divided into two groups: declarative and imperative.
Why is it important to have special programming languages? Because every bug in a smart contract costs money. That is why it is important to write smart contracts without mistakes. What is important to know is that declarative languages play a much bigger role in smart contracts. But the most popular language is still the Imperative.
Currently supported programming languages:
- LLL
- Serpent
- Solidity
- Vyper
- Bamboo