HPJava is conceived as a parallel programming language extended from, and fully compatible, with, Java--perhaps the most modern programming language in widescale use at the time of writing. It imports language constructs from Fortran 90 and High Performance Fortran that are believed to be important to support effective scientific programming of massively parallel computers.
HPJava is an instance of what we call the HPspmd model: it is not exactly a high-level parallel programming language in the ordinary sense, but rather a tool to assist parallel programmers in writing SPMD code. In this respect the closest recent language we are familiar with is probably F- , but HPJava and F- have many obvious differences.
Parallel programming aside, HPJava is also one of several recent efforts to put ``scientific'', Fortran-like arrays into Java. At meetings of the Java Grande Forum, for example, this has been identified as an important requirement for wider deployment of scientific software in Java. Work at IBM over the last few years [10,9,12,16] has been particularly influential in this area, leading to a JSR (Java Specification Request) for standardized scientific array classes. The approach taken in HPJava--using a preprocessor to break arrays into components rather than introducing multidimensional array classes as such--is somewhat different. For us the preprocessor approach was essentially mandated by the proliferation of distinct distributed array types in our model. Generating the large number of array classes that would be needed seems to be impractical. In recent talks the IBM group have also discussed comparable approaches for sequential multiarrays without introducing specific array classes .