A feature of language design in which constructs can be embedded within instances of themselves, e.g. nested loops:
Nesting of blocks in block-structured languages provides an elegant, though not entirely practicable, control over the scope of identifiers, since identifiers are local to the innermost level of nesting at which they are declared.