1. A method of creating a schedule for transposing an array structure of one or more dimensions in a hierarchical computer memory, the method comprising: constructing a representation of the array structure; permuting the representation according to a permutation; tiling the permuted representation based on one or more attributes of a target memory architecture; and repeating the above steps until the representation describes a desired rearrangement of the array structure.