LLVM理论篇之编译器结构

1、概述

编译器完成源程序到目标程序的翻译工作,这是一个复杂的整体过程。从概念上讲,一个编译程序的整体过程可以分为3个阶段,每个阶段将程序的一种语言表示形式转换成另一种语言表示形式,并且各个阶段在逻辑上是紧密相连的。典型的划分方法是将编译器划分成前端、中端、后端三个阶段。编译器的整体结构如下示意图。

编译器结构示意图

2、各阶段的作用

(1)编译器前端

编译器前端是作用于源程序的。前端通过分析高级语言代码的文本,相应的进行词法分析、语法分析、语义分析到生成中间代码的各个编译器阶段,同时还包括与前端各个阶段相关的出错处理与符号表管理等。

(2)编译器中端

编译器中端是对前端生成的中间代码进行优化。这些优化都是与目标平台无关的,主要包括冗余代码删除,常量折叠、过程间优化、循环优化、反馈优化和其他优化。

(3)编译器后端

编译器后端主要重点关注目标平台,对中间代码实现面向目标平台的特征的优化,生成符合目标机器运行需要的汇编代码。这些代码通过汇编器和链接器最终生成在目标机器上可执行的二进制程序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值