Il primo linguaggio di programmazione intuitivo per computer quantistici
Di recente sono stati compiuti numerosi progressi tecnici sulla strada dei potenti computer quantistici. Ora gli informatici dell'ETH di Zurigo hanno compiuto un importante passo avanti nel settore dei PF: Il loro linguaggio di programmazione quantistica è il primo ad essere elegante, semplice e sicuro come i linguaggi classici per computer.
La programmazione dei computer quantistici sta diventando più semplice: gli scienziati informatici dell'ETH di Zurigo hanno progettato il primo linguaggio di programmazione che può essere utilizzato per programmare i computer quantistici con la stessa facilità, affidabilità e assenza di errori dei computer classici. "La programmazione dei computer quantistici è ancora una sfida per le ricerche di oggi", afferma l'ETH Martin Vechev, professore di informatica del Secure, Reliable and Intelligent Systems Lab (SRI), "quindi sono ancora più felice che ora possiamo continuare la tradizione dell'ETH di Zurigo nello sviluppo di computer e linguaggi di programmazione quantistici".
"Il nostro linguaggio di programmazione quantistica Silq consente ai programmatori di sfruttare il potenziale dei computer quantistici meglio che con i linguaggi precedenti, poiché i suoi codici sono più brevi, più veloci e più intuitivi e facili da capire per i programmatori", continua Vechev. Vechev presenterà Silq alla conferenza sui linguaggi di programmazione PLDI 2020 questa settimana. pagina esternaPresentarsi al mondo professionale. Per consentire la discussione, l'utilizzo e l'ulteriore sviluppo, il suo team e Silq hanno sviluppato anche unSu un sito web separato pubblicato.
Negli ultimi dieci anni i computer quantistici hanno attirato una crescente attenzione. In fondo, questi computer, che funzionano secondo le regole della fisica quantistica, hanno un enorme potenziale. La maggior parte dei ricercatori è ora convinta che un giorno saranno in grado di risolvere determinati problemi più velocemente dei computer convenzionali, poiché per i loro calcoli utilizzano stati quantistici entangled, in cui diverse informazioni vengono sovrapposte in un determinato momento. Di conseguenza, in futuro i computer quantistici dovrebbero essere in grado di risolvere in modo efficiente problemi che i computer classici non sono in grado di calcolare in un tempo ragionevole.
Questa superiorità quantistica non è ancora stata dimostrata in modo definitivo. Tuttavia, di recente sono stati compiuti importanti progressi tecnici: Alla fine dell'estate 2019, ad esempio, un computer quantistico è stato in grado di risolvere per la prima volta un compito - anche se molto specifico - più velocemente dei più veloci computer classici.
Per alcuni "algoritmi quantistici", cioè strategie di calcolo, si sa anche che sono più veloci degli algoritmi classici che non sfruttano il potenziale dei computer quantistici. Tuttavia, questi algoritmi non possono ancora essere calcolati sull'hardware quantistico esistente, poiché i computer quantistici sono attualmente ancora troppo soggetti a errori.
Come pensano i programmatori
Per realizzare veramente il potenziale dell'informatica quantistica non basta la tecnologia più avanzata, ma occorre anche un linguaggio di programmazione quantistico per descrivere gli algoritmi quantistici. In principio, un algoritmo è una "ricetta" per risolvere un problema e un linguaggio di programmazione descrive l'algoritmo in modo tale che un computer possa eseguire i calcoli richiesti.
Oggi i linguaggi di programmazione quantistica sono fortemente basati sull'hardware, cioè descrivono con precisione il comportamento dei circuiti sottostanti. Per i programmatori, questi "linguaggi di descrizione dell'hardware" sono macchinosi e soggetti a errori, poiché le singole istruzioni del programma devono essere formulate in modo molto dettagliato e molti dettagli dell'implementazione degli algoritmi quantistici devono essere espressi esplicitamente.
? qui che entrano in gioco Martin Vechev e il suo gruppo con il linguaggio di programmazione Silq. "Silq è il primo linguaggio di programmazione quantistica che non si basa principalmente sulla costruzione e sulla funzionalità dell'hardware, ma sulla mentalità dei programmatori che vogliono risolvere un problema e non hanno bisogno di capire ogni dettaglio dell'architettura e dell'implementazione del computer", dice Benjamin Bichsel, dottorando del gruppo di Vechev che sta supervisionando lo sviluppo di Silq.
Gli informatici definiscono i linguaggi informatici che astraggono dai dettagli tecnici del rispettivo tipo 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, cioè possono esprimere compiti e algoritmi complessi con meno testo (codice). Questo li rende più facili da capire e da usare per i programmatori. Inoltre, possono essere utilizzati su diverse architetture di computer.
Senza errori grazie alla raccolta automatica dei rifiuti
L'innovazione e la semplificazione più importante che Silq introduce per i linguaggi di programmazione quantistica riguarda una fonte di errore che in precedenza rendeva difficile la programmazione quantistica: ogni computer calcola un compito in diversi passaggi intermedi. Questo produce risultati intermedi, i cosiddetti valori temporanei. Per ridurre il carico sulla memoria di lavoro, questi valori vengono automaticamente rimossi nei computer convenzionali.
Gli informatici chiamano questa operazione "garbage collection" perché i valori intermedi superflui vengono eliminati. Nei computer quantistici, questo smaltimento non è così semplice a causa dell'entanglement quantistico: i valori di calcolo precedenti possono interagire con quelli attuali e interferire con il calcolo corretto. Di conseguenza, la pulizia di questi valori temporanei nei computer quantistici richiede una tecnica avanzata nota come "uncomputation".
"Silq è il primo linguaggio di programmazione quantistico che riconosce ed elimina automaticamente i valori non più necessari", spiega Bichsel. Per ottenere questo risultato, gli informatici hanno utilizzato la loro esperienza nei linguaggi di programmazione classici. Il loro smaltimento automatico, o meglio il loro metodo di non calcolo, utilizza solo comandi di programmazione privi di particolari operazioni quantistiche - è "qfree", come dicono Vechev e Bichsel.
"Silq è un importante passo avanti sulla strada dell'ottimizzazione della programmazione dei computer quantistici, ma non è il passo finale dello sviluppo", afferma Vechev. Ci sono ancora molte domande in apertura". Rendendo "Silq" più facile da capire, Vechev e Bichsel sperano di dare impulso all'ulteriore sviluppo dei linguaggi di programmazione quantistica, nonché all'insegnamento e allo sviluppo di nuovi algoritmi quantistici.
"Il nostro team di quattro persone ha raggiunto la svolta dopo due anni di lavoro grazie alla combinazione di diverse competenze nella progettazione del linguaggio, nella fisica quantistica e nell'implementazione. Se ora altri team di ricerca e sviluppo adottassero le nostre innovazioni, sarebbe un grande successo", conclude Bichsel.
Letteratura di riferimento
Bichsel B, Baader M, Gehr T, Vechev M. Silq: un linguaggio quantistico di alto livello con un calcolo sicuro e una semantica intuitiva. PLDI 2020: Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation, giugno 2020, 286-300. doi: pagina esterna10.1145/3385412.3386007
Articoli correlati
- chevron_right I computer quantistici e il futuro della computabilità (ETH News 29.08.2019)
- chevron_right Risoluzione dei problemi nel mondo quantistico (ETH News 18.09.2018)
- chevron_right Una visione diventa realtà (ETH Globe Magazine 2/2018)
- chevron_right Chiarire processi chimici complessi con i computer quantistici (ETH News 31.07.2017)