\documentstyle{csart}

\newenvironment{linear}{\\ \begin{minipage}[t]{\textwidth}}{\end{minipage}}
% Prevents body from being split between pages.  Can't be used at start
% of a paragraph, irritatingly.

\begin{document}

\sloppy

\pagestyle{empty}

%\title{}

%\author{D.B. Carpenter}
%\address{Department of Electronics and Computer Science, \\
%         Southampton University, \\
%         Southampton, S09 5NH} 

\maketitle

%\newpage

%\tableofcontents
%\listoftables

%\newpage

\setcounter{page}{1}
\pagestyle{plain}


\section{Ranges}

     The existing specification of ``DAP occam'' doesn't support any
concept of ranges (or sub-ranges) of indicies.  To treat these
satisfactorily I have to make a fairly substantial modification
to the syntax of the language, and to a lesser extent, to the
semantics.

     The principle modification is the introduction of a new kind
of object, called a ``range''.  A rank is no longer a set of
indicies, instead it is a set of ranges.  In particular a range
abstracts the size property of an index.  The index itself has
no intrinsic size, and merely embodies a direction in the grid.
In this case ``level I'' implementation no longer has much meaning,
since at that level the size of an index has an immediate implication
for the size of the process grid.  The fact that the language loses
one of its natural implementations is worrying, and suggests that
I'm throwing away something deep.  But I think a dialect with
ranges is probably going to be a practical necessity.

     Some syntax\dots
\begin{linear}
\begin{verbatim}

     INDEX x :          -- No longer has a dimension

     RANGE OF x r IS [x FROM 0 FOR n] :

\end{verbatim}
\end{linear}

     Do I really need to go to this extreme?  Why not just keep indicies
as objects sized in an array-like way, and use ranges as an abbreviation
for slices.  A range specifier always includes the index of which it
is a subrange.  The dimension on an index declaration is optional---so
an index {\em can} be assumed size but doesn't have to be.  Ranks
are mixed sets of indicies and ranges, and no rank can include
more than one instance of or \verb$RANGE OF$ any single index.
The old language is a proper subset of the extended one.

\end{document}

