This thesis describes the design of a language to support a mathematics-oriented symbolic algebra system. The language, which we have named NEWSPEAK, permits the complex interrelations of mathematical types, such as rings, fields and polynomials to be described. Functions can be written over the most general type that has the required operations and properties and then inherited by subtypes. All function calls are generic, with most function resolution done at compile time. Newspeak is type-safe, yet permits runtime creation of types.