a linear sequence of basic blocks that has a single entry point only
a sequence of instructions in which control may only enter at the top, but may leave at one or more exit points
a single entry, multiple exit path of basic blocks through a function which are combined into a single control flow block