L'herbe 2020-11-04 22:20 采纳率: 25%
浏览 30
已采纳

解释器和编译器的区别

大佬具体说一下,解释器和编译器的区别,谢谢啦!

  • 写回答

1条回答 默认 最新

  • 一头小山猪 一头小山猪(个人IP)官方账号 2020-11-14 14:30
    关注

    首先来说明一下,这里说到的编译器和编译器指的不是我们用到的一些软件,而是和编程语言运行相关的一些计算机底层概念。
    我们知道编程语言有成千上万种,我们使用他们可以写出各类的应用,让计算机帮助我们来实现各种功能。不同的语言需要不同的运行环境,程序运行过程也有所不同。编程语言可以划分为解释型编译型

    先从编程语言的角度来渗透一下这两个概念,我们之前学过的一些语言,比如:C语言、C++。由这些语言编写的程序必须先经过编译,在这个过程中就会用到编译器。大概的流程是这样的:

    源代码(编程人员敲出来的源程序) -》 预处理器处理(清除注释等) -》 编译器(编译后得到计算机能读懂的语言) -》 链接器(加载一些程序引入的类库,各种API) -》 可执行程序。

    可以看到,在这个过程中出现了编译器,它的作用主要就是将预处理之后源代码编译成机器能够读懂的机器语言。

    这里再用另外一个语言常见的语言来举例:Java。表面看,我们在运行Java程序时,很明显的做了一个编译的动作,但是Java是解释型语言。下面就好好说明一下解释器以及解释型语言

    对于编译型语言,同一份源码,因为编译后生成的是机器语言,所以如果是不同的CPU架构或操作系统(因为指令集不同)是无法通用的,必须重新编译后才能运行,当然也不能跨平台。对于解释型的语言,不需要生成系统直接能读懂的东西,那要怎么来运行呢?就是配备一个解释器,如果让解释器直接去解读源代码效率是很低的,所以也是要先转化为一个比较方便操作的文件,通常我们会把它叫做字节码文件,这个文件只有对应语言的解释器能够读懂。在程序执行时,使用的就是这个字节码文件,所以解释器的主要作用就是解释执行字节码文件

    对于解释型语言来说有很多对应的解释器,如Python的CPython、JPython,Java的JVM(包含解释器)。当我们在不同的系统上安装了对应的解释器,就能够实现跨平台运行。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥30 STM32 INMP441无法读取数据
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境