Abstract

The use of domain specific languages and appropriate software architectures are currently seen as the way to enhance reusability and improve software productivity. Here we outline a use of algebraic software methodologies and advanced program constructors to improve the abstraction level of software for scientific computing. This leads us to the language of coordinate free numerics as an alternative to the traditional coordinate dependent array notation. This provides the backdrop for the three accompanying papers: Coordinate Free Programming of Computational Fluid Dynamics Problems, centered around an example of using coordinate free numerics, Machine and Collection Abstractions for User-Implemented Data-Parallel Programming, exploiting the higher abstraction level when parallelising code, and An Algebraic Programming Style for Numerical Software and its Optimization, looking at high-level transformations enabled by the domain specific programming style.