编译器(compiler):是一种能够将源代码(通常由高级别的程序语言编写而成)转换为低级别机器语言的程序。源码转换最重要的一个目的在于创建可执行文件。详情请参考wikipedia。
LLVM(Low Level Virtual Machine,低级虚拟机):是构架编译器(compiler)的框架系统,以C++编写而成,用于优化以任意程序语言编写的程序的编译时间(compile-time)、链接时间(link-time)、运行时间(run-time)以及空闲时间(idle-time),对开发者保持开放,并兼容已有脚本。LLVM计划启动于2000年,最初由University of Illinois at Urbana-Champaign的Chris Lattner主持开展。2006年Chris Lattner加盟Apple Inc.并致力于LLVM在Apple开发体系中的应用。Apple也是LLVM计划的主要资助者。详情请参考llvm.org以及wikipedia。LLVM 命名最早源自于底层虚拟机(Low Level Virtual Machine)的缩写,由于命名带来的混乱,目前LLVM就是该项目的全称。LLVM 核心库提供了与编译器相关的支持,可以作为多种语言编译器的后台来使用。能够进行程序语言的编译期优化、链接优化、在线编译优化、代码生成。LLVM的项目是一个模块化和可重复使用的编译器和工具技术的集合。
GCC(GNU Compiler Collection,缩写为GCC):是GNU计划推出的支持多种程序语言的编译器系统。GCC是GNU Toolchain的主要组件。同时作为GNU操作系统的官方编译器,GCC已被作为很多现代操作系统的标准编译器,如GNU/Linux,BSD以及Mac OS X;同时也可用于很多嵌入式平台,如Symbian,AMCC等;还可用于一些游戏机平台如Playstation和Sega Dreamcast等。详情请参阅Wikipedia以及GCC.GNU.org。
IDE(Integrated development environment):是一种能够为程序员和软件开发提供广泛支持的软件程序。IDE通常由源码编辑器、编译器、自动化构建工具以及调试器组成。详情请参阅Wikipedia。
Clang 是一个 C++ 编写、基于 LLVM、发布于 LLVM BSD 许可证下的 C/C++/Objective C/Objective C++ 编译器,其目标(之一)就是超越 GCC。