【摘要】:图1-2编译程序的结构编译器的组成从工作过程角度分析,可将编译程序的工作过程划分为5个阶段:词法分析阶段、语法分析阶段、语义分析与中间代码生成阶段、代码优化阶段以及目标代码生成阶段。表1-1英文翻译与编译过程的比较编译VS英译动画:编译程序的处理过程词法分析是实现编译器的基础,语法分析是实现编译器的关键,只有语法结构正确,才能进行正确的翻译。
编译程序的工作,从输入源程序开始到输出目标代码为止的整个过程,是非常复杂的。图1-2给出了一个典型的编译程序的结构,从图中可以看出,一个完整的编译程序主要包含7个功能模块,分别是:词法分析器、语法分析器、语义分析与中间代码生成器、代码优化器、目标代码生成器,以及表格管理模块和错误处理模块。
图1-2 编译程序的结构
编译器的组成
从工作过程角度分析,可将编译程序的工作过程划分为5个阶段:词法分析阶段、语法分析阶段、语义分析与中间代码生成阶段、代码优化阶段以及目标代码生成阶段。每个阶段分别与除表格管理和错误处理之外的编译模块相对应,完成不同的任务,并且各个阶段所做的操作在逻辑上是紧密相关的。编译过程尽管复杂,但与人们进行自然语言之间的翻译有许多相似之处,可以将二者进行比较,进而加深对编译过程的理解和认识。例如,把英文句子翻译为中文时,其过程与编译过程的相似情况如表1-1所示。
表1-1 英文翻译与编译过程的比较
(www.xing528.com)
编译VS英译
动画:编译程序的处理过程
词法分析是实现编译器的基础,语法分析是实现编译器的关键,只有语法结构正确,才能进行正确的翻译。然而,上述编译过程的5个阶段只是一种典型的分法,实际上,并非所有的编译程序都分成这5个阶段。有些编译程序不提供优化功能,那么优化阶段就可以省去;有时为了提高编译速度,中间代码产生阶段也可以省去;甚至有些编译程序简化到在语法分析的同时直接产生目标代码。尽管如此,多数实用的编译程序其工作过程大都与上面所说的那5个阶段相一致,本书将按照这个顺序来讲述编译程序各个阶段涉及的基本理论、方法和技术。
编译过程
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。