Внимательный исследователь может сделать еще одно наблюдение, и оно имеет отношение к походу Яна в продуктовый магазин. Давайте поговорим об этом.
В информационных технологиях есть много способов хранения набора данных. Мы рассмотрели основные способы на примере массива разнопарных носков. Затем во второй сцене мы увидели, как массив может максимизировать какое-либо качество, а именно – возможность поиска путем сортировки контента. Вспомните отсортированные в нужном порядке рубашки на вешалках. Именно это делают структуры данных, или абстрактные типы данных, как их иногда называют. Они повышают значение одного или нескольких свойств, которые нас интересуют, обычно за счет других, не столь важных для нас. Пример: безопасность и удобство работы. Приложение, которое запрашивает у вас пароль каждый раз, когда вы нажимаете на кнопку, возможно, гарантирует большую безопасность, но оно менее удобно в использовании.
Структура, которая, на мой взгляд, заслуживает внимания, известна под именем стек. Стек выводит на первый план качество предмета, который находится сверху, независимо от того, сколько позиций расположено ниже. Так, увидев в кафе стопку газет, вы возьмете просматривать только верхнюю, потому что знаете, что она свежая, а вас интересуют самые последние новости. Точно так же и со стеками: нас интересует то, что находится на самом верху.
В случае с Яном его когнитивный стек состоит из продуктов, которые закончились у него дома. Когда в верхней позиции оказывается «Кит-Кат», Ян решает пойти в магазин и очистить верх стека. Таким образом он постоянно убирает верхние элементы, пока весь стек не очистится. Закончившийся «Кит-Кат» становится триггером для начала очистки стека. До наступления этого момента Ян может спокойно добавлять другие позиции в список и заниматься своими делами.
Наше воспоминание о скетче в исполнении двух Ронни тоже здесь к месту. Оно позволяет владельцу магазина построить воображаемый стек, возможно, по одному для каждого ряда полок, чтобы не лазать вверх и вниз по лестнице много раз. Если бы клиент прочитал весь список нужных товаров, владелец построил бы свои стеки, исходя из расположения полок, создавая позиции для стека каждого ряда.
В 1946 году Алан Тюринг опубликовал научную статью, где представил концепцию стека, используя термин «закапывание». Как отмечает Эндрю Ходжес, автор биографии Тюринга, идея оказалась новостью для фон Неймана. Вот небольшая выдержка из работы Тюринга: