Solidity

Solidity

Description: extant is a very biological word to use here — removed

← Previous revision Revision as of 16:57, 20 April 2026
Line 38: Line 38:
Solidity is a [[statically typed programming language]] designed for developing [[smart contract]]s that run on the [[Ethereum#Virtual machine|Ethereum Virtual Machine]] (EVM) or compatible virtual machines.{{Cite web|url=https://developer.ibm.com/patterns/loyalty-points-fabric-evm/|title=Hyperledger Fabric Tutorial - Create a blockchain app for loyalty points|website=IBM Developer|language=en-US|access-date=2019-04-10}}
Solidity is a [[statically typed programming language]] designed for developing [[smart contract]]s that run on the [[Ethereum#Virtual machine|Ethereum Virtual Machine]] (EVM) or compatible virtual machines.{{Cite web|url=https://developer.ibm.com/patterns/loyalty-points-fabric-evm/|title=Hyperledger Fabric Tutorial - Create a blockchain app for loyalty points|website=IBM Developer|language=en-US|access-date=2019-04-10}}


Solidity uses [[ECMAScript]]-like [[Syntax (programming languages)|syntax]] which makes it familiar for extant [[web developer]]s;{{Cite web |title=Language Influences — Solidity 0.8.17 documentation |url=https://docs.soliditylang.org/en/v0.8.17/language-influences.html |access-date=2023-03-30 |website=docs.soliditylang.org}} however unlike ECMAScript it has [[Type system#Static type checking|static typing]] and [[variadic]] return types. Solidity is different from other EVM-targeting languages such as [[Ethereum#Programming languages|Serpent]] and [[Ethereum#Programming languages|Mutan]] in some important ways. It supports complex [[member variable]]s for [[smart contract]]s, including arbitrarily hierarchical mappings and [[record (computer science)|structs]]. Solidity [[smart contract]] support [[Inheritance (object-oriented programming)|inheritance]], including [[multiple inheritance]] with C3 linearization. Solidity introduces an [[application binary interface]] (ABI) that facilitates multiple [[type-safe]] functions within one [[smart contract]] (this was also later supported by Serpent). The Solidity proposal also includes "Natural Language Specification", a documentation system for specifying user-centric descriptions of the ramifications of [[Method (computer programming)|method]]-calls.{{Sfn|Kapetanios-2008-06-27|p=309}}{{cite web|url=https://github.com/ethereum/wiki/wiki/Ethereum-Natural-Specification-Format|title=Ethereum Natural Specification Format|author=ethereum|work=[[GitHub]]}}{{Primary source inline|date=December 2018}}
Solidity uses [[ECMAScript]]-like [[Syntax (programming languages)|syntax]] which makes it familiar for [[web developer]]s;{{Cite web |title=Language Influences — Solidity 0.8.17 documentation |url=https://docs.soliditylang.org/en/v0.8.17/language-influences.html |access-date=2023-03-30 |website=docs.soliditylang.org}} however unlike ECMAScript it has [[Type system#Static type checking|static typing]] and [[variadic]] return types. Solidity is different from other EVM-targeting languages such as [[Ethereum#Programming languages|Serpent]] and [[Ethereum#Programming languages|Mutan]] in some important ways. It supports complex [[member variable]]s for [[smart contract]]s, including arbitrarily hierarchical mappings and [[record (computer science)|structs]]. Solidity [[smart contract]] support [[Inheritance (object-oriented programming)|inheritance]], including [[multiple inheritance]] with C3 linearization. Solidity introduces an [[application binary interface]] (ABI) that facilitates multiple [[type-safe]] functions within one [[smart contract]] (this was also later supported by Serpent). The Solidity proposal also includes "Natural Language Specification", a documentation system for specifying user-centric descriptions of the ramifications of [[Method (computer programming)|method]]-calls.{{Sfn|Kapetanios-2008-06-27|p=309}}{{cite web|url=https://github.com/ethereum/wiki/wiki/Ethereum-Natural-Specification-Format|title=Ethereum Natural Specification Format|author=ethereum|work=[[GitHub]]}}{{Primary source inline|date=December 2018}}


Example of a Solidity program:{{Cite web |title=Introduction to Smart Contracts — Solidity 0.8.19 documentation |url=https://docs.soliditylang.org/en/v0.8.19/introduction-to-smart-contracts.html#subcurrency-example |access-date=2023-03-30 |website=docs.soliditylang.org}}{{r|Bhargavan-2016-08-27}}
Example of a Solidity program:{{Cite web |title=Introduction to Smart Contracts — Solidity 0.8.19 documentation |url=https://docs.soliditylang.org/en/v0.8.19/introduction-to-smart-contracts.html#subcurrency-example |access-date=2023-03-30 |website=docs.soliditylang.org}}{{r|Bhargavan-2016-08-27}}