引导java和python编译器

时间:2018-04-22 08:31:52

标签: java python compiler-construction bootstrapping

compiler bootstrapping上的维基百科页面列出了编译器被引导的语言中的python和java。 Aren的javac和cpython在c中实现了吗? 为什么这些语言列在该页面上?

2 个答案:

答案 0 :(得分:1)

autoHeight是用Java编写的,它将Java源代码编译为字节码。该来源可在线获取。所以javac被引导了。您可能会将javac与JVM混淆,因为后者是用C语言编写的,用于将字节码编译为机器代码并运行它。

Python也是如此。编译器与执行环境不同。

答案 1 :(得分:0)

使用Java,Java编译器(javac)和Java虚拟机(java)之间存在区别。除非操作系统和/或CPU支持本机运行Java应用程序,否则您将需要一个JVM来运行任何Java应用程序。

另一方面,Apache Maven等工具是用Java编写的,也可以调用Java编译器。这不是通过调用Java包来完成的。 The page on the Maven Compiler Plugin描述了如何完成此操作,以及如何配置插件以使用javac可执行文件。

总是需要一些本机代码。但是没有什么能阻止你编写所有在Java本身产生Java字节码的代码。毕竟,它的作用是将文本转换为字节。您可以使用任何编程语言执行此操作,包括Java。