Il CSAIL (Computer Science and Artificial Intelligence Laboratory), un team di ricercatori del MIT (Massachusetts Institute of Technology), ha realizzato Twist, nuovo linguaggio di programmazione dedicato al quantum computing. Si tratta di una soluzione appositamente concepita per semplificare l'individuazione di porzioni di dati intrecciate con lo scopo di scrivere applicazioni quantiche che contengono il minor numero possibile di errori e possano essere facilmente debuggete.
Il fenomeno dell'entanglement
Di base Twist è strutturato in modo da rilevare il fenomeno dell'entanglement (da qui il riferimento ai dati intrecciati) che si verifica quando gli stati di due porzioni di codice in un computer quantistico risultano tra loro interdipendenti. L'entanglement ha una rilevanza particolare in quanto qualsiasi azione coinvolga una parte di dati interessata da questo fenomeno potrebbe coinvolgere anche le altre.
Dato questo particolare comportamento per gli sviluppatori può essere particolarmente importante distinguere le porzioni di dati per le quali si verifica l'entanglement dalle altre, introdurre nativamente questa differenziazione al momento delle programmazione consente di implementare correttamente gli algoritmi per il quantum computing.
Le porzioni di dati prive di entanglement sono considerate pure, per questo motivo da esse non derivano i bug che potrebbero riguardare le porzioni di dati interessate dal fenomeno e non danno vita agli stessi comportamenti controintuitivi. Per tale ragione Twist è stato dotato di alcuni specifici operatori di asserzione con cui è possibile stabilire che un'espressione non è coinvolta dall'entanglement, tutte le asserzioni vengono poi analizzate a runtime per effettuare un ulteriore controllo.
Benchmark e test su Twist
Stando a quanto affermato da Charles Yuan, uno degli studenti che hanno partecipato al progetto, le verifiche a runtime non dovrebbero risultare particolarmente impattanti dal punto di vista delle prestazioni, i benchmark effettuati avrebbero rilevato infatti un overhead superiore intorno al 3.5% rispetto al carico di lavoro generato da un'esecuzione di base, con vantaggi evidenti dal punto di vista del risparmio delle risorse da dedicare ai processi computazionali.
Le sperimentazioni effettuate si sono basate anche sull'introduzione volontaria di alcuni alcuni bug che Twist sarebbe stato in grado di individuare senza particolari particolari difficoltà, una delle peculiarità di questo linguaggio risiede nel fatto che, a differenza di quanto accade con diverse altre soluzioni che si concentrano sull'hardware quantistico, esso è stato disegnato per il quantum software.
Twist si propone anche come un progetto per la standardizzazione dei linguaggi dedicati al quantum computing, fino ad ora infatti nella maggior parte dei casi gli algoritmi sono stati implementati per risolvere problemi specifici mentre l'obbiettivo dei ricercatori dovrebbe essere quello di creare un ecosistema software interoperabile.