我在书上看到说java编译器是由java实现,这不是先有鸡还是先有蛋的问题吗?既然java编译器还没写出来,那用java写的编译器又如何工作呢?

解决方案 »

  1.   

    没听说,不过确实可以的,
    编译无非是把代码文本转换成bytecode
    用什么语言都可以实现,
    和鸡,蛋问题无关
      

  2.   

    一般语言都是采用迭代开发做出来的,就是用一个低层次的语言实现最基本的core,然后在这个core基础上实现一些扩展,然后逐渐的扩展到一个可以实用的语言,最后用这个语言再编写很多package,就形成了一个可以真正使用的语言了。
      

  3.   

    一般语言都是采用迭代开发做出来的,就是用一个低层次的语言实现最基本的core,然后在这个core基础上实现一些扩展,然后逐渐的扩展到一个可以实用的语言,最后用这个语言再编写很多package,就形成了一个可以真正使用的语言了。
      

  4.   

    好比一个中国商人出国经商,他请的翻译也是中国人,但这个中国人能把中文翻译成外语.
    中国商人是同程序员打交道的高级语言的角色,中国翻译就是编译器,它搭起了一道人与机器沟通的桥梁(当然,准确地说JAVA中担任这个角色是JVM).
      

  5.   

    Tomcat编译jsp的就是org.apache.jasper.compiler.JavaCompiler,那个便是用java编译java的例子Tomcat编译
    jsp->java(in work dir)->class
      

  6.   

    其实很简单啊,一开始读取源文件,解析,生成对应的bytecode,最后保存为.class文件这些步骤,几乎所有主流语言,都能实现。因此,理论上,几乎所有主流语言都能写本语言的编译器。当然,该语言第一个不可能是自己写的
      

  7.   

    你们的意思是不是先用一种比较低级的语言写java的编译器,再通过用低级语言写的编译器生成java编写的编译器
    最后就可以用java编写的编译器来编译java了
    Is that right?
      

  8.   

    你们的意思是不是先用一种比较低级的语言写java的编译器,再通过用低级语言写的编译器生成java编写的编译器
    最后就可以用java编写的编译器来编译java了
    Is that right?