
Yacas is a small and highly flexible computer algebra language.
The syntax is very close to Mathematica. The distribution contains a small library of mathematical functions, but its real strength is in the language in which you can easily write your own symbolic manipulation algorithms. It supports arbitrary precision arithmetic.