Any programming language in which sections of source code contained within pairs of matching delimiters such as "" and "" (e.g. in C) or "begin" and "end" (e.g. Algol) are executed as a single unit. A block of code may be the body of a subroutine or function, or it may be controlled by conditional execution (if statement) or repeated execution (while statement, for statement, etc.).
In all but the most primitive block structured languages a variable's scope can be limited to the block in which it is declared.
Block-structured languages support structured programming where each block can be written without detailed knowledge of the inner workings of other blocks, thus allowing a top-down design approach.
See also abstract data type, module.