Programming with algebraic structures: design of the MAGMA language

MAGMA is a new software system for computational algebra, number theory and geometry whose design is centred on the concept of algebraic structure (magma). The use of algebraic structure as a design paradigm provides a natural strong typing mechanism. Further, structures and their morphisms appear in the language as first class objects. Standard mathematical notions are used for the basic data types. The result is a powerful, clean language which deals with objects in a mathematically rigorous manner. The conceptual and implementation ideas behind MAGMA will be examined in this paper. This conceptual base differs significantly from those underlying other computer algebra systems.