如何在一种语言中使用编译器和解释器?

问题描述 投票:2回答:2

我已经阅读了关于编译器,解释器和使用两者的“事物”的定义的足够解释。我没有找到如何在一种语言中使用编译器和解释器。

compiler-construction interpreter
2个回答
1
投票

在Java中,源代码首先被编译为字节码,然后由解释器(JVM - Java虚拟机)运行。

字节码是虚拟机的机器代码。

在Javascript中,有一个运行时(引擎)可以及时编译(JIT)。基本上,在执行时,它会给出一个源代码,它会立即转换为本机代码,然后执行代码。在Chrome的引擎中有两个模块进行编译:一个可以快速执行代码,但代码没有太多优化(点火解释器),另一个产生高性能代码,但编译需要更多时间(涡轮风扇编译器)。

为什么同时使用:

  • 可移植性 - 当您使用已编译AOT的中间表示时,您可以使用此字节码并在提供虚拟机的任何体系结构上运行它。您可以将相同的Java字节码推送到Mac,PC或Linux上的客户端。如果他们安装了JVM,代码将会运行。对于C或C ++,您必须为每个体系结构提供不同的程序可执行文件
  • 快速的初始启​​动和良好的执行性能 - 编译需要时间(更优化的代码通常需要更多的编译时间),但没有人愿意等待。最好是生成一些不完美的东西(点燃相位),然后通过将热路径编译成高度优化的机器代码(涡轮风扇相位)来逐步改进代码。今天尤其合理,我们的CPU有很多内核,但我们无法全部利用它们,因为创建具有许多并行线程的程序很难(因此一个核心可以执行程序,而另一个核心可以同时优化代码)

1
投票

Java是第一台独立于机器的编程语言;它使用编译器和解释器。 Java编译器的设计方式是将源代码转换为独立于平台的i-e字节代码。然后,这些字节代码由解释器转换为机器代码。这就是编译器和解释器在一种语言中的使用方式。任何具有JVM的系统都将运行这些字节代码。

Java program  byte code  interpreted by VM  machine language

摘要:

java编译器将源代码转换为称为字节码的中间语言。该字节码只能在称为JVM的虚拟环境中执行。 Java虚拟机。 JVM是java字节码的解释器。它将字节码转换为机器语言并逐行执行。

这就是编译器和解释器在一种语言中的使用方式..如果它有用,你可以提一下

© www.soinside.com 2019 - 2024. All rights reserved.