Sani, Giovanni
(2021)
Formalizzazione delle proprietà di macchine per la call-by-value in forma normale.
[Laurea], Università di Bologna, Corso di Studio in
Informatica [L-DM270], Documento ad accesso riservato.
Documenti full-text disponibili:
|
Documento PDF (Thesis)
Full-text accessibile solo agli utenti istituzionali dell'Ateneo
Disponibile con Licenza: Salvo eventuali più ampie autorizzazioni dell'autore, la tesi può essere liberamente consultata e può essere effettuato il salvataggio e la stampa di una copia per fini strettamente personali di studio, di ricerca e di insegnamento, con espresso divieto di qualunque utilizzo direttamente o indirettamente commerciale. Ogni altro diritto sul materiale è riservato
Download (232kB)
| Contatta l'autore
|
Abstract
La call-by-value è una strategia di valutazione usata in molti ambiti, uno di questi sono le macchine astratte per il Lambda calcolo, dove si è dimostrata efficace nel trattare il caso chiuso adottando weak evaluation. Si riscontra però che risulta problematica se estesa al caso aperto, in particolare nel caso di adozione di strong evaluation. Per ovviare a questo problema esistono in letteratura vari approcci, uno di questi è l’aggiunta di costrutti per lo sharing. Nell’articolo su cui ho lavorato si applica una trasformazione sui termini del λ-calcolo costruendo una coda di sostituzioni esplicite e si studiano le differenze introdotte da questo design rispetto ad altri approcci; si valutano inoltre la correttezza e la complessità relative a questo approccio. Il lavoro svolto consiste nella seconda parte di un progetto di formalizzazione dell articolo ’Crumbling Abstract Machines’ di Accattoli et al. utilizzando il software Matita. Si riportano in Matita le appendici dell’ar- ticolo, nello specifico la sezione 3 riguardante l’implementazione delle Transizioni della macchina GLAM nel caso chiuso, infine si dimostra parzialmente la proprietà di unloading per questa implementazione.
Abstract
La call-by-value è una strategia di valutazione usata in molti ambiti, uno di questi sono le macchine astratte per il Lambda calcolo, dove si è dimostrata efficace nel trattare il caso chiuso adottando weak evaluation. Si riscontra però che risulta problematica se estesa al caso aperto, in particolare nel caso di adozione di strong evaluation. Per ovviare a questo problema esistono in letteratura vari approcci, uno di questi è l’aggiunta di costrutti per lo sharing. Nell’articolo su cui ho lavorato si applica una trasformazione sui termini del λ-calcolo costruendo una coda di sostituzioni esplicite e si studiano le differenze introdotte da questo design rispetto ad altri approcci; si valutano inoltre la correttezza e la complessità relative a questo approccio. Il lavoro svolto consiste nella seconda parte di un progetto di formalizzazione dell articolo ’Crumbling Abstract Machines’ di Accattoli et al. utilizzando il software Matita. Si riportano in Matita le appendici dell’ar- ticolo, nello specifico la sezione 3 riguardante l’implementazione delle Transizioni della macchina GLAM nel caso chiuso, infine si dimostra parzialmente la proprietà di unloading per questa implementazione.
Tipologia del documento
Tesi di laurea
(Laurea)
Autore della tesi
Sani, Giovanni
Relatore della tesi
Scuola
Corso di studio
Ordinamento Cds
DM270
Parole chiave
lambda calcolo,call-by-value,Matita,complessità,macchine astratte
Data di discussione della Tesi
15 Dicembre 2021
URI
Altri metadati
Tipologia del documento
Tesi di laurea
(NON SPECIFICATO)
Autore della tesi
Sani, Giovanni
Relatore della tesi
Scuola
Corso di studio
Ordinamento Cds
DM270
Parole chiave
lambda calcolo,call-by-value,Matita,complessità,macchine astratte
Data di discussione della Tesi
15 Dicembre 2021
URI
Statistica sui download
Gestione del documento: