Eric Hop ci aggiorna sugli sviluppi di Qubic, il prossimo protocollo della IOTA Foundation che attiverà gli oracoli, smart contracts e distributed computing.

Settembre è stato impegnato per i test del linguaggio di programmazione di Qubic chiamato Abra e di creare la libreria di supporto iniziale, che è scritta ovviamente in Abra. Durante la creazione della libreria di supporto, è nata l’esigenza di poter verificare tutt le possibili idee. Ciò ha provocato una traiettoria parallela in cui è stato creato un semplice parser di linguaggio Abra in Java. Il parser ha permesso di eseguire controlli di integrità sintattici sul codice della libreria ancor prima che avessimo un compilatore Abra in esecuzione. Per facilitare la costruzione del parser è stato creato un diagramma di sintassi EBNF per il linguaggio Abra.

Il processo di creazione di questo parser ha comportato direttamente alcune modifiche alla sintassi del linguaggio Abra che rendono più semplice analizzare il codice (to parse) e l’analisi del linguaggio. Inoltre, durante la creazione della libreria di supporto, è diventato chiaro che si è verificata una grande quantità di programmazione ripetitiva a causa della natura a dimensione fissa del tipo di dati vettoriali Abra Trit. Ciò ha comportato l’aggiunta di una funzionalità simile ad un modello che consente di creare funzioni generiche e quindi di istanziarle per le dimensioni desiderate del vettore di trit.

Nel frattempo, uno dei membri della comunità Discord, ben75, è riuscito a utilizzare il diagramma di sintassi EBNF per implementare un eccezionale evidenziatore di sintassi per Abra sulla piattaforma IntelliJ IDEA. Questo si è rivelato un grande aiuto per noi durante la creazione del codice della libreria di supporto. Questa comunità non smette mai di stupirci.

Una volta che il parser/analizzatore ha funzionato correttamente, si è deciso di dargli velocemente ed in maniera grezza (quick-and-dirty) la capacità  di eseguire il codice Abra come interprete. Questo già permette di eseguire il codice Abra e testarlo, nonstante non si è ancora in grado di compilarlo per una piattaforma specifica. Ciò ha anche permesso di eseguire il debug del codice della libreria di supporto passando attraverso il codice dell’interprete Java nel debugger mentre esegue il codice Abra.

Siamo lieti di segnalare che la maggior parte delle funzioni di libreria di base hanno funzionato esattamente come progettato e che sono necessari solo alcuni dettagli minori. La cosa più sorprendente che è accaduta durante questa fase è stata che *di gran lunga* la funzione più complessa che è stata scritta, la funzione di moltiplicazione intera (integer multiplication function), ha funzionato alla perfezione da subito! Sorprendente perché quando abbiamo scritto questo codice non c’era modo di eseguire il codice se non nelle nostre menti.

Sebbene non abbiamo ancora creato la funzione di divisione intera corrispondente, le funzioni che implementano operazioni aritmetiche, logiche e condizionali hanno già dimostrato di funzionare correttamente nella pratica quando sono state utilizzate per implementare diverse funzioni di test. La parte più impressionante della libreria di supporto è probabilmente il modo in è possibile adattare queste funzioni a qualsiasi dimensione del vettore trit necessaria, che consente di eseguire aritmetiche intere in modo nativo su una vasta gamma di intervalli interi che non ha eguali nella maggior parte degli altri linguaggi di programmazione. Ad esempio è stato definito un tipo di dati intero che abbiamo chiamato Huge, che è un vettore trit di lunghezza 81 trit e può rappresentare valori nell’intervallo di meno a più 221,713,244,121,518,884,974,124,815,309,574,946,401! È stato anche testato con un tipo di dati da 6561 trit che dovrebbe contenere una firma IOTA ed è stato scoperto che può rappresentare numeri interi che sono lunghi ben 3131 cifre. E le funzioni aritmetiche intere funzioneranno correttamente con tutte loro!

Ulteriori aggiunte al parser consentono di generare una rappresentazione ternaria del codice Abra pronto per essere incluso in un messaggio Qubic da inviare attraverso il Tangle e convertire tale codice ternario nella rappresentazione originale che può essere eseguita dall’interprete. Ciò potrebbe rivelarsi molto utile nell’accelerare il processo di implementazione di un Proof-of-concept operativa per Qubic fino a quando una versione più robusta della funzionalità end-to-end può essere completata.

Il documento sul modello computazionale di Qubic sta procedendo bene. È diventato così grande che è stato deciso di dividerlo in più parti. Le prime due parti sono attualmente in fase di revisione e la terza parte dovrebbe essere pronta nella prima settimana di ottobre. Al momento sono previste le seguenti parti:

  1. Una panoramica concettuale del modello di elaborazione di Abra
  2. Una panoramica delle entità di base in Abra
  3. Una panoramica dei costrutti di programmazione di Abra
  4. Alcuni esempi di funzioni di Abra con dettagli su come funzionano
  5. Il Qubic Dispatcher e la sua interazione con Abra

È stato molto eccitante vedere finalmente i primi programmi Abra attivi in ​​azione questo mese! Speriamo di essere in grado di condividere la documentazione e l’interprete con la community il prima possibile, in modo che possiate iniziare a giocarci e contribuire agli sforzi di Abra.

Bonus: diagramma della sintassi di Abra
Clicca sul link qui sopra per vedere un bel diagramma della sintassi della lingua Abra.

Un ringraziamoento alla IOTA Foundation. (da parte di Eric Hop)


Il testo originale in lingua inglese si trova qui: https://blog.iota.org/qubic-status-update-october-3rd-2018-1cb7db5c850d


Da oggi è possibile dare il vostro supporto su Patreon https://www.patreon.com/antonionardella

Per ulteriori informazioni in italiano o tedesco trovate i miei contatti a questa pagina.
Se avete trovato utile la mia libera traduzione, accetto volentieri delle donazioni 😉

IOTA:
QOQJDKYIZYKWASNNILZHDCTWDM9RZXZV9DUJFDRFWKRYPRMTYPEXDIVMHVRCNXRSBIJCJYMJ9EZ9USHHWKEVEOSOZB
BTC:
1BFgqtMC2nfRxPRge5Db3gkYK7kDwWRF79

Non garantisco nulla e mi libero da ogni responsabilità.


Also published on Medium.