返回信息流javac是jdk里面使用的java前端编译器,用来将.java编译成.class,javac本身是用java写的,那么问题来了,javac是如何被编译的,那么第一款java编译器又是什么
这是一条镜像帖。来源:北邮人论坛 / java / #43298同步于 2015/8/1
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
关于第一个javac如何编译出来的问题
xs90
2015/8/1镜像同步13 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
最早的javac有可能是用c++写的,但最新版OpenJDK里的javac就是一个普通的Java程序,而且非常简单(比eclipse的ecj编译器简单多了)。
p.s. javac只是一个“普通”的程序:输入Java源代码,输出.class文件,理论上可以用任何有输入和输出功能的语言(如Python或者brainfuck)编写。javac本身不会执行java程序,是Java虚拟机(JVM)在执行,即:JVM执行javac,输入java源代码,输出.class文件。
brainfuck.....
【 在 nuanyangyang (暖羊羊) 的大作中提到: 】
: 最早的javac有可能是用c++写的,但最新版OpenJDK里的javac就是一个普通的Java程序,而且非常简单(比eclipse的ecj编译器简单多了)。
: p.s. javac只是一个“普通”的程序:输入Java源代码,输出.class文件,理论上可以用任何有输入和输出功能的语言(如Python或者brainfuck)编写。javac本身不会执行java程序,是Java虚拟机(JVM)在执行,即:JVM执行javac,输入java源代码,输出.class文件。
哈哈哈,brainfuck。。。
【 在 nuanyangyang 的大作中提到: 】
: 最早的javac有可能是用c++写的,但最新版OpenJDK里的javac就是一个普通的Java程序,而且非常简单(比eclipse的ecj编译器简单多了)。
: p.s. javac只是一个“普通”的程序:输入Java源代码,输出.class文件,理论上可以用任何有输入和输出功能的语言(如Python或者brainfuck)编写。javac本身不会执行java程序,是Java虚拟机(JVM)在执行,即:JVM执行javac,输入java源代码,输出.class文件。
【 在 nuanyangyang 的大作中提到: 】
: 最早的javac有可能是用c++写的,但最新版OpenJDK里的javac就是一个普通的Java程序,而且非常简单(比eclipse的ecj编译器简单多了)。
: p.s. javac只是一个“普通”的程序:输入Java源代码,输出.class文件,理论上可以用任何有输入和输出功能的语言(如Python或者brainfuck)编写。javac本身不会执行java程序,是Java虚拟机(JVM)在执行,即:JVM执行javac,输入java源代码,输出.class文件。
那问题来了,暖神,第一款C编译器是怎么来的呢?难道是用汇编吗?