Di: Florian Meyer
Numerosi progressi tecnici sono stati recentemente raggiunti nella ricerca di potenti computer quantistici. Ora, gli informatici dell’ETH di Zurigo hanno fatto un importante passo avanti nel campo dei linguaggi di programmazione: il loro linguaggio quantico è il primo nel suo genere che è elegante, semplice e sicuro come i linguaggi informatici classici.
La programmazione dei computer quantistici sta diventando più semplice: gli informatici dell’ETH di Zurigo hanno progettato il primo linguaggio di programmazione che può essere utilizzato per programmare i computer quantistici in modo semplice, affidabile e sicuro come i computer classici. “La programmazione di computer quantistici è ancora una sfida per i ricercatori”, afferma Martin Vechev, professore di informatica presso l’ETH Secure, Affiable and Intelligent Systems Lab ( SRI)), “Motivo per cui sono così entusiasta che ora possiamo continuare la tradizione dell’ETH di Zurigo nello sviluppo di computer quantistici e linguaggi di programmazione”.
Aggiunge: “Il nostro linguaggio di programmazione quantistica Silq consente ai programmatori di utilizzare il potenziale dei computer quantistici meglio rispetto ai linguaggi esistenti, perché il codice è più compatto, più veloce, più intuitivo e più facile da capire per i programmatori.” Questa settimana, Vechev presenterà Silq ad altri esperti del settoreal PLDI 2020, una conferenza per i linguaggi di programmazione. Per facilitare la discussione, l’adozione e l’ulteriore sviluppo, lui e il suo team hanno anche rilasciato Silq sul proprio sito Web ( silq.ethz.ch).
Il calcolo quantistico ha visto una crescente attenzione nell’ultimo decennio, poiché questi computer, che funzionano secondo i principi della fisica quantistica, hanno un potenziale enorme. Oggi, la maggior parte dei ricercatori ritiene che un giorno questi computer saranno in grado di risolvere alcuni problemi più velocemente dei computer classici, poiché per eseguire i loro calcoli usano stati quantici intrecciati in cui vari bit di informazioni si sovrappongono in un determinato momento. Ciò significa che in futuro i computer quantistici saranno in grado di risolvere efficacemente problemi che i computer classici non possono risolvere entro un lasso di tempo ragionevole.
Questa supremazia quantistica deve ancora essere dimostrata in modo conclusivo. Tuttavia, alcuni significativi progressi tecnici sono stati recentemente raggiunti. Alla fine dell’estate 2019, un computer quantistico è riuscito a risolvere un problema, anche se molto specifico, più rapidamente del computer classico più veloce.
Per alcuni “algoritmi quantistici”, ovvero strategie computazionali, è anche noto che sono più veloci degli algoritmi classici, che non sfruttano il potenziale dei computer quantistici. Ad oggi, tuttavia, questi algoritmi non possono ancora essere calcolati su hardware quantistico esistente poiché i computer quantistici sono attualmente ancora troppo soggetti a errori.
Esprimendo l’intenzione del programmatore
L’utilizzo del potenziale del calcolo quantistico richiede non solo la tecnologia più recente, ma anche un linguaggio di programmazione quantistica per descrivere gli algoritmi quantistici. In linea di principio, un algoritmo è una “ricetta” per risolvere un problema; un linguaggio di programmazione descrive l’algoritmo in modo che un computer possa eseguire i calcoli necessari.
Oggi, i linguaggi di programmazione quantistica sono strettamente legati all’hardware specifico; in altre parole, descrivono precisamente il comportamento dei circuiti sottostanti. Per i programmatori, questi “linguaggi di descrizione dell’hardware” sono ingombranti e soggetti a errori, poiché le singole istruzioni di programmazione devono essere estremamente dettagliate e quindi descrivere esplicitamente le minuzie necessarie per implementare algoritmi quantistici.
Gli informatici si riferiscono ai linguaggi informatici che si basano sui dettagli tecnici del tipo specifico di computer come linguaggi di programmazione di alto livello. Silq è il primo linguaggio di programmazione di alto livello per computer quantistici. I linguaggi di programmazione di alto livello sono più espressivi, nel senso che possono descrivere anche compiti e algoritmi complessi con meno codice. Ciò li rende più comprensibili e più facili da usare per i programmatori. Possono anche essere utilizzati con diverse architetture di computer.
Eliminazione degli errori tramite decomputing automatico
La più grande innovazione e semplificazione che Silq apporta ai linguaggi di programmazione quantistica riguarda una fonte di errori che ha afflitto la programmazione quantistica fino ad ora. Un computer calcola un’attività in più passaggi intermedi, creando risultati intermedi o valori temporanei.
Per scaricare la memoria, i computer classici cancellano automaticamente questi valori. Gli informatici si riferiscono a questo come “raccolta dei rifiuti”, poiché i valori temporanei superflui vengono eliminati.
Nel caso dei computer quantistici, questa disposizione è più complicata a causa dell’entanglement quantistico: i valori precedentemente calcolati possono interagire con quelli attuali, interferendo con il calcolo corretto. Di conseguenza, ripulire tali valori temporanei su computer quantistici richiede una tecnica più avanzata di cosiddetta non computazione.
“Silq è il primo linguaggio di programmazione che identifica e cancella automaticamente i valori non più necessari”, spiega Bichsel. Gli scienziati informatici hanno raggiunto questo obiettivo applicando la loro conoscenza dei linguaggi di programmazione classici: il loro metodo di calcolo automatico utilizza solo comandi di programmazione privi di operazioni quantistiche speciali – sono “qfree”, come affermano Vechev e Bichsel.
“Silq è un importante passo avanti in termini di ottimizzazione della programmazione dei computer quantistici; non è la fase finale dello sviluppo “, afferma Vechev. Ci sono ancora molte domande aperte, ma poiché Silq è più facile da capire, Vechev e Bichsel sperano di stimolare sia l’ulteriore sviluppo dei linguaggi di programmazione quantistica sia la teoria e lo sviluppo di nuovi algoritmi quantistici.
“Il nostro team di quattro persone ha fatto la svolta dopo due anni di lavoro grazie alla combinazione di diverse competenze nella progettazione del linguaggio, nella fisica quantistica e nell’implementazione. Se altri team di ricerca e sviluppo abbracciano le nostre innovazioni, sarà un grande successo “, afferma Bichsel.