翻译程序:将高级语言翻译成机器语言

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

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

  1. 翻译程序可以分为两种情况:编译程序和解释程序
    在这里插入图片描述

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

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

  4. 特例: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
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值