Судя по комментариям к ответам, у тебя формулировка вопроса не соответствует твоим ожиданиям.
Совместимость языков - это тонкий маршалинг типов и совместная линковка в один бинарный файл.
Этим условиям, в разной степени, удовлетворяют: C, asm, D, C#, Java. Может быть еще какие-то языки. При этом, у каждого языка верхнего уровня будут свои требования к маршалингу типов и передаче управления.
Тебя же интересуют встраиваемые языки.
Взять, например, D. Он полностью
совместим с C++. Однако, его требования
не позволяют простую линковку объектных файлов C++ и D в один бинарный файл. На C++ или должен быть создан D Runtime (что не так просто сделать), или C++ код должен линковаться в бинарник на D, в качестве Better C++. Т.е. получается наоборот, в базе будет D, а C++ его только расширяет.
С питоном и Java все точно так же. C# вообще работает с
библиотеками классов, написанными на
C++/Cx, т.е. на модифицированном C++.
Эти языки не являются встраиваемыми. Их возможности расширяются за счет использования C++.
Хорошим ответом на твой вопрос будет вот такой
список встраиваемых языков. Из этого списка можно брать любой язык, ядро которого написано на C или C++.
Мой личный выбор - это
AngelScript и
Lua/
Terra.