Compilatore per linguaggio di programmazione funzionale sperimentale

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:
[img] Documento PDF (Thesis)
Disponibile con Licenza: Creative Commons: Attribuzione - Non commerciale - Condividi allo stesso modo 4.0 (CC BY-NC-SA 4.0)

Download (439kB)

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
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

Statistica sui download

Gestione del documento: Visualizza il documento

^