Skip to content

Madog000/smart-contract-languages

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 

Repository files navigation

Overview

This is a curated collection of resources on specialized programming languages executed by decentralized peer-to-peer networks, also known as blockchains.

Let us define a smart contract, or simply contract, as a piece of code created by a blockchain user and executed by a blockchain node. A smart contract language (SCL) is a programming language that is either used to write a smart contract directly, or is compiled to it.

Programming languages differ on multiple dimensions, such as paradigm and type system. Due to a very unusual execution environment, SCLs have a different set of trade-offs compared to earlier languages. This spawned multiple attempts at creating secure and expressive SCLs.

Pre-Bitcoin

Bitcoin

  • Bitcoin Script - a stack-based non Turing complete Forth-like language used to write script that determine whether a UTXO can be spent.
  • Ivy - a non Turing complete higher-level language that compiles to Bitcoin Script (announcement)
  • Simplicity - a typed functional programming language utilizing combinators blog post, another one
  • Rootstock - do they use their own language?

Ethereum

DSLs

Other blockchains

  • Michelson - a stack based and strongly typed domain-specific language (Tezos)
  • Liquidity - a high-level typed smart-contract language that strictly complies to Michelson security restrictions (Tezos)
  • Plutus - a pure functional language with user-defined data types and polymorphism (Cardano)
  • Rholang - a reflective higher-order process calculus language (RChain)
  • Obsidian - a state-oriented language with linear types
  • DAML
  • Qtum smart contract language (QSCL) - no details, also mentioned in an article

Other links

About

A curated collection of resources on smart contract programming languages

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors