Besides element type and values, a multidimensional array is characterized by the number of axes (rank) and their respective lengths (shape vector). Both properties are essential to do bound checking and to compute linear offsets into heap memory at run time. In order to have an array's rank and shape available at any time during program execution both are typically kept in an array descriptor that is maintained at run time in addition to the array itself. In this paper, we propose a different approach: we treat array rank and shape as first-class citizens themselves. Firstly, we use dependent types to reflect structural properties of arrays in the type system. Secondly, we annotate a program with the array explicit array properties whereve...
Abstract. Dependent types are useful for statically checking detailed specifications of programs and...
The mechanism for declaring datatypes in functional programming languages such as ML and Haskell is ...
The automatic transformation of sequential programs for efficient execution on parallel computers in...
Besides element type and values, a multidimensional array is characterized by the number of axes (ra...
The array programming paradigm adopts multidimensional arrays as the fundamental data structures of ...
The array programming paradigm adopts multidimensional arrays as the fundamental data structures of ...
AbstractThe array programming paradigm adopts multidimensional arrays as the fundamental data struct...
Most of the existing high-level array processing languages support a fixed set of pre-defined array ...
Generic array programming abstracts from structural properties of arrays, such as rank (number of ax...
Array programming is characterised by a formal calculus of (regular, dense) multidimensional arrays ...
AbstractPast work on the semantics of vectors and arrays provides a denotational semantics for the n...
SAC (Single Assignment C) is a purely functional (data-parallel) array programming language [6, 2]. ...
Shape theory provides a framework for the study of data types in which shape and data can be manipul...
The ability to describe array expressions in terms of the shapes of their arguments and the symbolic...
Existing array region representation techniques are sensitive to the complexity of array subscripts....
Abstract. Dependent types are useful for statically checking detailed specifications of programs and...
The mechanism for declaring datatypes in functional programming languages such as ML and Haskell is ...
The automatic transformation of sequential programs for efficient execution on parallel computers in...
Besides element type and values, a multidimensional array is characterized by the number of axes (ra...
The array programming paradigm adopts multidimensional arrays as the fundamental data structures of ...
The array programming paradigm adopts multidimensional arrays as the fundamental data structures of ...
AbstractThe array programming paradigm adopts multidimensional arrays as the fundamental data struct...
Most of the existing high-level array processing languages support a fixed set of pre-defined array ...
Generic array programming abstracts from structural properties of arrays, such as rank (number of ax...
Array programming is characterised by a formal calculus of (regular, dense) multidimensional arrays ...
AbstractPast work on the semantics of vectors and arrays provides a denotational semantics for the n...
SAC (Single Assignment C) is a purely functional (data-parallel) array programming language [6, 2]. ...
Shape theory provides a framework for the study of data types in which shape and data can be manipul...
The ability to describe array expressions in terms of the shapes of their arguments and the symbolic...
Existing array region representation techniques are sensitive to the complexity of array subscripts....
Abstract. Dependent types are useful for statically checking detailed specifications of programs and...
The mechanism for declaring datatypes in functional programming languages such as ML and Haskell is ...
The automatic transformation of sequential programs for efficient execution on parallel computers in...