Существует множество компиляторов, которые компилируются в байт-код, особенно в мире Java, где уровень байт-кода находится на очень высоком уровне, поэтому написать компилятор для него относительно просто.
ДляC проблемой является то, что абстракция компьютера, необходимого для скомпилированной программы, находится на более низком уровне, чем предусмотрено JVM.Например, чтобы арифметика указателей работала, у вас должен быть один большой кусок памяти, в котором размещено все, что противоречит представлению Java о мире как о множестве независимых объектов.
Однако это можно сделать. NestedVM решает эту проблему путем компиляции программ на C в MIPS-CPU с настраиваемой библиотекой времени выполнения.Сгенерированный код затем интерпретируется напрямую или как байтовые коды.