In this paper, we compose six different Python and Prolog VMs into 4 pairwise compositions: one using C interpreters; one running on the JVM; one using meta-tracing interpreters; and one using a C interpreter and a meta-tracing interpreter. We show that programs that cross the language barrier frequently execute faster in a meta-tracing composition, and that meta-tracing imposes a significantly lower overhead on composed programs relative to mono-language programs.
@article{arxiv.1409.0757,
title = {Approaches to Interpreter Composition},
author = {Edd Barrett and Carl Friedrich Bolz and Laurence Tratt},
journal= {arXiv preprint arXiv:1409.0757},
year = {2017}
}