A tranSformation applied to functional programS to replace recurSion with iteration. A tail-recurSive function can be compiled to an iterative loop where the recurSive call becomeS a jump back to the Start and the parameterS are held in regiSterS which are updated with new valueS each time around the loop. See Iteration, Tail recurSion optimiSation.