编译器构建工具的作用是什么?
编译器是一种计算机程序,它将以计算机语言(源语言)编写的源代码转换为另一种计算机语言(目标语言,提供称为目标代码的二进制形式)。无法转换源代码的最佳原因是创建可执行代码。
编译器通常用于将源代码从高级编程语言翻译成低级语言(例如,汇编语言或机器代码)的程序。从低级语言转换为高级语言的程序是反编译器。
在高级语言之间进行翻译的程序通常称为语言翻译器、源代码到源代码翻译器或语言转换器。语言重写器通常是一种在不改变语言的情况下翻译表达形式的程序。编译器可能会实现以下部分或全部操作,例如词法分析、预处理、解析、语义分析、代码生成和代码优化。
已经开发了多种类型的软件工具来创建编译器的一个或多个阶段。这些工具被称为编译器构建工具。编译器编写者使用的软件工具包括调试器、版本管理器和分析器等。一些通用工具已生成用于确定编译器组件的自动方案。
这些工具使用专门的语言来定义和执行组件,并且可以使用完全完善的算法。最出色的工具是那些隐藏生成算法分析并创建可以统一到编译器其余部分的组件的工具。以下是几个有益的编译器构建工具的列表-
ScannerGenerators-这些生成器创建词法分析。基本的词法分析是由有限自动机产生的,它以正则表达式的形式输入。
示例-LEX是UNIX系统提供的扫描仪生成器。
ParserGenerators-该软件产生语法分析,以编程语言的语法形式输入取决于上下文无关语法。
SyntaxDirectedTranslationEngines-这些生成一组遍历解析树的例程。基本概念是一个或多个翻译与解析树的每个节点相关,每个翻译的表示是由于树中其相邻节点的翻译。
数据流引擎-它可以生成优化的代码。这些工具用于代码优化。
自动代码生成器-这些生成器以中间代码的形式获取输入并将其转换为机器语言。