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.

Sian Mountbatten 2012-01-19