- procedural programming relies heavily on blocks and scope
- imperative programming as a whole may or may not have such features
As such, procedural languages generally use reserved words that act on blocks, such as if, while, and for, to implement control flow, whereas non-structured imperative languages use goto statements and branch tables for the same purpose