什么是编译器设计中的语言处理系统?

在语言处理系统中,首先对源代码进行预处理。修改后的源程序由编译器处理以形成目标汇编程序,然后由汇编器翻译以创建可重定位的目标代码,由链接器和加载器处理以创建目标程序。它基于翻译器接受的输入和它产生的输出,语言翻译器可以定义为以下任何一种。

高级语言- 如果程序包含#define 或#include 指令,包括#include 或#define,则称为HLL。

Pre-Processor - 预处理器通过包含名为文件包含的文件和使用宏扩展的所有#define 指令来终止所有#include 指令。预处理器可以实现以下功能 -

  • 宏处理- 预处理器可以使用户定义作为高级结构简写的宏。

  • 文件包含- 预处理器可以将头文件包含到程序文本中。

  • Rational preprocessor - 这些预处理器通过额外的当前控制流和数据结构化设施来增强早期语言。

  • 语言扩展- 这些预处理器尝试将特定数量的功能插入到语言中以在宏中构建。

Pure HLL - 这意味着该程序将不包含任何 # 标签。这些 # 标签也称为预处理器指令。

Assembler - Assembler 是一个程序,它将汇编语言程序作为输入并将其更改为类似的机器语言代码。

汇编语言- 它是一种中间状态,是一系列机器指令和实现所需的其他一些有益记录。它既不是0也不是1的形式。

汇编语言的优点

  • 阅读更容易。

  • 地址是象征性的,程序员不必担心地址。

  • 它是助记符。一个例子,我们使用 ST 而不是 01010000 来存储汇编语言中的指令。

  • 很容易发现和纠正错误。

Relocatable Machine Code - 这意味着您可以在计算机的任何位置加载该机器代码并且它可以运行。代码内部的地址将使其保持代码移动。

Loader / Linker - 这是一个将可重定位程序作为输入并编译库函数、可重定位对象记录并创建其类似的绝对机器程序的代码。

加载包括获取可重定位的机器程序,改变可重定位的地址,以及将修改后的指令和信息定位在内存中合适的区域。

链接使我们能够从可重定位机器程序的多个文档中创建单个程序。这些文档可能已经导致不同的编译,一个或多个可以是系统支持的库例程,可用于任何需要它们的代码。

以上是 什么是编译器设计中的语言处理系统? 的全部内容, 来源链接: utcz.com/z/363266.html

回到顶部