Towards Language Composition by Laurence Tratt

Who: Laurence Tratt, Software Development Team, King’s College London http://tratt.net/laurie/
Where: B31
When: Thursday, 15th of May, 15h
What: Towards Language Composition

We want better programming languages, but “better” invariably ends up
becoming “bigger”. Since we can’t keep making our languages bigger, what
alternatives do we have? In this talk, I propose language composition as a
possible solution to this long standing problem. Language composition means
merging two languages and allowing them to be used together. At its
most fine-grained, this could allow multiple programming languages to be
used together within a single source file.

However, language composition is not a new idea. It has failed in the past
because editing composed programs was intolerably difficult and the
resulting programs ran too slow to be usable. Without good solutions to
these problems, language composition will remain an unrealised ideal.

In this talk, I will show how the work we are doing in the Software
Development Team is beginning to address both aspects. We have built a
prototype editor utilising a novel concept ‘language boxes’, which allows
one to edit composed programs in a natural way, without the limitations of
traditional approaches. We are tackling the performance problem by
composing together interpreters using meta-tracing, allowing us to build
composed VMs with custom JITs that naturally optimise across different
language’s run-times. While we are much nearer the beginning of the
journey than the end, our initial research has allowed us to build a
simple composition of two very different languages: Python and Prolog.

Joint work with Edd Barrett, Carl Friedrich Bolz, Lukas Diekmann, and
Krishnan Vasudevan. More details at http://soft-dev.org/