Smart contracts are undoubtedly one of the most successful and popular applications of the blockchain industry. They consist of computer programs that are stored in blockchain, typically immutable, allowing the creation of decentralized applications (DApps). Their source code describes how the blockchain’s global state should evolve as a consequence of input received from transaction requests. There are two categories of programming languages for writing smart contracts: domain-specific languages (DSLs) and general-purpose languages (GPLs). The research community has spent a great effort for proposing, studying, and verifying DSLs, while the same is not true for GPLs applied to blockchain, although the most popular blockchains adopt them at different levels of the software development. This paper investigates the use of the most popular GPLs in smart contracts and DApps development. It first overviews blockchains that use GPLs for writing smart contracts. Then, it provides a taxonomy of how GPLs are used to develop smart contracts, highlighting limitations and challenges for each type of GPL. The goal of this study is to provide blockchain practitioners with a better comprehension of GPLs, while shedding light on this class of programming languages that are widespread in blockchain software.

General-Purpose Languages for Blockchain Smart Contracts Development: A Comprehensive Study

Olivieri, Luca;Chachar, Badaruddin;Negrini, Luca;Ferrara, Pietro;Cortesi, Agostino
2024-01-01

Abstract

Smart contracts are undoubtedly one of the most successful and popular applications of the blockchain industry. They consist of computer programs that are stored in blockchain, typically immutable, allowing the creation of decentralized applications (DApps). Their source code describes how the blockchain’s global state should evolve as a consequence of input received from transaction requests. There are two categories of programming languages for writing smart contracts: domain-specific languages (DSLs) and general-purpose languages (GPLs). The research community has spent a great effort for proposing, studying, and verifying DSLs, while the same is not true for GPLs applied to blockchain, although the most popular blockchains adopt them at different levels of the software development. This paper investigates the use of the most popular GPLs in smart contracts and DApps development. It first overviews blockchains that use GPLs for writing smart contracts. Then, it provides a taxonomy of how GPLs are used to develop smart contracts, highlighting limitations and challenges for each type of GPL. The goal of this study is to provide blockchain practitioners with a better comprehension of GPLs, while shedding light on this class of programming languages that are widespread in blockchain software.
2024
12
File in questo prodotto:
Non ci sono file associati a questo prodotto.

I documenti in ARCA sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10278/5083652
Citazioni
  • ???jsp.display-item.citation.pmc??? ND
  • Scopus ND
  • ???jsp.display-item.citation.isi??? ND
social impact