Principles of programming languages: design, evaluation, and implementation (2nd ed.)
Principles of programming languages: design, evaluation, and implementation (2nd ed.)
Achieving speedups for APL on an SIMD distributed memory machine
International Journal of Parallel Programming
Efficient run-time support for irregular block-structured applications
Journal of Parallel and Distributed Computing - Special issue on irregular problems in supercomputing applications
A programmer's guide to ZPL
Proceedings of the 6th International Workshop on Languages and Compilers for Parallel Computing
FALCON: A MATLAB Interactive Restructuring Compiler
LCPC '95 Proceedings of the 8th International Workshop on Languages and Compilers for Parallel Computing
IFL '96 Selected Papers from the 8th International Workshop on Implementation of Functional Languages
ZPL's WYSIWYG Performance Model
HIPS '98 Proceedings of the High-Level Parallel Programming Models and Supportive Environments
A programming language
ZPL: A Machine Independent Programming Language for Parallel Computers
IEEE Transactions on Software Engineering - Special issue on architecture-independent languages and software tools for parallel processing
Array language support for parallel sparse computation
ICS '01 Proceedings of the 15th international conference on Supercomputing
Porting the parallel array programming language ZPL to an embedded multicomputing system
APL '02 Proceedings of the 2002 conference on APL: array processing languages: lore, problems, and applications
High-level Language Support for User-defined Reductions
The Journal of Supercomputing
Pipelining Wavefront Computations: Experiences and Performance
IPDPS '00 Proceedings of the 15 IPDPS 2000 Workshops on Parallel and Distributed Processing
Language Support for Pipelining Wavefront Computations
LCPC '99 Proceedings of the 12th International Workshop on Languages and Compilers for Parallel Computing
Simulation of a cellular landslide model with CAMELOT on high performance computers
Parallel Computing - Special issue: High performance computing with geographical data
SAC: a functional array language for efficient multi-threaded execution
International Journal of Parallel Programming
Parallel Programmability and the Chapel Language
International Journal of High Performance Computing Applications
Hi-index | 0.00 |
Most array languages, including Fortran 90, Matlab, and APL, provide support for referencing arrays by extending the traditional array subscripting construct found in scalar languages. We present an alternative to subscripting that exploits the concept of regions---an index set representation that can be named, manipulated with high-level operators, and syntactically separated from array references. This paper develops the concept of region-based programming and describes its benefits in the context of an idealized array language called RL. We show that regions simplify programming, reduce the likelihood of errors, and enable code reuse. Furthermore, we describe how regions accentuate the locality of array expressions and how this locality is important when targeting parallel computers. We also show how the concepts of region-based programming have been used in ZPL, a fully-implemented practical parallel programming language in use by scientists and engineers. In addition, we contrast region-based programming with the array reference constructs of other array languages.