首页 > 编程知识 正文

高级语言翻译成机器语言的程序,高级语言翻译成机器语言的方式

时间:2023-05-04 19:14:26 阅读:221453 作者:566

翻译程序:是指的将高级语言翻译成机器语言的过程。

预备知识:
计算机的层次结构大致可以分为五层结构:高级语言、汇编语言、操作系统、机器语言、微指令系统。

翻译程序可以分为两种情况:编译程序和解释程序

编译程序
所谓编译程序,就是指将“源程序”一次性编译成“机器语言”,也即“可执行文件exe”。编译完成后,再执行该文件。例如C语言程序,就是先全部编译为机器语言再执行。(参看C语言的编译过程:预处理-编译-汇编-链接-装入)

解释执行
所谓解释执行,就是指对于“源程序”,翻译一条语句为机器语言,立即执行该语句,执行完成后,再继续翻译后面的一条语句,在执行。依次:翻译一条语句就立即执行一条语句。例如Python

特例:JAVA,一次编译,到处执行
JAVA并不完全相同于上述两种情况,Java引入了字节码文件(.class)以及JAVA虚拟机(JVM)的概念。详细来说,就是:java类似于C语言一次性把源程序编译完成,但是C程序是将源程序直接编译为机器语言了,而java程序则是编译为了字节码文件(.class)。随后,java的字节码文件在装载有JVM的机器上被解释为机器语言,再执行。

Java编译器将.java文件编译成字节码(.class文件),class文件中的代码是是一种中间代码,介于源程序与机器码之间,该字节码不能被除JVM外任何平台所理解,当JVM接收到字节码,它会识别出它所工作的平台,然后将字节码转换为原生的机器码。

总结来说:java的编译过程,相当于在c的编译过程中增加了一个环节,即从"源程序–>机器语言"变成了"源程序–>字节码文件–>机器语言",而字节码文件只有JVM才能识别理解。因此,这个新增的流程,使得java没有C/C++运行那么快速,但是新增了“跨平台性”,只要有jvm的机器都能执行字节码文件,也即“一次编译,到处执行”。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。