阶段(phase)和传入编译器(pass in compiler)的区别

一般来说,编译器是一种计算机程序,它读取用一种语言编写的程序(称为源语言),并将其翻译成另一种语言(即目标语言)。传统的源语言是C++等高级语言,目标语言是汇编语言等低级语言。因此,一般来说,编译器可以看作是从一种语言翻译到另一种语言的翻译人员。Pass和Phase是编译器经常使用的两个术语。编译器的传递次数是编译器经过源代码(或它的某种形式的表示)的次数。为了便于构造,编译器被分解成几个部分。P...

阶段vs传入编译器

一般来说,编译器是一种计算机程序,它读取用一种语言编写的程序(称为源语言),并将其翻译成另一种语言(即目标语言)。传统的源语言是C++等高级语言,目标语言是汇编语言等低级语言。因此,一般来说,编译器可以看作是从一种语言翻译到另一种语言的翻译人员。Pass和Phase是编译器经常使用的两个术语。编译器的传递次数是编译器经过源代码(或它的某种形式的表示)的次数。为了便于构造,编译器被分解成几个部分。Phase通常用于调用编译器中这样一个独立的部分。

什么是编译器中的传递?

对编译器进行分类的标准方法是按“通过”的数量。通常,编译是一个相对资源密集型的过程,最初计算机没有足够的内存来保存这样一个完成任务的程序。由于早期计算机硬件资源的局限性,编译器被分解成更小的子程序,这些子程序通过检查源代码(对源代码或其他形式的源代码进行“传递”)来完成其部分工作,并分别执行分析、转换和翻译任务。因此,根据这种分类,编译器被识别为一次或多次通过编译器。

顾名思义,one-pass编译器在一个过程中编译。编写一个单通道编译器更容易,而且它们的执行速度也比多通道编译器快。因此,即使在资源受限的时候,语言的设计也使得它们可以一次性编译(例如Pascal)。另一方面,一个典型的多遍编译器是由几个主要阶段组成的。第一个阶段是扫描器(也称为词法分析器)。Scanner读取程序并将其转换为一系列标记。第二个阶段是解析器。它将中的标记字符串转换为解析树(或抽象语法树),解析树捕获程序的语法结构。下一阶段是句法结构的语义解释。代码优化阶段和最终代码生成阶段遵循以下步骤。

编译器的阶段是什么?

在谈到编译器构造时,经常会出现术语阶段。最初,编译器是由一个人为编译一种简单的语言而编写的单个单片软件的每一个简单部分。但是当要翻译的语言的源代码变得复杂和庞大时,编译器就被分解成多个(相对独立的)阶段。具有不同阶段的优点是编译器的开发可以在开发人员团队中进行。此外,它通过允许阶段被改进的阶段或添加到编译器中的附加阶段(例如进一步的优化)来改进模块化和重用。卡内基甜瓜大学的PQCC(Production Quality Compiler Compiler Project)介绍了将编译分为阶段的过程。他们引入了前端、中间端和后端这三个术语。大多数编译器至少有两个阶段。但是通常,后端和前端封装了这些阶段。

阶段编译器和传入编译器的区别是什么?

  • 发表于 2020-11-05 14:59
  • 阅读 ( 207 )
  • 分类:IT

你可能感兴趣的文章

种(species)和分阶段溶液(phase in solution)的区别

...录 1. 概述和主要区别 2. 溶液中的物种是什么 3. 什么是分阶段解决方案 4. 并列比较-以表格形式表示的物种与分阶段溶液 5. 摘要 什么是溶液中的物种(species in solution)? 溶液中的组分是指形成溶液时溶质在溶剂中溶解而形成的化...

  • 发布于 2020-10-04 03:13
  • 阅读 ( 320 )

第一阶段(phase i)和ii期代谢(phase ii metabolism)的区别

第一阶段和第二阶段代谢的关键区别在于,第一阶段代谢将母体药物转化为极性活性代谢产物,而第二阶段代谢将母体药物转化为极性非活性代谢产物。 代谢(药物代谢)是生物体对药物的合成代谢和分解代谢。因此,药物...

  • 发布于 2020-10-17 12:11
  • 阅读 ( 821 )

编译时间(compile time)和运行时(runtime)的区别

...语法和语义错误而出现的。这些错误避免了编译的成功。编译器指示编译时错误。它将显示错误发生在哪一行的消息。一些常见的编译时错误包括缺少大括号、标识符拼写错误和关键字拼写错误。当编译错误发生时,程序员应该...

  • 发布于 2020-10-19 10:25
  • 阅读 ( 771 )

编译(compiled)和解释语言(interpreted language)的区别

...代码必须转换成机器可读的指令。简而言之,实现通常是编译器而不是解释器的语言称为编译语言。   什么是解释性语言(an interpreted language)? 解释器是用其他语言编写并编译成机器可读语言的程序。解释器本身就是机器语言...

  • 发布于 2021-06-26 05:11
  • 阅读 ( 764 )

编译器解释器(compiler interpreter)和汇编程序(assembler)的区别

...级或汇编程序应转换成机器语言,以便计算机理解指令。编译器、解释器和汇编程序是将高级或汇编语言程序转换为机器语言的翻译器。 覆盖的关键领域 1.什么是编译器-定义,功能2.什么是解释器-定义,功能3.什么是汇编器-定...

  • 发布于 2021-06-30 18:09
  • 阅读 ( 1397 )

编译程序(compiler)和交叉编译器(cross compiler)的区别

编译器和交叉编译器的主要区别在于,编译器是一种将用高级编程语言编写的计算机程序转换成机器语言的软件,而交叉编译器是一种可以为运行编译器的平台以外的平台创建可执行代码的编译器。 程序员用高级语言为计算机...

  • 发布于 2021-06-30 18:25
  • 阅读 ( 351 )

石斑鱼类(ide)和编译程序(compiler)的区别

IDE和编译器之间的主要区别在于IDE是一个软件套件,由开发和测试软件应用程序所需的工具组成,而编译器是一个将用高级编程语言编写的源代码翻译成低级机器代码的程序。 IDE提供了一个创建、构建和测试软件应用程序的环...

  • 发布于 2021-07-01 03:13
  • 阅读 ( 393 )

链接器加载程序(linker loader)和编译程序(compiler)的区别

链接器加载程序和编译器之间的主要区别在于,链接器将编译器生成的一个或多个对象文件合并到一个可执行文件中。同时,加载程序将程序放入内存并准备执行,同时编译器将源代码转换为目标代码。 计算机程序是在计算机...

  • 发布于 2021-07-01 04:45
  • 阅读 ( 671 )

口译译员(interpreter)和jit编译器(jit compiler)的区别

解释器和JIT编译器的主要区别在于解释器是一种逐行将源代码转换成本机代码的软件,而JIT编译器是JVM中的一个组件,它通过在运行时将字节码编译成本机代码来提高Java程序的性能。 解释器是一种程序,它将程序员编写的指令...

  • 发布于 2021-07-01 05:51
  • 阅读 ( 519 )

单程(single pass)和多程编译器(multipass compiler)的区别

单过程编译器和多过程编译器的主要区别在于,单过程编译器是一种只将源代码通过每个编译单元一次的编译器,而多过程编译器将编译分离为多个过程,其中每个过程都将继续上一个过程的结果。 计算机程序是计算机执行某...

  • 发布于 2021-07-01 06:07
  • 阅读 ( 523 )
elnz6276
elnz6276

0 篇文章

相关推荐