中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
鲲鹏小智

编译器原理

传统的三段编译器设计中,前端负责解析源码,检查源码错误以及建立抽象语法树来生成编译中间件(IR);优化器负责将中间件进行逻辑重组以及优化;后端负责按照代码运行环境生成机器码并进行链接优化,libc参与静态库链接以及,运行时的so库调用。

图1 三段式编译器架构

GCC是一个单一的可执行程序编译器,前段、IR和后端没有明确的分界,耦合严重,难以独自发展,在整个编译过程中,中间诸多信息都无法被其他程序重用。LLVM在继承了传统三段式设计的情况下,将优化器的输入输出接口、数据进行归一,即不同语言的前端解析后生成相同语法规则的中间件,经过优化后输出通用的代码给不同的后端进行目标代码生成。由于代码目标运行平台有限,后端相对固定,前端的输入格式固定,所以对于一门新语言的编译器开发,LLVM具有方便快捷的集成能力,同样还有多种的前端作为开发的样例和对比,进而推动了LLVM框架的繁荣发展。LLVM相对GCC编译器有着较快的编译速度、目标程序有着较好的性能表现,在编译错误上也有着更加友好的提示。

搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词