编译器设计中有哪些类型的翻译器?
翻译器是一种编程语言处理器,它将计算机程序从一种语言转换为另一种语言。它接收用源程序编写的程序,并将其转换为机器程序。它可以在翻译过程中查找和检测错误。
翻译器有多种类型,如下所示:
编译器 - 编译器是一个程序,它将高级语言(例如 C、C++ 和 Java)转换为低级语言(目标程序或机器程序)。编译器使用不同的阶段将高级语言转换为低级语言。客户输入的字符流将经过多个编译阶段,最终将提供目标语言。
预处理器 - 预处理器是一个在源代码通过编译器之前处理源代码的程序。它可以在所谓的预处理器命令行或指令的控制下执行。
汇编器 - 汇编器是一种翻译器,它将汇编语言程序转换为计算机的等效机器语言程序。汇编器提供了比计算机的 0 和 1 更友好的表示,简化了程序的编写和阅读。
汇编器读取单个汇编语言源文档,并创建一个目标文档,其中包括机器指令和支持将各种目标文件合并到程序中的簿记数据。
解释器 - 解释器是一个直接执行编程代码而不是仅将其转换为其他格式的程序。它逐个翻译和执行编程语言语句。
宏 - 许多汇编语言都支持“宏”功能,其中宏语句将在转换为机器代码之前转换为一系列汇编语言语句以及其他宏语句。因此,宏功能是一种文本替换效率。
链接器 - 链接器是一个计算机程序,它连接和组合多个目标文件以创建一个可执行文件。所有这些文件可能都由单独的汇编器编译。链接器的功能是检查和查找程序中引用的模块/例程,并确定将加载这些代码的内存位置,从而创建程序指令具有绝对引用。
加载器 - 加载器是操作系统的一个组成部分,负责将可执行文件加载到内存中并执行它们。它可以计算程序的大小(指令和数据),并为其生成内存空间。它可以初始化多个寄存器以启动执行。
它为程序创建一个新的地址空间。这个地址空间很大,可以影响文本和数据段以及堆栈段。它可以将指令和数据从可执行文件重复到新的地址空间。