TY - GEN

T1 - Structured Vectors for Efficient Rank-Generic Array Programs.

AU - Trojahner, K.

AU - Büther, F.

N1 - In Marco T. Morazán (ed.): Draft Proceedings of the 21st International Symposium on Implementation and Application of Functional Languages (IFL 2009), South Orange, NJ, USA, September 23-25, 2009. Technical Report: SHU-TR-CS-2009-09-1, pp. 274-279. Department of Mathematics and Computer Science, Seton Hall University, South Orange, NJ, USA, 2009.

PY - 2009

Y1 - 2009

N2 - A powerful concept found in array programming languages such as SaC [1, 2] or Qube [3, 4] is rank-generic programming: array operations and entire programs can be specified for arrays that may not only vary in size, but even in the number of array axes. As the number of axes is inherently variable, individual array elements cannot be selected with any given number of indices. Instead, a vector of indices of appropriate length must be used. To illustrate the merits of rank-generic programming, we provide an example in our experimental array programming language Qube, that extends an Mlstyle language with array-specific features and dependent types for light-weight verification. The functions add1 and add2 perform element-wise addition on vectors of length n and matrices of shape m × n, respectively.

AB - A powerful concept found in array programming languages such as SaC [1, 2] or Qube [3, 4] is rank-generic programming: array operations and entire programs can be specified for arrays that may not only vary in size, but even in the number of array axes. As the number of axes is inherently variable, individual array elements cannot be selected with any given number of indices. Instead, a vector of indices of appropriate length must be used. To illustrate the merits of rank-generic programming, we provide an example in our experimental array programming language Qube, that extends an Mlstyle language with array-specific features and dependent types for light-weight verification. The functions add1 and add2 perform element-wise addition on vectors of length n and matrices of shape m × n, respectively.

M3 - Other

ER -