请问如果使用Java语言编写一个简单的C语言编译器,最终Java代码编译出的C编译器程序使用时,使用java语言编写的这个C编译器是不是依然得在Java的虚拟机之上运行。如果可以不需要在java虚拟机运行,请简单描述下原理和思路。