编译器介绍 - LLVM、GCC、Clang

LLVM

虽然是叫这个名字,但是和虚拟机没什么关系,这不是一个缩写,就是这个项目的全名。是伊利诺伊大学为了提供一个现代的、基于 SSA(静态单一赋值) 的、可以动态、静态编译任何编程语言的编译方案而开展的研究项目,核心是个编译器工具集。

GCC

GNU(操作系统)编译器套装(the GNU Compiler Collection)。是许多现代类 Unix 操作系统默认的编译器,包括 Mac OSX 系统,但后来 Mac OSX 改为用 Clang 编译器了。

Clang

是 LLVM 编译器工具集的前端,输出代码对应的抽象语法树(AST),再编译成LLVM Bitcode,由后端使用 LLVM 编译成平台相关的机器代码。因为 GCC 使用 GPL 协议(反版权),因此 Apple 无法闭源使用修改版的 GCC,而 LLVM 支持 BSD 协议(商业友好),于是有了 Clang。

上一篇:LLVM一些语法规则


下一篇:LLVM 编译器和工具链技术