Contributors (chronological order)
- Luca Roversi is the promoter of this project, with the early design of Yarel grammar and of the compiler from Yarel to Java. He is co-author of “A class of Recursive Permutations which is Primitive Recursive complete” (“Preliminary version”) which Yarel is designed from.
- Claudio Grandi and Dariush Moshiri. Claudio is a former ICT Staff member. He contributed to the web infrastructure, to develop and test the early compiler from Yarel to Java, with focus on the syntactical construct called permutation. Dariush is a former undergraduate student. Besides the github and web infrastructure, he implemented the very first release of Yarel.
- Francesco Rossini. He is a former undergraduate student who implemented the isomorphism known as “Cantor pairing”, into Yarel, improving it, as compared to the original definition in “A class of Recursive Permutations which is Primitive Recursive complete” (“Preliminary version”). Francesco presented “Cantor Pairing in a reversible programming language” at ‹Programming› 2019 - Student Research Competition for which he deserved the gold medal in the category “Undergraduate”. Currently, Francesco is a master student in our dipartment.
- Riccardo Viola. He is a former undergraduate student. He experimented the introduction of booleans in Yarel. He had to face the problem to implement a type-inference that could give a type to combinators with identical input/output arity, up to permutations.
- Paolo Parker. He is a former undergraduate student. He refactored many part of the code that implement tests, the compiler, eliminating a lot of bugs, while extending Yarel with the construct “for”, making it possible to directly translate programs of the reversible programming language SRL into Yarel. Also, Paolo added the possibility to deploy Yarel as an Eclipse-plugin, by using Maven.
- Riccardo Taiello. He is a former undergraduate student. His huge work was to compile Yarel in Pendulum Instruction Set Architecture (PISA), work which forced Riccardo to correct bugs of C PendVM implementation.
- Pier Paolo Tarasco. He is a former undergraduate student. He focused on how we can exploit a reversible language when transforming a recursively defined program, written in a classical imperative programming language, into its iterative equivalent. This is currently a subject of ongoing research investigation.
- Matteo Palazzo. He his a former undergraduate student. After a further code refactoring, he implemented the first usable import mechanism in Yarel. I think that his final report “The import mechanism of the
Yarel reversible language” is a reasonable accessible up to date document that gives an overview of what the current implementation of Yarel offers.
- Marco Ottina. He is a former graduate student. His work is about implementative and programming aspects of Yarel. Concerning implementation, Marco’s contributions are: (i) compiling Yarel source F into a Java code with a single input/output array that plays the role of a shared memory between the components of F; (ii) compiling parallely composed components of a Yarel source F into parallel Java therads. Concerning programming, Marco implemented a reversible version of Bubble-sort that can sort an arbitrary finite number of integers; this forced Marco to sligthly generalize Yarel primitives to have parametric arity. Marco’s report is “Parallelism and Prametrization in Yarel”.