Yacas is an easy to use, general purpose Computer Algebra System, a program for symbolic manipulation of mathematical expressions. It uses its own programming language designed for symbolic as well as arbitrary-precision numerical computations. The system has a library of scripts that implement many of the symbolic algebra operations; new algorithms can be easily added to the library.
Interested? Have a look at screenshots to see how it actually looks like.
Yacas comes with extensive documentation covering the scripting language, implemented functionality and the algorithms used.