За изпълнение на контрола на целостта на структурата "купчина" по време на разпределението на паметта
Операторите за разпределение на купчина и освобождаване са широко използвани езикови функции, заедно с задания, условия и други подобни. През последните десетилетия се наблюдава тенденция към усложняване на изпълнението на тези оператори, което е свързано с опити по принцип да се изключи възможността програмист да наруши вътрешната структура на „купчината“ в резултат на грешни действия, когато е изрично разпределяне и освобождаване на памет в програмата. В някои езици програмистът вече не може сам да разпредели изрично паметта и за да я освободи от ненужни обекти се използва вградено събиране на боклук. Цената за такова увеличение на надеждността обаче е намаляване на ефективността на разпределението на паметта, усложнение на вътрешните структури и ниска предсказуемост на времето за реакция в програмата поради нередовната работа на „събирача на боклука“ [1].
В продължение на много години авторът на статията използва системата за програмиране на езика PL/1 [2], която прилага най-простата и най-малко надеждна схема за управление на паметта, която почти изцяло прави програмиста отговорен за правилното разпределение и освобождаване на паметта. В реални проекти, особено големи, грешките в управлението на паметта се появиха и се оказаха много болезнени, тъй като бяха трудни за диагностициране. Но от друга страна, поради това не исках да се отказвам от безплатното манипулиране на паметта в програмата, което позволява удобно и ефективно решаване на възложените задачи. Компромисът беше намерен в добавянето към вградения в езика апарат за управление на паметта прости средства за наблюдение на целостта на вътрешната структура на "купчината". Такива инструменти дадоха възможност непрекъснато да проверяват дали няма нарушения при разпределението на паметта и по друг начин да докладват за това със сигнал за грешка. В процеса на контрол информацията стана достъпна, което позволява да се определи местоположението на нарушението и следователно често неговата причина.
Организация на "купчината" в разглежданата система за програмиране
Такава проста и редовна структура на "купчината" ви позволява ефективно да прилагате разпределението и освобождаването на паметта, а също така улеснява контрола на целостта на "купчината", например стойностите на всички препратки към блокове в списъка трябва да отиде във възходящ ред.