LLVM是用C++语言编写的,截至2022年7月,它使用C++标准的C++17版本[^1]。LLVM积极利用标准模板库(STL)提供的功能。另一方面,LLVM包含了许多基本容器的内部实现 [^2],主要是为了优化性能。例如,llvm::SmallVector具有与std::vector类似接口,但内部实现进行了优化。对于希望使用LLVM和Clang的人来说,熟悉这些扩展至关重要。 此外,LLVM还引入了其他开发工具,如TableGen,这是一种用于结构化数据处理的领域特定语言(DSL),以及LIT(LLVM集成测试器),即LLVM的测试框架。本章稍后将讨论这些工具的更多细节。