Array References in Pascal
Pascal uses row-major order, making array declarations and references easy to process.
For array declarations,
array[i..j,k..l] of type
is equivalent to:
array[i..j] of array[k..l] of type
These declarations are reduced starting at the right, so that each
reduction is of the form:
array[...] of type
where type has been completely processed and has a known size.
For array references,
a[i,j]
is equivalent to:
a[i][j]
These references are processed left-to-right, so that a[i]
is done first, yielding code for a[i] and a type that is
an array type; then [j] is processed relative to that array type.
Using these conventions, arrays with multiple dimensions are handled in the same way as singly-dimensioned arrays.