Ambienti di esecuzione e linguaggi di programmazione


Gli smart contract sono sostanzialmente dei mini-software, dotati di un piccolo database interno, capaci di eseguire delle istruzioni scritte in un determinato linguaggio di programmazione.
In quanto programmi a tutti gli effetti, gli smart contract rispondono a eventi predeterminati, generandone di nuovi.
Ethereum e derivazioni rappresentano quindi non un mero registro su cui prendere appunti, come il predecessore Bitcoin, ma un registro su cui vengono scritti dei codici eseguibili.

Per essere eseguiti, gli smart contract necessitano di un Runtime Environment, ossia di un ambiente di esecuzione[1]. Altrimenti non funzionerebbero.
Il Runtime Environment rappresenta a sua volta un software, che possiamo considerare di livello sottostante rispetto agli smart contract; in pratica, esso fornisce dei servizi di esecuzione del programma, quali: input-output, generazione di eventi, elaborazione degli errori di calcolo, utilizzo dei servizi del sistema operativo ecc.
Il Runtime Environment non consente di programmare e sviluppare delle applicazioni, perché a ciò sono deputati i software di sviluppo: il primo ha la sola funzione di eseguire le applicazioni.
L’ambiente di esecuzione è sostanzialmente una macchina virtuale (Virtual Machine) che esegue il codice oggetto, rendendo quindi disponibile al processore il codice nativo, il quale è a sua volta direttamente eseguibile dal processore stesso.

Nell’ecosistema Ethereum, il Runtime Environment è costituito dalla EVM, acronimo di Ethereum Virtual Machine.
La EVM è quindi il motore primo, il cuore di Ethereum, in quando permette agli sviluppatori di progettare gli smart contract che girano su EVM, che per l’appunto è il loro ambiente di esecuzione e sviluppo.

Gli smart contract di Ethereum possono essere scritti –fondamentalmente- in tre linguaggi di programmazione:

  1. Solidity, il linguaggio più utilizzato in assoluto, che è un parente stretto di Java;
  2. Serpent, che somiglia molto a Python;
  3. LLL, che si avvicina notevolmente al Lisp.

Sia l’ambiente di esecuzione, che il linguaggio di programmazione utilizzato per gli smart contract di UniLedger, sono molto simili ai corrispettivi di Ethereum.


Vedi anche: NFT, possesso e proprietà; Ecosistema UniLedger.


[1] Non si confonda il Runtime Environment con il runtime, con la l’iniziale minuscola e senza la parola Environment, che rappresenta il tempo di esecuzione di un programma.

© Copyright 2023 Gruppo Uniledger - All Rights Reserved
Uniledger Srl, P.Iva 02159850664 - info@uniledger.it