编译器构造工具的作用是什么?


编译器是一种计算机程序,它将用计算机语言(源语言)编写的源代码转换为另一种计算机语言(目标语言,提供具有称为目标代码的二进制形式)。转换源代码以创建可执行代码是不充分的最佳理由。

编译器通常用于将源代码从高级编程语言翻译成低级语言(例如,汇编语言或机器代码)的程序。将低级语言翻译成高级语言的程序称为反编译器。

将高级语言之间进行翻译的程序通常称为语言翻译器、源到源翻译器或语言转换器。语言重写器通常是一个程序,它在不改变语言的情况下翻译表达式的形式。编译器可能实现以下某些或所有操作,例如词法分析、预处理、解析、语义分析、代码生成和代码优化。

已经开发了许多类型的软件工具来创建编译器的一个或多个阶段。这些工具称为编译器构造工具。编译器编写者使用软件工具,包括调试器、版本管理器和分析器等。一些通用工具已为特定编译器组件的自动方案生成。

这些工具使用专门的语言来定义和执行组件,并且可以使用完全完善的算法。最突出的工具是那些隐藏生成算法分析并创建可以统一到编译器其余部分的组件的工具。以下是几个有益的编译器构造工具的列表:

  • **扫描器生成器** - 这些生成器创建词法分析。基本的词法分析是由有限自动机生成的,该自动机以正则表达式的形式获取输入。

**示例** - LEX 是 UNIX 系统提供的扫描器生成器。

  • **解析器生成器** - 此软件生成语法分析,该分析以编程语言的语法形式获取输入,该语法取决于上下文无关语法。

  • **语法制导翻译引擎** - 这些引擎创建一组遍历解析树的例程。基本概念是,一个或多个翻译与解析树的每个节点相关联,并且每个翻译都表示为其在树中相邻节点处的翻译。

  • **数据流引擎** - 它可以生成优化的代码。这些工具用于代码优化。

  • **自动代码生成器** - 这些生成器以中间代码的形式获取输入,并将其转换为机器语言。

更新于: 2021年10月23日

8K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告