I am a Senior Researcher, working on the intersection of programming languages, software engineering and artificial intelligence. Currently, I am exploring how more expressive type systems (like liquid types) can help in improving the trust we have in synthesized programs.
I am an integrated member of LASIGE where I lead the Reliable Software Systems research line.
Publication List
Service
Research Software
The following software resulted from this research:
-
Æon Programming Language, a functional programming language with (liquid and non-liquid) refined types, that is used for search-based synthesis. (Paper)
-
LiquidJava, an extension to Java (including a VSCode extension) that validates state machine and value boundaries. (Paper)
-
GeneticEngine, a Python framework for Grammar-Guided Genetic Programming that uses Datatypes to represent Grammars. It can be used for synthesis, test generation, and program optimisation. (Paper)
-
Aeminium Runtime – A task-based work-stealing runtime. It follows Cilk THE algorithm for work-stealing, but is configurable with several work-stealing algorithms, and different granularity control algorithms. (Paper)
-
Aeminium Benchmarks – A set of 24 recursive parallel programs, each implemented sequentially, using Java ForkJoin or using Aeminium Runtime. Most of the programs were reimplemented based on other benchmark suites, but some of the programs are new. The parameters chosen can evidence differences in granularity control choices, and execute within minutes. The benchmark measurement utility follows the Statistical Rigorous Java Performance Evaluation methodology. (Paper)
-
JPar Compiler – A compiler built on top of spoon, which extracts data permissions from sequential java source code, and generates parallel java source code, using calls to the Aeminium Runtime. (Paper parallelization) (Paper granularity)
-
AeminiumGPU Compiler and Runtime – A compiler that translates map-reduce programs in Java to OpenCL, and a runtime library that executes the OpenCL kernels automatically. (Paper)