Shopify / Royal Academy of Engineering Research Chair in Language Engineering


This Research Chair will investigate how to improve the engineering of existing programming languages.

Project details

Funding body:Shopify / Royal Academy of EngineeringFunding amount: £754,085 Expenses
Start date:2023-03-23End date:2027-03-22
Principle investigator(s):Laurence Tratt Co-investigator(s):-
Collaborator(s): Research staff:-
Other details:

Detailed description

The standard Virtual Machines (VMs) for programming languages such as Ruby and Python run programs 5-10x slower than state-of-the-art alternatives with Just-In-Time (JIT) compilers, but many programs are only compatible with the standard VMs, which thus remain dominant. The poor performance of standard VMs damages productivity by wasting programmer time, gives user a poor experience of the software, and contributes to climate change by requiring more servers to be used than should be necessary.

There have been many attempts (open-source and commercial) to manually add JIT compilers to standard VMs (e.g. Ruby and, in particular, Python). Despite considerable investments of time and resources, the fearsome scale and complexity of programming language VMs has meant that none has succeeded.

This Research Chair aims to cut this Gordian knot by taking an idea from state-of-the-art JIT compilers and applying it to standard VMs: "meta-tracing" automatically creates a JIT compiler from a normal VM. By applying it to standard VMs, we sidestep the problem of manually creating a JIT. However, meta-tracing has previously been applied to custom-written VMs: applying it to existing VMs brings with it new research and engineering challenges that this Research Chair will tackle.