Yarel is a domain speci?fic functional programming language that implements RPP (Reversible Primitive Permutations), a class of bijections with identical input/output arities, de?fined on integers. Yarel is developed by Roversi on Github©. This work contains the following main contributions. 1. First, it improves the compiler so that Yarel parallel composition can be executed in an asynchronous and parallel way, relying on the following Java classes: Thread and Executor. 2. Second, it proposes an extension of RPP in which the arity of functions can be expressed by means of linear combinations of one or more parameters, which are positive natural numbers, possibly giving increased programming flexibility in Yarel. 3. Finally, it implements an experimental version of reversible BubbleSort on four integers and a parametric version of such algorithm.
Yarel è un linguaggio di programmazione funzionale domain-specific che implementa RPP (Reversible Primitive Permutations), una classe di biezioni con identiche arietà degli input ed output, basate sugli interi. Yarel è sviluppato da Roversi su GitHub©. Questa tesi contiene i seguenti principali contributi. 1. Dapprima si sviluppa il compilatore Yarel in modo tale che la composizione parallela venga eseguita in modalità asincrona e parallela per mezzo delle seguenti classi Java: Thread ed Executor. 2. In secondo luogo, si propone una estensione di RPP per cui l'arietà delle funzioni può essere espressa come combinazioni lineari di uno o più parametri. Questi ultimi sono numeri naturali positivi. La flessibilità di Yarel è quindi potenzialmente estesa. 3. Infine, si implementa una versione sperimentale e reversibile dell'algoritmo BubbleSort operante su quattro interi ed una sua ulteriore versione parametrica.
Parallelismo e Parametrizzazione in Yarel
OTTINA, MARCO
2019/2020
Abstract
Yarel è un linguaggio di programmazione funzionale domain-specific che implementa RPP (Reversible Primitive Permutations), una classe di biezioni con identiche arietà degli input ed output, basate sugli interi. Yarel è sviluppato da Roversi su GitHub©. Questa tesi contiene i seguenti principali contributi. 1. Dapprima si sviluppa il compilatore Yarel in modo tale che la composizione parallela venga eseguita in modalità asincrona e parallela per mezzo delle seguenti classi Java: Thread ed Executor. 2. In secondo luogo, si propone una estensione di RPP per cui l'arietà delle funzioni può essere espressa come combinazioni lineari di uno o più parametri. Questi ultimi sono numeri naturali positivi. La flessibilità di Yarel è quindi potenzialmente estesa. 3. Infine, si implementa una versione sperimentale e reversibile dell'algoritmo BubbleSort operante su quattro interi ed una sua ulteriore versione parametrica.File | Dimensione | Formato | |
---|---|---|---|
795130_marco_ottina_795130__11_06_2021.pdf
non disponibili
Tipologia:
Altro materiale allegato
Dimensione
929 kB
Formato
Adobe PDF
|
929 kB | Adobe PDF |
I documenti in UNITESI sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.
https://hdl.handle.net/20.500.14240/156405