Il MIT pensa a un nuovo linguaggio di programmazione per il quantum computing

A differenza dei computer tradizionali che utilizzano bit, i computer quantistici utilizzano qubit per codificare le informazioni come zeri o uno, o entrambi allo stesso tempo. Per sfruttarli al massimo sarà necessario un nuovo linguaggio di programmazione: ci sta pensando il MIT.

Avatar di Alessandro Crea

a cura di Alessandro Crea

A differenza dei computer tradizionali che utilizzano bit, i computer quantistici utilizzano qubit per codificare le informazioni come zeri o uno, o entrambi allo stesso tempo. Queste macchine delle dimensioni di un frigorifero possono elaborare un sacco di informazioni, ma sono tutt'altro che impeccabili. Proprio come i nostri normali computer, abbiamo bisogno di avere i giusti linguaggi di programmazione per fare calcoli corretti su un computer quantistico.

La programmazione di computer quantistici richiede la consapevolezza di qualcosa chiamato "entanglement", un moltiplicatore computazionale per qubit, che si traduce in molta potenza. Quando due qubit sono impigliati, le azioni su un qubit possono cambiare il valore dell'altro, anche quando sono fisicamente separati, dando origine alla caratterizzazione di Einstein di "azione spettrale a distanza". Ma quella potenza è in parti uguali una fonte di debolezza. Durante la programmazione, scartare un qubit senza essere consapevoli del suo entanglement con un altro qubit può distruggere i dati memorizzati nell'altro, mettendo a repentaglio la correttezza del programma.

Gli scienziati del MITComputer Science and Artificial Intelligence (CSAIL) miravano a fare un po' di chiarezza creando il proprio linguaggio di programmazione per l'informatica quantistica chiamato Twist. Twist può descrivere e verificare quali pezzi di dati sono impigliati in un programma quantistico, attraverso un linguaggio che un programmatore classico può capire. Il linguaggio utilizza un concetto chiamato purezza, che impone l'assenza di entanglement e si traduce in programmi più intuitivi, con idealmente meno bug. Ad esempio, un programmatore può usare Twist per dire che i dati temporanei generati come spazzatura da un programma non sono impigliati con la risposta del programma, rendendolo sicuro da buttare via.

Nonostante possano sembrare un po' appariscenti e futuristici, i computer quantistici hanno il potenziale per scoperte computazionali in compiti classicamente irrisolvibili, come i protocolli crittografici e di comunicazione, la ricerca, la fisica computazionale e la chimica. Una delle sfide chiave nelle scienze computazionali è affrontare la complessità del problema e la quantità di calcolo necessaria. Mentre un computer digitale classico avrebbe bisogno di un numero esponenziale molto grande di bit per essere in grado di elaborare una tale simulazione, un computer quantistico potrebbe farlo, potenzialmente, usando un numero molto piccolo di qubit, se ci sono i programmi giusti.

"Il nostro linguaggio Twist consente a uno sviluppatore di scrivere programmi quantistici più sicuri affermando esplicitamente quando un qubit non deve essere impigliato con un altro", ha affermato Charles Yuan, uno studente di dottorato del MIT in ingegneria elettrica e informatica e autore principale di un nuovo articolo su Twist. "Poiché la comprensione dei programmi quantistici richiede la comprensione dell'entanglement, speriamo che Twist apra la strada a linguaggi che rendano le sfide del calcolo quantistico più accessibili ai programmatori".

Yuan ha scritto l'articolo insieme a Chris McNally, uno studente di dottorato in ingegneria elettrica e informatica affiliato al MIT Research Laboratory of Electronics, così come al MIT Assistant Professor Michael Carbin. Hanno presentato la ricerca alla conferenza Symposium on Principles of Programming della scorsa settimana a Philadelphia.

La comprensione del significato di un programma quantistico richiede la comprensione dell'entanglement presente nei suoi dati. Ma rilevare l'entanglement non è semplice. Non puoi vederlo, quindi il meglio che puoi fare è provare a ragionare attentamente su quali qubit sono impigliati tra loro. È qui che il design di Twist aiuta a comprendere alcuni di quei pezzi intrecciati.

Gli scienziati hanno progettato Twist per essere abbastanza espressivo da scrivere programmi per noti algoritmi quantistici e identificare bug nelle loro implementazioni. Per valutare il design di Twist, hanno modificato i programmi per introdurre una sorta di bug che sarebbe stato relativamente difficile da rilevare per un programmatore umano, e hanno così dimostrato che Twist poteva identificare automaticamente i bug e rifiutare i programmi.

Hanno anche misurato quanto bene i programmi hanno funzionato nella pratica in termini di tempo di esecuzione, che aveva un sovraccarico inferiore al 4% rispetto alle tecniche di programmazione quantistica esistenti.

Riguardo al suo potenziale nella crittografia, Yuan afferma che non è ancora molto chiaro fino a che punto i computer quantistici saranno effettivamente in grado di raggiungere le loro promesse prestazionali nella pratica. "C'è molta ricerca in corso nella crittografia post-quantistica, che esiste perché anche il calcolo quantistico non è onnipotente. Finora, c'è un insieme molto specifico di applicazioni in cui le persone hanno sviluppato algoritmi e tecniche in cui un computer quantistico può superare i computer classici".

Un importante passo successivo è l'utilizzo di Twist per creare linguaggi di programmazione quantistica di livello superiore. La maggior parte dei linguaggi di programmazione quantistica oggi assomiglia ancora al linguaggio assembly, mettendo insieme operazioni di basso livello.

"I computer quantistici sono soggetti a errori e difficili da programmare. Introducendo e ragionando sulla "purezza" del codice del programma, Twist fa un grande passo avanti verso la semplificazione della programmazione quantistica garantendo che i bit quantistici in un pezzo di codice puro non possano essere alterati da bit non in quel codice ", ha affermato Fred Chong, Seymour Goodman Professor of Computer Science presso l'Università di Chicago e capo scienziato presso Super.tech.