La computazione reversibile è un modello innovativo di computazione che permette di invertire i passi del processo di calcolo. In particolare, è possibile da qualsiasi stato computazionale tornare indietro all’origine del calcolo, recuperando l’informazione iniziale. Lo studio di questo modello origina da questioni di termodinamica della computazione e di preservazione dell’entropia in un contesto classico. Esistono linguaggi di programmazione che esprimono esattamente il nucleo reversibile della computazione classica come ad esempio Janus, tuttavia è utile voler usufruire della reversibilità in contesti non totalmente invertibili. Estendendo la grammatica di un linguaggio è possibile agevolare la scrittura di funzioni reversibili. Questi tipi di supporto possono avere dei riscontri in molti problemi comuni come la Lossless compression, Crittografia, Backtracking e Computazione quantistica. In questa tesi, viene proposta un’estensione chiamata ORTRO per la programmazione di costrutti reversibili in Python. Essi saranno implementabili all’interno di una funzione definita come reversibile. Utilizzando un tool chiamato ANTLR4 è possibile, data una grammatica, generare un lexer, un parser ed un visitor in un linguaggio oggetto (Java), i quali saranno utilizzati per l’implementazione di un traduttore. Esso è in grado di tradurre del codice scritto in Ortro-Python (Python esteso) in Python classico, generando per ogni funzione reversibile la sua inversa.
ORTRO: aggiunta di supporto alla programmazione reversibile in Python
GERVASI, SAMUELE
2020/2021
Abstract
La computazione reversibile è un modello innovativo di computazione che permette di invertire i passi del processo di calcolo. In particolare, è possibile da qualsiasi stato computazionale tornare indietro all’origine del calcolo, recuperando l’informazione iniziale. Lo studio di questo modello origina da questioni di termodinamica della computazione e di preservazione dell’entropia in un contesto classico. Esistono linguaggi di programmazione che esprimono esattamente il nucleo reversibile della computazione classica come ad esempio Janus, tuttavia è utile voler usufruire della reversibilità in contesti non totalmente invertibili. Estendendo la grammatica di un linguaggio è possibile agevolare la scrittura di funzioni reversibili. Questi tipi di supporto possono avere dei riscontri in molti problemi comuni come la Lossless compression, Crittografia, Backtracking e Computazione quantistica. In questa tesi, viene proposta un’estensione chiamata ORTRO per la programmazione di costrutti reversibili in Python. Essi saranno implementabili all’interno di una funzione definita come reversibile. Utilizzando un tool chiamato ANTLR4 è possibile, data una grammatica, generare un lexer, un parser ed un visitor in un linguaggio oggetto (Java), i quali saranno utilizzati per l’implementazione di un traduttore. Esso è in grado di tradurre del codice scritto in Ortro-Python (Python esteso) in Python classico, generando per ogni funzione reversibile la sua inversa.File | Dimensione | Formato | |
---|---|---|---|
886565_tesigervasisamuele.pdf
non disponibili
Tipologia:
Altro materiale allegato
Dimensione
952.12 kB
Formato
Adobe PDF
|
952.12 kB | Adobe PDF |
I documenti in UNITESI sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.
https://hdl.handle.net/20.500.14240/80870