
\section*{Intermediate form}

The Adhoc language is a human-readable rendering of an intermediate
form for HPF.  It is modelled on C++.
\begin{verbatim}
      REAL A (10, 10)
!HPF$ DISTRIBUTE A (BLOCK, BLOCK)
      REAL B (10)
!HPF$ ALIGN B WITH A ( : , *)

      FORALL (I = 1 : 10, J = 1 : 10)
        A (I, J) = B (I) + FUN (J)
      END FORALL
\end{verbatim}
becomes
\begin{verbatim}
  range i_a(10 #blk p_1) ;
  range j_a(10 #blk p_2) ;
  array float a(i_a, j_a) ;
  array float b(i_a) ;

  where(i_a)
    where(j_a)
      a = b + fun(j_a) ;
\end{verbatim}
assuming the obvious mapping of computation.

