Psi, the Indexing Function: a basis for FFP with arrays

An array of arbitary components can be viewed as a variable whose value is a function from subscripts into its components[17]. The subscripts(or indices) of a 1-dimensional array are related to the system of integers, more precisely the natural numbers, which play an important role in the theory of groups. A Mathematics of Arrays(MOA)[13]_builds upon these ideas to construct permutation and transformation groups into a calculus of n-dimensional arrays with the Psi function as the fundamental building block. We propose that this calculus provide a basis for Formal Functional Programming(FFP)[2]_with arrays for parallel architectures.

[1]  Timothy Budd,et al.  An APL Compiler , 1987, Springer New York.

[2]  J. J. Sylvester,et al.  Lectures on the Principles of Universal Algebra , 1883 .

[3]  Loren P. Meissner Fortran 8X draft , 1989, FORF.

[4]  Arthur Cayley,et al.  II. A memoir on the theory of matrices , 1858, Philosophical Transactions of the Royal Society of London.

[5]  Kenneth E. Iverson,et al.  A programming language , 1899, AIEE-IRE '62 (Spring).

[6]  Guy E. Blelloch,et al.  Scans as Primitive Parallel Operations , 1989, ICPP.

[7]  Alan J. Perlis,et al.  FAC: A Functional APL Language , 1986, IEEE Software.

[8]  Susan Lucille Gerhart,et al.  Verification of apl-programs. , 1972 .

[9]  C. A. R. Hoare,et al.  An axiomatic basis for computer programming , 1969, CACM.

[10]  John W. Backus,et al.  Can programming be liberated from the von Neumann style?: a functional style and its algebra of programs , 1978, CACM.

[11]  John C. Reynolds,et al.  Reasoning about arrays , 1979, CACM.

[12]  Philip S. Abrams,et al.  An APL machine , 1970 .