We have come a long way and introduced many new
ideas, yet all these ideas are based on the primitive
concepts of value,
mode, context,
coercion and phrase. These
concepts are independent of each other, but their combination provides
Algol 68 with a flexibility that few
programming languages possess. For example, if a value of mode
INT
is required, such as in a trimmer or the bounds of
the declaration of a multiple, then any unit which will yield an
integer in that context will suffice. The consequence is that
Algol 68 programs can be written in a wide variety of styles.
Here is a simple example: given the problem of printing the sum of two
numbers read from the keyboard, it could be programmed in two
completely different ways. The conventional solution would be
something like
INT a,b; read((a,b)); print((a+b,newline))
but an equally valid solution is
print(((INT a,b; read((a,b)); a+b),newline))
Provided that what you write is legal Algol 68, you can adopt any approach you please. Orthogonality refers to the independence of the basic concepts in that you can combine them without side-effects.
Another consequence of that independence is that there are very few exceptions to the rules of the language. This makes the language much easier to learn.
Sian Mountbatten 2012-01-19