Здравствуйте!
Недавно узнал, что существует такое свойство реализации языка, как хвостовая рекурсия, которое заключается в том, что даже если процесс описывается рекурсивной процедурой, он будет выполняться как итеративный процесс, используя фиксированный объём памяти. Но я не смог найти соответствующий алгоритм преобразования для императивных программ (линейно рекурсивная -> линейно итеративная), может быть кто-нибудь может поделиться ссылками или ещё чем-нибудь.