缩略语大全之:编译器篇
------ 从源代码到二进制的一切黑魔法
一、编译器总体与通用术语
1.1 编译流程全局概念
|-----------|------------------------------|--------------|
| 缩略语 | 全称 | 说明 |
| Compiler | Compiler | 编译器 |
| Toolchain | Toolchain | 工具链 |
| Frontend | Front End | 前端(语法 → IR) |
| Backend | Back End | 后端(IR → 机器码) |
| Driver | Compiler Driver | 编译驱动(如 gcc) |
| Pipeline | Compilation Pipeline | 编译流水线 |
| Pass | Compiler Pass | 编译器处理阶段 |
| IR | Intermediate Representation | 中间表示 |
| Target | Target Architecture | 目标架构 |
| ABI | Application Binary Interface | 应用二进制接口 |
1.2 编译阶段缩略语
|-----|------------------------|-------|
| 缩略语 | 全称 | 说明 |
| PP | Preprocessor | 预处理 |
| CC | Compilation | 编译 |
| AS | Assembler | 汇编 |
| LD | Linker | 链接 |
| LTO | Link Time Optimization | 链接时优化 |
| JIT | Just-In-Time | 即时编译 |
| AOT | Ahead-Of-Time | 预编译 |
二、主流编译器与工具链家族
2.1 GCC 家族
|-----------|-------------------------|------------|
| 缩略语 | 全称 | 说明 |
| GCC | GNU Compiler Collection | GNU 编译器集合 |
| cc | C Compiler | C 编译器别名 |
| g++ | GNU C++ Compiler | C++ 编译器 |
| gcov | GNU Coverage | 覆盖率分析 |
| gprof | GNU Profiler | 性能分析 |
| libgcc | libgcc | GCC 运行时支持库 |
| libstdc++ | libstdc++ | C++ 标准库实现 |
2.2 LLVM / Clang 生态
|-------------|---------------------------|----------|
| 缩略语 | 全称 | 说明 |
| LLVM | Low Level Virtual Machine | 编译器基础设施 |
| Clang | Clang Frontend | LLVM 前端 |
| clang++ | C++ Frontend | C++ 前端 |
| clangd | Clang Daemon | LSP 编译服务 |
| llc | LLVM Static Compiler | IR → 机器码 |
| opt | LLVM Optimizer | IR 优化器 |
| lld | LLVM Linker | 链接器 |
| libc++ | libc++ | C++ 标准库 |
| compiler-rt | compiler-rt | 编译器运行时 |
2.3 Intel / 商业编译器
|-------|----------------------|-------------|
| 缩略语 | 全称 | 说明 |
| ICC | Intel C Compiler | Intel 经典编译器 |
| ICX | Intel LLVM Compiler | LLVM-based |
| IFX | Intel Fortran LLVM | Fortran 编译器 |
| MSVC | Microsoft Visual C++ | 微软编译器 |
| NVCC | NVIDIA CUDA Compiler | CUDA 编译器 |
| HIPCC | HIP Compiler | AMD GPU 编译 |
三、前端(Frontend)相关缩略语
3.1 词法、语法、语义分析
|-----------|----------------------|---------|
| 缩略语 | 全称 | 说明 |
| Lexer | Lexical Analyzer | 词法分析 |
| Parser | Syntax Parser | 语法分析 |
| AST | Abstract Syntax Tree | 抽象语法树 |
| CFG | Context-Free Grammar | 上下文无关文法 |
| Sema | Semantic Analysis | 语义分析 |
| TypeCheck | Type Checking | 类型检查 |
3.2 前端工具与生成器
|-------|---------------------------------------|---------|
| 缩略语 | 全称 | 说明 |
| Lex | Lexical Generator | 词法生成 |
| Yacc | Yet Another Compiler Compiler | 语法生成 |
| Bison | GNU Bison | Yacc 实现 |
| ANTLR | ANother Tool for Language Recognition | 现代解析器 |
四、中间表示(IR)体系
4.1 IR 形式
|---------|-----------------------------|------------|
| 缩略语 | 全称 | 说明 |
| IR | Intermediate Representation | 中间表示 |
| SSA | Static Single Assignment | 静态单赋值 |
| GIMPLE | GIMPLE | GCC IR |
| RTL | Register Transfer Language | GCC 后端 IR |
| LLVM IR | LLVM IR | LLVM 核心 IR |
| MIR | Machine IR | 机器相关 IR |
4.2 控制与数据流
|-----------|--------------------|----------|
| 缩略语 | 全称 | 说明 |
| CFG | Control Flow Graph | 控制流图 |
| DFG | Data Flow Graph | 数据流图 |
| PHI | PHI Node | SSA 合流节点 |
| BB | Basic Block | 基本块 |
| Dominator | Dominator Tree | 支配树 |
五、优化(Optimization)相关缩略语
5.1 常见优化技术
|-----------|----------------------------------|----------|
| 缩略语 | 全称 | 说明 |
| DCE | Dead Code Elimination | 死代码消除 |
| CSE | Common Subexpression Elimination | 公共子表达式 |
| LICM | Loop Invariant Code Motion | 循环不变代码外提 |
| SROA | Scalar Replacement of Aggregates | 标量替换 |
| Inlining | Function Inlining | 内联 |
| Unroll | Loop Unrolling | 循环展开 |
| Vectorize | Vectorization | 向量化 |
5.2 架构相关优化
|---------|----------------------------------|--------|
| 缩略语 | 全称 | 说明 |
| ILP | Instruction Level Parallelism | 指令级并行 |
| SIMD | Single Instruction Multiple Data | 向量化 |
| PGO | Profile Guided Optimization | 配置引导优化 |
| BOLT | Binary Optimization | 二进制级优化 |
| AutoVec | Auto Vectorization | 自动向量化 |
六、后端(Backend)与代码生成
6.1 代码生成流程
|------------|------------------------|-------|
| 缩略语 | 全称 | 说明 |
| ISel | Instruction Selection | 指令选择 |
| RA | Register Allocation | 寄存器分配 |
| Scheduling | Instruction Scheduling | 指令调度 |
| Peephole | Peephole Optimization | 窗口优化 |
| MC | Machine Code | 机器码 |
6.2 汇编与目标格式
|--------|--------------------------------|---------|
| 缩略语 | 全称 | 说明 |
| ASM | Assembly | 汇编 |
| ELF | Executable and Linkable Format | 可执行格式 |
| COFF | Common Object File Format | Windows |
| Mach-O | Mach Object | macOS |
| DWARF | DWARF | 调试信息格式 |
七、链接、加载与运行时
7.1 链接相关
|-------|-------------------------|----------|
| 缩略语 | 全称 | 说明 |
| LD | Linker | 链接器 |
| LLD | LLVM Linker | LLVM 链接器 |
| BFD | Binary File Descriptor | GNU 后端 |
| PLT | Procedure Linkage Table | 过程链接表 |
| GOT | Global Offset Table | 全局偏移表 |
| RELRO | Relocation Read-Only | 安全机制 |
7.2 运行时支持
|------|----------------------|--------|
| 缩略语 | 全称 | 说明 |
| CRT | C Runtime | C 运行时 |
| libc | C Standard Library | C 标准库 |
| ABI | ABI | 二进制接口 |
| TLS | Thread Local Storage | 线程局部存储 |
| EH | Exception Handling | 异常处理 |
八、调试、分析与工具
8.1 调试相关
|-------|------------------------------|----------|
| 缩略语 | 全称 | 说明 |
| GDB | GNU Debugger | 调试器 |
| LLDB | LLVM Debugger | LLVM 调试器 |
| DWARF | DWARF Debug Info | 调试信息 |
| ASan | Address Sanitizer | 内存检测 |
| TSan | Thread Sanitizer | 线程检测 |
| UBSan | Undefined Behavior Sanitizer | 未定义行为 |
8.2 静态与动态分析
|---------|-------------------------|---------|
| 缩略语 | 全称 | 说明 |
| LTO | Link Time Optimization | 链接期优化 |
| ThinLTO | ThinLTO | 分布式 LTO |
| SCA | Static Code Analysis | 静态分析 |
| DSA | Dynamic Static Analysis | 动态分析 |
九、现代趋势与前沿方向
|------------|-------------------------------|------------|
| 缩略语 | 全称 | 说明 |
| MLIR | Multi-Level IR | 多层 IR |
| CIR | C Intermediate Representation | Clang 新 IR |
| WASM | WebAssembly | Web IR |
| eBPF | Extended BPF | 内核 IR |
| Polyhedral | Polyhedral Model | 多面体优化 |
| JIT | Just-In-Time | 动态编译 |