Smith normal form



I want to compute the smith normal form of matrices over Rings like
Z[a,b,c], Z[q,q^-1].

Maple, Mathematica does it for K[x], K=R or Z_p.

Suggestions?

Thanks in advance,

Martin Rubey