University of Cambridge > > Computer Laboratory Programming Research Group Seminar > Towards Language Composition

Towards Language Composition

Add to your list(s) Download to your calendar using vCal

  • UserLaurence Tratt, King's College London World_link
  • ClockFriday 24 January 2014, 14:00-15:00
  • HouseSS03.

If you have a question about this talk, please contact Raphael Proust.

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

This talk is part of the Computer Laboratory Programming Research Group Seminar series.

Tell a friend about this talk:

This talk is included in these lists:

Note that ex-directory lists are not shown.


© 2006-2023, University of Cambridge. Contact Us | Help and Documentation | Privacy and Publicity