Решение этой проблемы

Решение этой проблемы заключается в использовании обобщенной схемы, в которую можно эффективно отображать большинство элементов, а именно непрерывного пространства памяти. Пользователю разрешается заносить в стек и исключать из него все элементы, которые могут быть отображены на непрерывное пространство памяти или «оболочку». Такое обобщение требует выполнения отображения средствами, превышающими возможности языка, и с трудом (если вообще возможно) осуществимо с помощью языков ограниченных возможностей типа Алгола или Паскаля. Другие языки, такие как ПЛ/1 или даже Фортран, обладают гораздо большей гибкостью и допускают относительно простую реализацию таких отображений. Стековая машина фактически должна иметь дело нес объектами, помещенными в стек, а с ресурсами (пространством памяти), представляющими эти объекты. В языке ПЛ/1 имеются две возможности, которые предназначены для отображения элементов в непрерывное пространство памяти: с помощью строк типа CHARACTER и данных типа AREA. Отображение вне уровня языка для ЭВМ с байтовой организацией памяти в соответствии выглядело бы следующим образом: Программа, вызывающая стековую машину, должна была бы выполнить это отображение и передать стековой машине длину области памяти (в языке ПЛ/1 для этой цели можно воспользоваться встроенной функцией CURRENTSTORAGE, указывающей в байтах длину области памяти, соответствующую пространству памяти, описанному на уровне языка как CHARACTER) и адрес ее первого байта (который в языке ПЛ/1 может быть получен с помощью функции ADDR).

Releated Post

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

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

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