Borghi, Luca
(2023)
Compilatore per linguaggio di programmazione funzionale sperimentale.
[Laurea], Università di Bologna, Corso di Studio in
Informatica [L-DM270]
Documenti full-text disponibili:
Abstract
Il paradigma funzionale nella programmazione non è certamente nuovo in ambito accademico: le sue origini risiedono a parecchie decine di anni fa, grazie agli studi di Alonzo Church sui formalismi del lambda-calcolo negli anni ’30. Sebbene vi siano numerosi studi a livello accademico, il successo non è stato tale nel mondo industriale. Uno dei primi linguaggi funzionali fu Lisp, sviluppato a fine anni ’50, il quale è stato, in un certo senso, pioniere di alcuni concetti e costrutti come la gestione automatica della memoria,
funzioni di ordine superiore, la ricorsione, etc.. Successivamente, negli anni ’70, citando i più famosi, nacquero Scheme (dialetto dello stesso Lisp) ed ML. Negli ’80, è la volta di Erlang e Standard ML, nei ’90 di OCaml, Haskell e Racket. Nonostante molti di questi linguaggi vengano considerati come general-purpose, non avranno inizialmente molto successo come lo hanno avuto, invece, le controparti dei linguaggi imperativi e dei linguaggi orientati agli oggetti. Tuttavia, negli ultimi anni c'è stata una "riscoperta" del paradigma funzionale in quanto quest’ultimo permette di scrivere codice in stile dichiarativo e componibile, fornendo una maggiore manutenibilità e
garantendo proprietà importanti dei programmi. L’obiettivo iniziale della tesi è la costruzione di un linguaggio, chiamato Fex, che racchiuda le caratteristiche più interessanti degli odierni linguaggi di programmazione funzionali. In particolare Fex deve avere un type-system statico che possa garantire proprietà importanti a tempo di compilazione. Inoltre, caratteristiche che romperebbero la “purità” del linguaggio devono essere gestite sempre tramite il sistema di tipi.
Abstract
Il paradigma funzionale nella programmazione non è certamente nuovo in ambito accademico: le sue origini risiedono a parecchie decine di anni fa, grazie agli studi di Alonzo Church sui formalismi del lambda-calcolo negli anni ’30. Sebbene vi siano numerosi studi a livello accademico, il successo non è stato tale nel mondo industriale. Uno dei primi linguaggi funzionali fu Lisp, sviluppato a fine anni ’50, il quale è stato, in un certo senso, pioniere di alcuni concetti e costrutti come la gestione automatica della memoria,
funzioni di ordine superiore, la ricorsione, etc.. Successivamente, negli anni ’70, citando i più famosi, nacquero Scheme (dialetto dello stesso Lisp) ed ML. Negli ’80, è la volta di Erlang e Standard ML, nei ’90 di OCaml, Haskell e Racket. Nonostante molti di questi linguaggi vengano considerati come general-purpose, non avranno inizialmente molto successo come lo hanno avuto, invece, le controparti dei linguaggi imperativi e dei linguaggi orientati agli oggetti. Tuttavia, negli ultimi anni c'è stata una "riscoperta" del paradigma funzionale in quanto quest’ultimo permette di scrivere codice in stile dichiarativo e componibile, fornendo una maggiore manutenibilità e
garantendo proprietà importanti dei programmi. L’obiettivo iniziale della tesi è la costruzione di un linguaggio, chiamato Fex, che racchiuda le caratteristiche più interessanti degli odierni linguaggi di programmazione funzionali. In particolare Fex deve avere un type-system statico che possa garantire proprietà importanti a tempo di compilazione. Inoltre, caratteristiche che romperebbero la “purità” del linguaggio devono essere gestite sempre tramite il sistema di tipi.
Tipologia del documento
Tesi di laurea
(Laurea)
Autore della tesi
Borghi, Luca
Relatore della tesi
Scuola
Corso di studio
Ordinamento Cds
DM270
Parole chiave
linguaggio funzionale,sistema di tipi,Haskell,Fex,polimorfismo parametrico,polimorfismo ad-hoc,compilatore,Core,GHC,Damas-Hindley-Milner
Data di discussione della Tesi
15 Marzo 2023
URI
Altri metadati
Tipologia del documento
Tesi di laurea
(NON SPECIFICATO)
Autore della tesi
Borghi, Luca
Relatore della tesi
Scuola
Corso di studio
Ordinamento Cds
DM270
Parole chiave
linguaggio funzionale,sistema di tipi,Haskell,Fex,polimorfismo parametrico,polimorfismo ad-hoc,compilatore,Core,GHC,Damas-Hindley-Milner
Data di discussione della Tesi
15 Marzo 2023
URI
Statistica sui download
Gestione del documento: