在编译原理与程序分析中,basic block(基本块)指一段顺序执行的指令序列:只有一个入口(从第一条指令进入),也只有一个出口(从最后一条指令离开)。在基本块内部通常没有分支跳转(除非在末尾),因此适合做控制流分析与优化。该术语在别的领域也可能有引申用法,但最常见的是编译器与控制流图(CFG)语境。
/ˈbeɪsɪk blɑːk/(美式常见)
/ˈbeɪsɪk blɒk/(英式常见)
The compiler splits the function into basic blocks.
编译器把这个函数拆分成若干个基本块。
After building the control-flow graph, we can run data-flow analysis on each basic block to enable optimizations like constant propagation.
构建控制流图之后,我们可以对每个基本块进行数据流分析,从而实现常量传播等优化。
basic 来自希腊语词根 basis(“基础、底座”),经由拉丁语与法语进入英语,含义为“基本的、基础的”。block 原意为“木块、块状物”,在计算与工程语境中常引申为“一个整体单元”。合在一起,basic block 字面即“基础的块/单元”,强调它是控制流与优化分析中的最小(或关键)结构单元之一。