OOLACA: an object oriented library for abstract and computational algebra. Object oriented programming and design patterns introduce a high level of abstraction that allows us to implement and work with mathematical abstractions. We analyze and design an object oriented algebraic library, that allows working not only with concrete algebraic structures, but also with abstract algebraic structures. The advantages of this approach mainly result from the usage of creational design patterns, reflection and dynamic loading, and representation independence. These introduce significant flexibility and abstraction. Using this library, we may work with abstract algebraic structures, such as: groups, rings, fields, etc., define new algebraic structures, and operate with them in abstract and concrete mathematical ways.

This software is also peer reviewed by journal TOMS.