block-structured languages

views updated

block-structured languages A class of high-level languages in which a program is made up of blocks – which may include nested blocks as components, such nesting being repeated to any depth. A block consists of a sequence of statements and/or blocks, preceded by declarations of variables. Variables declared at the head of a block are visible throughout the block and any nested blocks, unless a variable of the same name is declared at the head of an inner block. In this case the new declaration is effective throughout the inner block, and the outer declaration becomes effective again at the end of the inner block. Variables are said to have nested scopes.

The concept of block structure was introduced in the Algol family of languages, and block-structured languages are sometimes described as Algol-like. The concept of nested scopes implicit in block structure contrasts with Fortran, where variables are either local to a program unit (subroutine) or global to several program units if declared to be COMMON. Both of these contrast with Cobol, where all data items are visible throughout the entire program.