Clang
是一个C
、C++
、Objective-C
和Objective-C++
编程语言的编译器前端
介绍
Clang
采用了LLVM作为其后端,由LLVM2.6开始,一起发布新版本
LLVM (Low Level Virtual Machine)
是一个开源的编译器架构,Clang
是 LLVM
的一个编译器前端
- 目标是提供一个
GNU编译器
套装的替代品,支持了GNU编译器
大多数的编译设置以及非官方语言的扩展
Clang
对源程序进行预处理、词法分析、语法分析,并将分析结果转换为 Abstract Syntax Tree(抽象语法树)
,最后使用 LLVM
作为编译器后端代码的生成器
- 相比 GUN 的优点:模块化,代码简单易懂,占用内存小、容易扩展和重用等