4 resultados para Calculus
em AMS Tesi di Laurea - Alm@DL - Università di Bologna
Resumo:
In questa tesi si descrive il lambda calcolo finito, un'istanza del lambda calcolo con tipi finiti. Si studia la metateoria e la complessità della riduzione.
Resumo:
Magic Carpet, nato come un middleware orientato a una dimostrazione sullo spatial computing, che inizialmente coinvolgeva solo smart devices ed un tappeto di tag NFC, è il punto di partenza per uno studio sulle tecnologie abilitanti in tale campo. Il prodotto finale è una toolchain per lo sviluppo e la distribuzione, su dispositivi connessi, di applicazioni di spatial computing. Essa comprende un interprete per un DSL basato su un core calculus formalizzato, Field Calculus, e un middleware che supporta l'astrazione curando, a basso livello, le comunicazioni con il vicinato e le percezioni ambientali.
Resumo:
La programmazione aggregata è un paradigma che supporta la programmazione di sistemi di dispositivi, adattativi ed eventualmente a larga scala, nel loro insieme -- come aggregati. L'approccio prevalente in questo contesto è basato sul field calculus, un calcolo formale che consente di definire programmi aggregati attraverso la composizione funzionale di campi computazionali, creando i presupposti per la specifica di pattern di auto-organizzazione robusti. La programmazione aggregata è attualmente supportata, in modo più o meno parziale e principalmente per la simulazione, da DSL dedicati (cf., Protelis), ma non esistono framework per linguaggi mainstream finalizzati allo sviluppo di applicazioni. Eppure, un simile supporto sarebbe auspicabile per ridurre tempi e sforzi d'adozione e per semplificare l'accesso al paradigma nella costruzione di sistemi reali, nonché per favorire la ricerca stessa nel campo. Il presente lavoro consiste nello sviluppo, a partire da un prototipo della semantica operazionale del field calculus, di un framework per la programmazione aggregata in Scala. La scelta di Scala come linguaggio host nasce da motivi tecnici e pratici. Scala è un linguaggio moderno, interoperabile con Java, che ben integra i paradigmi ad oggetti e funzionale, ha un sistema di tipi espressivo, e fornisce funzionalità avanzate per lo sviluppo di librerie e DSL. Inoltre, la possibilità di appoggiarsi, su Scala, ad un framework ad attori solido come Akka, costituisce un altro fattore trainante, data la necessità di colmare l'abstraction gap inerente allo sviluppo di un middleware distribuito. Nell'elaborato di tesi si presenta un framework che raggiunge il triplice obiettivo: la costruzione di una libreria Scala che realizza la semantica del field calculus in modo corretto e completo, la realizzazione di una piattaforma distribuita Akka-based su cui sviluppare applicazioni, e l'esposizione di un'API generale e flessibile in grado di supportare diversi scenari.