Heterogeneous IDEs (HIDEs): Allowing Users to Edit Heterogeneous Languages

Project

Heterogeneous IDEs (HIDEs): Allowing Users to Edit Heterogeneous Languages

Principal Investigator

Laurence Tratt

Kings College

Oracle Fellowship Recipient

Lukas Diekmann

Oracle Principal Investigator

Hassan Chafi, Vice President, Research and Advanced Development

Summary

The aim of this project is to develop the first practical techniques and technologies for language composition compilers. These are currently the 'missing link' between language composition editors and VMs. Language composition compilers are needed to: enforce basic properties of programs before they are run (e.g. are variables in scope across composed languages?); (optionally) enforce complex properties (e.g. type systems across composed languages); and to translate programs to a common format that composed VMs can understand. To date there has been no work on any of these areas. This project will gradually build more sophisticated language composition compilers, driven by a series of gradually more complex case studies. We will start by taking an existing composition (Python to Prolog) and defining a sensible interchange format for editor and VM. We will then move to a composition where cross-language scoping needs to be enforced (PHP to Python). Finally, we will tackle basic type system composition (with cut-down languages like SML and Featherweight Java).