RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 606941
Accepted
Salut Amigo
Salut Amigo
Asked:2020-12-23 16:09:34 +0000 UTC2020-12-23 16:09:34 +0000 UTC 2020-12-23 16:09:34 +0000 UTC

编译器和解释器的区别

  • 772

编译器和解释器有什么区别?编程语言可以同时具有编译器和解释器吗?

компилятор
  • 3 3 个回答
  • 10 Views

3 个回答

  • Voted
  1. Best Answer
    Artem Konovalov
    2020-12-23T16:20:46Z2020-12-23T16:20:46Z

    要说出区别,让我们找出它是什么:

    编译器是执行编译的程序或硬件。

    编译是将用高级源语言编写的程序翻译成用接近机器代码(绝对代码、目标模块,有时是汇编语言)的低级语言编写的等效程序。编译器的输入信息(源代码)是用特定领域语言对算法或程序的描述,编译器的输出是用面向机器的语言(目标代码)对算法的等效描述。维基百科

    解释器是执行解释的程序(一种翻译器)。

    解释 - 逐个运算符(逐行命令,逐行)分析、处理和立即执行源程序或查询(与编译相反,在编译中程序被翻译而不执行)。维基百科

    因此,我们可以得出结论,编译器将源代码转换为接近机器代码。另一方面,解释器允许您执行程序的某些表示,即时将其转换为机器代码。

    如果我们采用语言java,那么它既有编译器又有解释器。编译器将源代码转换为字节码。而程序执行初期的字节码是由解释器处理的。

    编译器是一个单独的程序javac,而解释器内置于jvm. 除了通常的编译器外,jvm还有一个just-in-time编译器。因为 解释比较慢,程序中的热点被编译器编译成机器码jit,从而加快执行速度。

    • 22
  2. Akina
    2020-12-23T16:15:01Z2020-12-23T16:15:01Z

    1)区别在于,编译器将算法语言的代码转换为可执行(字节码或本机)代码(在极限-转换为机器码),而解释器独立识别并逐行执行程序代码指令。

    2)是的,它可以。即使是古老的涡轮增压/快速基本 - 他们也可以。此外,Borland Turbo BASIC 是“在一个瓶子里”,而 Microsoft Quick Basic 像所有现代的一样使用外部编译器。

    UPD:可能,它也可以表述如下:程序执行的解释器必须具有算法语言的程序源代码(以其原始或形式化的形式),而编译创建一个不包含程序的可执行模块算法语言中的文本。还有,如果编译时不加调试信息,是不可能完全还原源码的。

    • 5
  3. Dmitry Ponyatov
    2020-02-05T02:09:01Z2020-02-05T02:09:01Z

    解释器执行程序,翻译器包括。编译器转换而不执行

    • 3

相关问题

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    如何停止编写糟糕的代码?

    • 3 个回答
  • Marko Smith

    onCreateView 方法重构

    • 1 个回答
  • Marko Smith

    通用还是非通用

    • 2 个回答
  • Marko Smith

    如何访问 jQuery 中的列

    • 1 个回答
  • Marko Smith

    *.tga 文件的组重命名(3620 个)

    • 1 个回答
  • Marko Smith

    内存分配列表C#

    • 1 个回答
  • Marko Smith

    常规赛适度贪婪

    • 1 个回答
  • Marko Smith

    如何制作自己的自动完成/自动更正?

    • 1 个回答
  • Marko Smith

    选择斐波那契数列

    • 2 个回答
  • Marko Smith

    所有 API 版本中的通用权限代码

    • 2 个回答
  • Martin Hope
    jfs *(星号)和 ** 双星号在 Python 中是什么意思? 2020-11-23 05:07:40 +0000 UTC
  • Martin Hope
    hwak 哪个孩子调用了父母的静态方法?还是不可能完成的任务? 2020-11-18 16:30:55 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    user207618 Codegolf——组合选择算法的实现 2020-10-23 18:46:29 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    Arch ArrayList 与 LinkedList 的区别? 2020-09-20 02:42:49 +0000 UTC
  • Martin Hope
    iluxa1810 哪个更正确使用:if () 或 try-catch? 2020-08-23 18:56:13 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5