高级语言编译器是怎么来的

自开始学习编程开始,只知道编写的代码经过编译器处理就能得到结果,而且也知道编译器是将高级语言转化成机器语言这个原理,但是却不知道C、JAVA、C++等高级语言编译器的由来,假如JAVA编译器是由C语言设计而来(猜测),那么C语言编译器又是怎么来的呢,如果C语言编译器基于汇编开发,那么汇编是否最终基于机器语言呢。反过来,编译器设计者们设计的编译器怎么保证(或许只是其中一部分功能)能实现通过机器语言实现的所有功能,还是说一门语言能实现的功能多少在于编译器设计者们设计编译器是增加了多少基于机械语言功能。

  1. 汇编写c的编译器,再用c写c的编译器用汇编写的c的编译器编译,就得到了一个c写的c的编译器
  2. 用c写java的编译器,再用java写java的编译器用c写的java编译器编译,就得到了一个java写的java的编译器
  3. 其他语言也差不多。

至于你说的机器语言,机器语言其实没啥特别的,就0和1的开关量。打个比方,如果现在有一个字节,代表了256种状态,至于这些状态是做什么的,还不是由最初定义的人来决定的,然后这256种状态的相互作用、叠加下,可以形成千千万万的指令。也就是说最初只需要实现这256种指令就行了。下来的就是各种封装,形成一个比较高级的编程语言,让调用起来更加方便。以上纯属个人理解