ACM Transactions on Programming Languages and Systems (TOPLAS)
Recursive data structures in APL
Communications of the ACM
On the criteria to be used in decomposing systems into modules
Communications of the ACM
Compilation and delayed evaluation in APL
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
A Microprogrammed APL Implementation
A Microprogrammed APL Implementation
Experience with an applicative string processing language
POPL '80 Proceedings of the 7th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Software Tools
APL problems with order of execution
ACM SIGAPL APL Quote Quad
Operators in an APL containing nested arrays
ACM SIGAPL APL Quote Quad
APL '75 Proceedings of seventh international conference on APL
The nested rectangular array as a model of data
APL '79 Proceedings of the international conference on APL: part 1
The Dynamic Incremental Compiler of APL\3000
APL '79 Proceedings of the international conference on APL: part 1
Tentative compilation: A design for an APL compiler
APL '79 Proceedings of the international conference on APL: part 1
Programming with idioms in APL
APL '79 Proceedings of the international conference on APL: part 1
Development of an APL standard
APL '79 Proceedings of the international conference on APL: part 2
Uses of general arrays and operators
APL '74 Proceedings of the sixth international conference on APL
A programming language
Hi-index | 0.02 |
The idiomatic APL programming style is limited by the constraints of a rectangular, homogeneous array as a data structure. Non-scalar data is difficult to represent and manipulate, and the non-scalar APL functions have no uniform extension to higher rank arrays. The carrier array is an extension to APL which addresses these limitations while preserving the economical APL style. A carrier array is a ragged array with an associated partition which allows functions to be applied to subarrays in parallel. The primitive functions are given base definitions on scalars and vectors, and they are extended to higher rank arrays by uniform application mechanisms. Carrier arrays also allow the last dimensions of an array to be treated as a single datum; the primitive functions are given extended definitions on scalars and vectors of this non-scalar data.This paper defines the carrier array and gives the accompanying changes to the definitions of the APL primitive functions. Examples of programming with carrier arrays are presented, and implementation issues are discussed.