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

被引:0
|
作者
Olivieri, Luca [1 ]
Arceri, Vincenzo [2 ]
Chachar, Badaruddin [1 ]
Negrini, Luca [1 ]
Tagliaferro, Fabio [3 ]
Spoto, Fausto [4 ]
Ferrara, Pietro [1 ]
Cortesi, Agostino [1 ]
机构
[1] Ca Foscari Univ Venice, Dept Environm Sci Informat & Stat, I-30123 Venice, Italy
[2] Univ Parma, Dept Math Phys & Comp Sci, I-43121 Parma, Italy
[3] Equixly Srl, I-37135 Florence, Italy
[4] Univ Verona, Dept Comp Sci, I-37129 Verona, Italy
来源
IEEE ACCESS | 2024年 / 12卷
关键词
Blockchains; Smart contracts; Decentralized applications; !text type='Java']Java[!/text; Indexes; C plus plus languages; !text type='Python']Python[!/text; Internet; Codes; C# languages; General-purpose programming languages; smart contracts; decentralized applications; blockchain; distributed ledgers;
D O I
10.1109/ACCESS.2024.3495535
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
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.
引用
收藏
页码:166855 / 166869
页数:15
相关论文
共 50 条
  • [1] GENERAL-PURPOSE WORK FLOW LANGUAGES
    FORST, A
    KUHN, E
    BUKHRES, O
    DISTRIBUTED AND PARALLEL DATABASES, 1995, 3 (02) : 187 - 218
  • [2] GENERAL-PURPOSE LANGUAGES SIMULATE SIMPLE CIRCUITS
    KALISZ, J
    EDN, 1990, 35 (19) : 205 - &
  • [3] A Scheduling Framework for General-purpose Parallel Languages
    Fluet, Matthew
    Rainey, Mike
    Reppy, John
    ICFP'08: PROCEEDINGS OF THE 2008 SIGPLAN INTERNATIONAL CONFERENCE ON FUNCTIONAL PROGRAMMING, 2008, : 241 - 252
  • [4] A scheduling framework for general-purpose parallel languages
    Fluet, Matthew
    Rainey, Mike
    Reppy, John
    ACM SIGPLAN NOTICES, 2008, 43 (09) : 241 - 252
  • [5] Comparing General-Purpose and Domain-Specific Languages: An Empirical Study
    Kosar, Tomaz
    Oliveira, Nuno
    Mernik, Marjan
    Varanda Pereira, Maria Joao
    Crepinsek, Matej
    da Cruz, Daniela
    Henriques, Pedro Rangel
    COMPUTER SCIENCE AND INFORMATION SYSTEMS, 2010, 7 (02) : 247 - 264
  • [6] Using general-purpose programming languages for FPGA design
    Hutchings, BL
    Nelson, BE
    37TH DESIGN AUTOMATION CONFERENCE, PROCEEDINGS 2000, 2000, : 561 - 566
  • [7] Symbiotic General-Purpose and Domain-Specific Languages
    Atkinson, Colin
    Gerbig, Ralph
    Kennel, Bastian
    2012 34TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE), 2012, : 1269 - 1272
  • [8] DEVELOPMENT OF GENERAL-PURPOSE BIOFEEDBACK SYSTEM
    OHSUGA, M
    ERGONOMICS, 1982, 25 (06) : 498 - 498
  • [9] On the Blockchain-based General-Purpose Public Key Infrastructure
    Osmov, Victor
    Kurbanniyazov, Atadjan
    Hussain, Rasheed
    Oracevic, Alma
    Kazmi, S. M. Ahsan
    Hussain, Fatima
    2019 IEEE/ACS 16TH INTERNATIONAL CONFERENCE ON COMPUTER SYSTEMS AND APPLICATIONS (AICCSA 2019), 2019,
  • [10] ISI - AN ENVIRONMENT FOR THE ENGINEERING USE OF GENERAL-PURPOSE SIMULATION LANGUAGES
    NOLAN, PJ
    LANE, GM
    FEGAN, JM
    SIMULATION, 1991, 56 (01) : 41 - 47