Разработка стековой машины

Задача представления сохраняемых стеков аналогична задаче представления элементов с неизвестной еще структурой. В этом случае представление стека должно быть передано процессу более высокого уровня (вызывающему процессу), который не должен ничего делать с содержимым стека. Следовательно, вызывающий процесс не нуждается в информации о схеме стека. Точно так же, как и в случае с элементами стека, представление стека отображается в непрерывное пространство памяти (например, с помощью указателя STRUCTURE языка ПЛ/1), содержащее представление стека и дополнительную информацию (данные о размерах, идентификации, разработчике и заказчике) . Будем называть такое представление «оболочкой» по аналогии с конвертом, являющимся «оболочкой» письма (информацией, составляющей содержание схемы) кому-либо (или самому себе), содержание которого остается неизвестным почтовым службам. Каково представление стека? Стек является представлением процесса работы со стеком. Для реализации стека выбрана списковая структура. Альтернативным вариантом мог бы служить массив; однако при изменяющихся потребностях в пространстве оперативной памяти список обеспечивает более экономное его использование. Возникает вопрос, нужно ли с самого начала учитывать, что стеки, воз-» можно, будут сохраняться в форме оболочки? Это могло бы означать, что необходимость в заключении стека в оболочку возникала бы не только при его сохранении и восстановлении, но и то, что он должен быть реализован в оболочке независимо от того, требуется ли его сохранение или нет. Ответить на этот вопрос нельзя только на основе рассмотрения функциональных аспектов. Необходимо рассмотреть ресурсы (здесь труд, затраченный на разработку структуры данных, потребности в, памяти и ресурсах процессора). Для уменьшения трудоемкости разработки как для сохраняемых, так и для несохраняемых стеков, будем использовать одно и то же представление стеков. В реальных ситуациях могут быть приняты и другие решения.

Releated Post

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.