有关我对各种语言(机器,汇编,高级(编译型,解释型))的理解(还望各位大佬能指出错误,最近在学这个基础):
对于机器语言不过多赘述,主要是后二者。
我们所说的C语言编译器最早是由汇编语言实现的,那么C语言作为一种低级语言,几乎是一切其他高级语言的基础,甚至可以说在计算机上运行的一切高级语言都是要成为C语言再转为汇编再转为机器语言执行的,例如用python或java写的程序之所以不需要进行编译操作是因为他包含了一个虚拟机,而虚拟机中包含自己的指令集(就相当于一个虚拟的CPU),然后他直接在自己的指令集里运行python或java程序,但是虚拟机的作用呢?依我看,它的作用其实就是一个间接性的编译器,但他相较于C语言编译器多了一个步骤,那就是先转换为C语言,再转为汇编……
另外,说高级语言移植型比汇编语言强。依我看,只不过是他中间多了一个用汇编语言写的编译器罢了,而汇编语言在不同架构的CPU是不同的,归根结底,就是先用这个架构的CPU的指令集写一个编译器,之后再实现跨平台写高级语言。
也就是说:
不同的机器语言–不同的汇编语言–使用不同汇编语言写的高级语言编译器–高级语言(跨平台)
另外有人说现在的C语言编译器由C语言和汇编语言共同完成。其实不然,这里说的C语言并非成品,而是说用汇编语言写的一个C0语言编译器,然后在使用这个C0语言与编译器共同完成C1语言编译器,然后再由Cn语言编译器和汇编语言完成最终的C语言编译器。