Сборка мусора
Как только определено множество недостижимых объектов, сборщик мусора может освободить память, занимаемую ими, и оставить остальное как есть. Также можно после освобождения памяти переместить все или часть оставшихся объектов в другие области памяти, обновив вместе с этим все ссылки на них. Эти два варианта реализации называются, соответственно, "неперемещающим" и "перемещающим".
Проблема фунарга
Решением проблемы восходящих фунаргов является размещение кадра стека в куче, вместо стека вызовов, полагаясь на какую-нибудь разновидность сборки мусора, которая обеспечит освобождение ресурсов, занимаемых кадрами стеков, когда они более не нужны. Работа с кадрами стеков, размещенными в куче, гораздо менее эффективна чем на стеке, поэтому такая стратегия может существенно снизить производительность.