Пред.
След.
Макеты страниц
Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO
1.4. МОДЕЛЬ С ХРАНИМОЙ ПРОГРАММОЙПоскольку РАМ-программа не хранится в памяти РАМ, она не может изменять себя. Сейчас мы рассмотрим другую модель вычислительной машины, называемую машиной с произвольным доступом к памяти и хранимой программой (или, иначе, равнодоступной адресной машиной с хранимой программой — сокращенно РАСП), которая отличается от РАМ лишь тем, что ее программа находится в памяти и может изменять себя. Набор команд для РАСП совпадает с соответствующим набором для РАМ во всем, кроме косвенной адресации, которая исключена, ибо она не нужна. Мы увидим, что РАСП может моделировать косвенную адресацию путем изменения команд в процессе выполнения программы. Общая структура РАСП также подобна структуре РАМ, но только предполагается, что РАСП-программа находится в регистрах памяти. Каждая РАСП-команда занимает два последовательных регистра памяти. Первый регистр содержит код операции, второй — адрес. Если адрес имеет вид Так же как для РАМ, состояние РАСП можно представить с помощью 1) отображения памяти с, где 2) счетчика команд, указывающего первый из двух последовательных регистров памяти, из которых надлежит взять текущую команду. Вначале счетчик команд устанавливается на некоторый выделенный регистр. Обычно исходное содержимое регистров памяти не состоит из одних нулей, так как в память уже введена программа. Однако мы требуем, чтобы вначале все регистры, кроме конечного числа, содержали 0, и чтобы сумматор также содержал 0. После выполнения каждой команды счетчик команд всегда увеличивается на 2, кроме случаев Временную сложность РАСП-программы можно определить, по существу, тем же способом, что и для РАМ-программы. Можно использовать либо равномерный весовой критерий, либо логарифмический. В последнем случае, однако, надо приписать вес не только
Рис. 1.12. Коды для команд РАСП. вычислению операнда, но и выбору самой команды. Вес выбора команды равен Интересно узнать, какова разница в сложности между РАМ-программой и соответствующей РАСП-программой. Ответ не будет неожиданным. Независимо от того, взят ли равномерный вес или логарифмический, любое отображение типа вход — выход, выполнимое за время Сформулируем эти соотношения в виде двух теорем. Обе теоремы доказываются построением алгоритмов, моделирующих одну машину другой. Теорема 1.1. Как при равномерном, так и при логарифмическом весе команд для любой Доказательство. Покажем, как моделировать РАМ-программу некоторой РАСП-программой. Регистр 1 в РАСП будет служить для временного запоминания содержимого сумматора РАМ. Отправляясь от Каждая РАМ-команда в Проиллюстрируем моделирование косвенной адресации на примере. Для моделирования РАМ-команды 1) временно запоминают содержимое сумматора в регистре 1, 2) вызывают содержимое регистра 3) прибавляют 4) запоминают число, вычисленное на шаге 3 в адресном поле команды 5) восстанавливают сумматор из временного регистра 1, 6) используют команду Например, применяя кодирование команд РАСП, приведенное на рис. 1.12, и предполагая, что последовательность РАСП-команд начинается в регистре 100, можно смоделировать Мы видим, что для моделирования каждой РАМ-команды требуется самое большее шесть РАСП-команд, так что при равномерном весовом критерии временная сложность получаемой РАСП-программы не превосходит При логарифмическом весовом критерии каждая команда
Рис. 1.13. Моделирование Например, команда
Последовательность
Рис. 1.14. Веса команд РАСП. разумеется, не превосходит
Поэтому можно заключить, что постоянная Теорема 1.2. Как при равномерном, так и при логарифмическом весе команд для любой РАСП-программы с временной сложностью Доказательство. РАМ-программа, которую мы построим для моделирования данной РАСП, будет использовать косвенную адресацию для декодирования и моделирования РАСП-команд, хранящихся в памяти РАМ. Некоторые регистры РАМ будут иметь специальное назначение: регистр 1 — для косвенной адресации, регистр 2 — для счетчика команд РАСП, регистр 3 — для хранения содержимого сумматора РАСП. РАСП-регистр с номером Искомая РАМ начинает работу с РАСП-программы конечной длины, расположенной в ее памяти с регистра 4 и далее. Регистр 2 (счетчик команд) содержит число 4; регистры 1 и 3 — число 0. РАМ-программа состоит из цикла моделирования, начинающегося со считывания РАСП-команды (с помощью РАМ-команды Операции декодирования и разветвления строятся естественным образом; моделью может служить пример 1.2 (хотя символ, декодируемый там, был считан со входа, а здесь он считывается из памяти). В качестве примера приведем те команды РАМ, которые моделируют РАСП-команду с кодом 6, т. е. Дальнейшие детали построения нужной РАМ-программы мы опускаем. В качестве упражнения предлагаем доказать, что при равномерном и логарифмическом весовых критериях временная сложность РАМ-программы самое большее в постоянное число раз превосходит временную сложность исходной РАСП-программы. Рис. 1.15. (см. скан) Моделирование Из теорем 1.1 и 1.2 следует, что в отношении временной сложности (а также и емкостной — это остается в качестве упражнения) модели РАМ и
|
1 |
Оглавление
|