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.
ITA
IMPORT DA TESIONLINE
File in questo prodotto:
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.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/20.500.14240/80870