Browse Definitions :
Definition

Solidity

Contributor(s): Corinne Bernstein Gelb

Solidity is a programming language used for developing smart contracts on Ethereum and other blockchain platforms, such as Monax and its Hyperledger Burrow blockchain. British software developer Gavin Wood proposed Solidity in 2014 and developed the high-level programming language along with other Ethereum aficionados, including Christian Reitwiessner, Alex Beregszaszi, Liana Husikyan and Yoichi Hirai.

Solidity is compiled to bytecode (or portable code) that is executable on the Ethereum Virtual Machine (EVM), the runtime environment for smart contracts in Ethereum. Although other languages, including Serpent, Viper and Mutan, can also be compiled into EVM machine-level bytecode to run on Ethereum nodes for payment, Solidity is the most widely adopted.

Solidity was created to be easily learned because it employs many concepts – such as variables, functions, classes, arithmetic operations and string manipulation – that appear in popular modern programming languages. An intentionally pared-down, loosely-typed language, Solidity draws from C, C++, C#, JavaScript, PowerShell and Python. It also adopts a syntax that similarly resembles ECMAScript (JavaScript). For example, in Java or C, a programmer would create some form of a “main” function, while Solidity uses a “contract” written in a similar manner.

Developers working with Solidity can write apps that implement self-enforcing business logic incorporated in smart contracts. A smart contract, also known as a cryptocontract, is a computer program that directly controls the transfer of digital currencies or assets between parties under specific conditions. It sets the rules and penalties related to an agreement, much like a traditional contract does, but can also enforce those obligations automatically. Smart contracts are considered a secure, easy and reliable medium that enables individuals to transact business with each other, even if they speak different languages or use different currency. Contracts also support complex member variables in hierarchical mapping and structures.

Solidity has a compiler that breaks down high-level code into simple instructions like "put data into a register," "add data from two registers," "jump back to instruction at memory point xxxxx." The programming language is statically typed (meaning variable types are declared explicitly and determined at compile time) and supports inheritance, libraries and complex user-defined types. Inheritance refers to an object or class that is based on another object or class and uses the same implementation to maintain the same behavior.

In addition, there are several integration platforms (to compile, execute and run code) that implement Solidity, including Remix, which is an easily available browser-based integrated development environment (IDE). Also supported are various type-safe functions, which means the compiler will validate types and produce an error if the wrong type is assigned to a variable.

This was last updated in October 2018

Continue Reading About Solidity

Join the conversation

1 comment

Send me notifications when other members comment.

Please create a username to comment.

What are the benefits of learning to program in Solidity?
Cancel

-ADS BY GOOGLE

File Extensions and File Formats

SearchCompliance

  • compliance audit

    A compliance audit is a comprehensive review of an organization's adherence to regulatory guidelines.

  • regulatory compliance

    Regulatory compliance is an organization's adherence to laws, regulations, guidelines and specifications relevant to its business...

  • Whistleblower Protection Act

    The Whistleblower Protection Act of 1989 is a law that protects federal government employees in the United States from ...

SearchSecurity

  • RSA algorithm (Rivest-Shamir-Adleman)

    The RSA algorithm is the basis of a cryptosystem -- a suite of cryptographic algorithms that are used for specific security ...

  • remote access

    Remote access is the ability to access a computer or a network remotely through a network connection.

  • IP Spoofing

    IP spoofing is the crafting of Internet Protocol (IP) packets with a source IP address that has been modified to impersonate ...

SearchHealthIT

SearchDisasterRecovery

  • network disaster recovery plan

    A network disaster recovery plan is a set of procedures designed to prepare an organization to respond to an interruption of ...

  • virtual disaster recovery

    Virtual disaster recovery is a type of DR that typically involves replication and allows a user to fail over to virtualized ...

  • tabletop exercise (TTX)

    A tabletop exercise (TTX) is a disaster preparedness activity that takes participants through the process of dealing with a ...

SearchStorage

  • enterprise storage

    Enterprise storage is a centralized repository for business information that provides common data management, protection and data...

  • disk array

    A disk array, also called a storage array, is a data storage system used for block-based storage, file-based storage or object ...

  • optical storage

    Optical storage is any storage type in which data is written and read with a laser. Typically, data is written to optical media, ...

Close