Tools utilizzati nel progetto
Componenti del gruppo:
- Francesco Cosimo Mazzitelli
- Jessica Cinelli
- Francesco Saccone
Per poter eseguire l'applicazione è necessario:
- Scaricare e installare Java, Maven, qualsiasi IDE che supporti i plugin di ANTLR
Il seguente progetto prevede la costruzione di un'applicazione in grado di estrarre delle metriche di analisi da un qualsiasi programma realizzato con linguaggio di programmazione Solidity. Quest'ultimo, largamente utilizzato sulla piattaforma Ethereum, consente di realizzare degli automatismi che portano alla definizione di "Smart contracts". Gli Smart Contracts sono dei "contratti" informatici che seguono la logica di programmazione if-then-else, utilizzati nelle blockchain.
La prima operazione svolta è stata la generazione della grammatica associata al linguaggio di programmazione Solidity. Durante questa fase iniziale è stata largamente utilizzata la documentazione di Solidity, consultabile al seguente link.
Tramite il Tool ANTLRv4.7.1.jar, presente nella directory di progetto, sono state generate le classi necessarie a partire dalla grammatica conservata nel file Solidity.g4. Per una più approfondita analisi delle classi autogenerate e per lo sviluppo dell'applicazione è stata utilizzata la documentazione di ANTLR trovata sul sito ufficiale della Java documentation, con riferimento al package org.antlr.v4.runtime.
I visitors sono le componenti software utilizzate per l'estrazione delle metriche di qualità. Essi effettuano visite all'AST e tramite la esplorazione estraggono le metriche che vengono poi salvate su un file CSV chiamato metrics.csv reperibile nella cartella OUTPUT