Java jdk编译依赖于jdk,先有鸡还是先有蛋
java jdk源码中有java实现的部分,所以编译时需要依赖于jdk。那么第一个jdk是怎么编译出来的?
java最早是用C写出来的。
顺便说下,最早的编程语言是怎么来的。
一般有3个办法,办法1:滚雪球
先设计一种语言的最小语法子集(比如对于C语言,可以先不要函数,循环语句,只保留goto if等),然后用机器语言/汇编实现一个这个语言的编译器。
然后用这个最小的语法子集作为下一代编译器的开发语言,实现一个语法多一些的语言,如此这般,得到高级语言
办法2:人肉编译器。既然你能写一个语言的编译器,那么你也可以人肉去编译这种语言。用这种语言本身去写编译器,然后人肉将这种语言的代码转换为机器代码。
以上两个方法过于凶残,现在已经没有必要了。
办法3:交叉编译,比如用C写java的编译器,写basic的解释器等等,前面说的jdk的编译就是这样来的。
一般是应该先有底层,就跟楼房一样,要从底层开始搭建。
jdk有很多实现版本,甚至包括Java in Java,一个实验性质的虚拟机,试图用Java实现Java语言本身的运行环境。
先有男的,还是先有女的呢? 先有男的:那他从哪里来? 先有女的:那她从哪里来?
机器代码,依次往上支持,同事各层次之间交叉支持
刚开始应该是用C写的,然后就不断改变呗。有什么需求,就改哪里呗。
我想知道一些底层相关的东西java怎么搞?不太相信java in java这种鬼话,像嵌入式这种与硬件相关的,java无能为力
java基础都不会?java根加载器是c语言,其他都是java写的类加载器
jdk一些底层都是用c语言实现的啊
学习了,我觉得是互相促进。
我同意楼上的 应该是现有底层的有了底层才能在上面做其他的
底层的东西总是那么的高端,辣么的让人难以琢磨。