Iterating the syz command yields a free resolution of a module or ideal. SINGULAR does this if the res or mres command is used.
Another algorithm due to Schreyer is presented in [S]. It will be used by the sres command.
For a comparision of these algorithms see [GG].
SINGULAR example:
ring r=0,(x,y,z),dp; ideal I=x,y,z; list Ir=res(I,0); // print the results: Ir; list Im=mres(I,0); // print the results: Im; list Is=sres(std(I),0); // print the results: Is;