The Free On-line Dictionary of Computing (30 December 2018):
tail recursion optimisation
TRO
(TRO) Discarding the calling environment (call
stack frame) when the last thing a function or procedure
does is to call itself. This is important when a procedure
calls itself recursively many times since, without tail
recursion optimisation, the environments of earlier
invocations would fill up the memory only to be discarded when
(if) the last call terminated.
Tail recursion optimisation is a special case of last call
optimisation but it allows the further optimisation that some
arguments may be passed in situ, possibly in registers. It
allows recursive functions to be compiled into iterative
loops.
See also conversion to iteration, tail recursion modulo
cons.
(2006-04-16)