Keywords: pame

# Ranges

If you cast your mind back to the form of an Algol 68 program, you will remember that it consists of a number of phrases enclosed by `BEGIN` and `END` (or parentheses) preceded by a `PROGRAM` phrase with an optional `USE` phrase. The part of the program enclosed by `BEGIN` and `END` (including the `BEGIN` and `END`) is called a closed clause. The important point here is that a closed clause consists of one or more phrases separated by semicolons`;` (the last phrase being a unit), surrounded by parentheses (or `BEGIN` and `END`). Since a declaration is not a unit, the last phrase cannot be a declaration. We say that the value of a closed clause is the value yielded by the final unit. As an example, here is a closed clause with a value of mode `INT`:

       BEGIN
          INT i = 43;
          print((i,newline));
          i
       END

An important adjunct of a closed clause is that any identifiers declared in the clause do not exist outside the clause. We say that the range of an identifier is confined to that section of the closed clause from its declaration to the end of the clause.