Die Deklaration der genannten Programmobjekte erfolgt stets innerhalb eines Blockes, und zwar im Deklarationsteil des Blocks. Es gilt:

Block +---------------------------------------+
| Deklarationsteil |
| |
| --- Deklaration einer Größe --- | I
| | I
| +-----------------------+ | I
| | +------------------+ | | I Gültigkeits-
| | | | | | I
| | +------------------+ | | I
| +-----------------------+ | I bereich der
| | I
+---------------------------------------+ I
| Anweisungsteil | I
| | I Größe
| | I
+---------------------------------------+ I
Beispiel:
Gültigkeit von
bsp proc1 proc2 x y x y y z
----------------------------------------------------------------------------
PROGRAM bsp; *
VAR x, y : INTEGER; * # #
PROCEDURE proc1(x: INTEGER); * * # #
PROCEDURE proc2(y: INTEGER); * * * # #
BEGIN * * * # #
... * * * # #
END; {proc2} * * * # #
VAR y : INTEGER; * * # #
BEGIN * * # #
... * * # #
END; {proc1} * * # #
VAR z : INTEGER; * * # # #
BEGIN * * # # #
... * * # # #
END. * * # # #
----------------------------------------------------------------------------