Vlad Ureche > Projects
This page presents the different projects I worked or am working on. Some of them are quite old, but I like them so much that I keep them around.
Miniboxing (Scala Compiler Plugin)
I am currently working on improving the performance of generic programs written in Scala by providing a smart mix of compile-time and run-time class specialization. If this short description got you interested, check out the official web page of the miniboxing project or the Scala compiler plugin I'm developing (on github).
If you're interested in using the miniboxing plugin, have a look at:
- The first official miniboxing presentation, at ScalaDays '14
- The PNWScala '14 talk that featured the first miniboxing live demo
- The Devoxx UK '15 talk explaining miniboxing to Java fans
- The ScalaDays '15 San Francisco talk relating Project Valhalla and Miniboxing
If you're more interested in the principles of miniboxing, there are a number of resources available:
- The miniboxing data encoding (paper at OOPSLA '13)
- The code transformation that powers miniboxing (paper at OOPSLA '14)
- Extending the code transformation to allow customization (paper at OOPSLA '15)
- User-friendly performance advisories in Miniboxing (paper at PPPJ '15).
Scaladoc and Scala Backend Improvements
As part of my technical work in the Programming Methods Laboratory (LAMP), I developed two features for Scaladoc: showing implicitly inherited members and showing type hierarchy diagrams. Both features seem to be used in practice quite often. :)
When I joined the lab I added a backend to phase the Scala compiler for inlining exception handlers, but unfortunately it's going to be phased out in Scala 2.11, with the arrival of Miguel's new backend.
StagedSAC (Multidimensional Array Language Compiler)
When I joined LAMP, I studied optimizing multidimensional array programs, under the supervision of Tiark Rompf, work which led to the development of the StagedSAC compiler. StagedSAC is inspired by the already established SAC compiler, but uses staging to allow new kinds of input-based optimizations. This work was published at PEPM 2012.
Cloud9 Symbolic Execution Engine
Before joining as a PhD student, I worked as an intern at the Dependable Systems Laboratory at EPFL, under Prof. George Candea's supervision. Together with Stefan Bucur and Cristian Zamfir, we worked on validating the idea that symbolic execution can be efficiently parallelized in the cloud, by developing the Cloud9 symbolic execution engine.
The highlights of the internship were the bugs found in software we use and trust everyday, such as the curl download manager or lighttpd web server and diagnosing a Linux kernel livelock that affected our application. We published our results at Eurosys 2011.