Basic Blocks
A basic block is a maximal sequence of executable program statements such that when control enters the first statement, it executes all statements in the block in sequence before branching to two or more destination statements outside of the block
The first statement in a basic block is its header