我一直在弄清楚翻译的确切工作,搜索过并得出一些结论,只是希望能够让我更好地理解翻译工作的人来纠正它.
所以我所理解的是:
- 解释器是一种将代码从高级语言转换为机器格式的软件程序.
- 特别讲述java解释器,它以二进制格式获取代码(之前由java编译器从源代码翻译成字节码).
- 现在,java解释器的平台是运行它的JVM,所以基本上它将生成可以由JVM运行的代码.
- 所以它需要字节码产生中间代码和目标机器代码并将其提供给JVM.
- JVM轮流在实现或运行JVM的OS平台上执行该代码.
现在我仍然不清楚在...之间发生的子过程
- 解释器生成中间代码.
- 然后优化解释的代码.
- 然后生成目标代码
- 并最终执行.
还有一些问题:
- 单独的解释器负责生成目标代码吗?并执行它?
- 并且执行是否意味着它在JVM或底层操作系统中执行?