Fine-grained language composition without a common VM
Traditionally, programming languages have been islands, each disconnected from the rest. Running multiple languages on a single VM (e.g. the JVM) allows languages to communicate a little more easily, but at the price of performance: no matter how clever the VM, some languages run slowly. Even when all languages on a VM run acceptably fast, the mechanisms for communication are usually crude, normally due to performance concerns.
In this talk I will show how languages can be composed in a way that reflects the needs of programmers, and that human-orientated design decisions can be made to run sufficiently fast. Using the Eco editor, users can write source files that contain fragments of multiple languages. Multi-language programs are then run on composed meta-tracing interpreters that JIT compile across language implementations – despite not having a common VM. I will show that the performance of the resulting systems is more than good enough to be usable, and that it opens up new possibilities for language design and use.
Joint work with Edd Barrett, Carl Friedrich Bolz, Lukas Diekmann, Sarah Mount, and Jasper Schulz. More at http://soft-dev.org/
I am a programmer and Reader in Software Development in the Department of Informatics at King’s College London where I lead the Software Development Team. I am an EPSRC Fellow. I co-founded Elbatrop.