For debate, some suggestions for a Java syntax (ie, class library interface).
I'm trying to incorporate the basic idea of everything being collective operations on array objects. I haven't defined FORALL ``scripts'', but the expression trees suggested here could be regarded as a sort of pre-parsed script. The advantage is that we don't need parsers and symbol tables in the run-time. The disadvantage is that the syntax is quite awkward. This is really a peculiarity of Java (see comments below).
One intention with this interface is that it is sufficiently high-level that it can be implemented in terms of a SIMD-style Java controller for an HPC back-end, or of a pure SPMD parallel Java model.
I'm using my ``Range'' structures because they allow a simple definition of ``conformance'', and they are useful in indexed array expressions, which go some way to replacing FORALL.
Unlike HPF, the notation defined here forces communication operations to be explicitly specified. In that sense it is lower level than HPF--closer to a run-time library.
The syntax is quite awkward in practise. A big problem is still that Java doesn't allow library-defined operator overloading, so expressions quickly become difficult to read.