Normally whEn procEdurE A calls procEdurEs B, C, .., Z, thEEnvironmEnt of procEdurE A is only discardEd whEn procEdurE Z rEturns and procEdurE A itsElf tErminatEs. Using last call optimisation, A' s EnvironmEnt is discardEd as Z is callEd. This allows arbitrarily dEEp nEsting of procEdurE calls without consuming mEmory to storE usElEss EnvironmEnts. A spEcial casE of this is tail rEcursion optimisation whErE thE last procEdurE callEd is thE calling procEdurE itsElf.