📜  编译器设计教程

📅  最后修改于: 2021-01-18 05:22:25             🧑  作者: Mango

编译器设计教程

编译器将用一种语言编写的代码转换为另一种语言,而无需更改程序的含义。还期望编译器应使目标代码高效且在时间和空间方面得到优化。

编译器设计原理提供了翻译和优化过程的深入视图。编译器设计涵盖了基本的转换机制以及错误检测与恢复。它包括词法,语法和语义分析作为前端,以及代码生成和优化作为后端。

为什么要学习编译器设计?

计算机是软件和硬件的平衡组合。硬件只是机械设备的一部分,其功能由兼容的软件控制。硬件以电子电荷的形式理解指令,这是软件编程中二进制语言的对应形式。二进制语言只有两个字母0和1。要进行指令,硬件代码必须以二进制格式编写,即一系列1和0。对于计算机程序员而言,编写此类代码将是一项艰巨而繁琐的任务,这就是为什么我们需要编译器来编写此类代码。

语言处理系统

我们已经知道,任何计算机系统都是由硬件和软件组成的。硬件可以理解人类无法理解的语言。因此,我们使用高级语言编写程序,这使我们更容易理解和记住。然后,将这些程序输入到一系列工具和OS组件中,以获取机器可以使用的所需代码。这被称为语言处理系统。

听众

本教程是为有兴趣学习编译器基本原理的学生而设计的。希望对编译器有更多了解的热心读者以及希望自己设计编译器的读者可以从这里开始。

先决条件

本教程不需要具备编译器设计的先验知识,但需要对至少一种编程语言(如C,Java等)有基本的了解。如果您事先有过汇编编程的知识,那将是一个额外的优势。