Файл: Трахтенброт, Б. А. Алгоритмы и вычислительные автоматы.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 19.10.2024

Просмотров: 131

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

2. Система трехадресных команд, принятая во

мно­

гих из действующих электронных машин, обусловлена

на­

личием элементарных операций, в которых участвует сразу содержание трех ячеек памяти.

Однако в некоторых электронных машинах

использована

система одноадресных команд,

связанная

с тем,

что

в каждом такте участвует лишь

одна ячейка

памяти.

(Эту

ячейку будем называть обозреваемой ячейкой на данном этапе.) Например, трехадресная команда о сложении чисел

из ячеек р\ у с отправкой результата

в ячейку б может быть

заменена при надлежащих условиях

тремя последователь­

ными командами:

 

 

 

 

а) вызов (в сумматор) числа из ячейки Р,

 

б) вызов числа из ячейки у,

 

 

 

в) отправка результата в ячейку 6.

 

 

В машине Тьюринга

система элементарных

операций

и вместе с нею система

одноадресных команд еще больше

упрощены: на каждом отдельном такте команда

предписы­

вает лишь замену единственного знака sit

хранящегося в обо­

зреваемой ячейке, каким-либо другим

знаком s}.

При j = i

это означает, что содержание обозреваемой ячейки не из­ меняется; при / = 1 это означает, что если в обозреваемой ячейке хранился какой-либо знак, то он гасится. Даль­ нейшее упрощение заключается в том, что при переходе машины от одного такта к непосредственно следующуему такту адрес обозреваемой ячейки может изменяться не бо­ лее, чем на одну единицу, т. е. обозревается соседняя слева или соседняя справа ячейка, или же обозревается та же ячейка, что и в предыдущем такте.

Идея этого упрощения заключается в том, что необхо­ димое для процесса содержание какой-либо отдаленной ячей­ ки отыскивается путем постепенной проверки всех ячеек подряд до тех пор, пока не будет обнаружена нужная ячей­ ка. Разумеется, это очень удлиняет процесс, но вместе с тем возникает следующее удобство: в командах программы вме­ сто произвольных адресов обозреваемых ячеек можно ог­ раничиваться применением всего лишь трех стандартных адресов, которые изображаются специальными знаками:

П — обозревать соседнюю справа ячейку,

Л— обозревать соседнюю слева ячейку.

Н— продолжать обозревать ту же ячейку.

3. Для

обработки числовой

информации, хранящейся

в памяти,

электронная машина,

описанная в § 5,

6, имеет

арифметический блок S, который может пребывать

в одном

70


из конечного числа состоянии: складывающее, вычитаю­ щее и т. д.

Для осуществления какой-либо операции в блок подаются по определенным каналам не только числа, над которыми операции совершаются, но также сигналы, настраивающие блок на соответствующую операцию, т. е. на соответствую­ щее состояние (см. рис. 10, б) В машине Тьюринга обработка информации происходит в логическом блоке, который также может пребывать в одном из конечного числа состояний;

пусть qlt

q2,

 

qm — специальные зна­

ки, введенные для

обозначения этих

со­

стояний. Блок

имеет два

входных

кана­

ла; по одному из них на каждой

стадии

работы машины

(в каждом

такте)

посту­

пает знак

из

обозреваемой

ячейки,

по

другому — знак

ql

того

состояния,

кото­

рое предписывается блоку на данный

такт;

по выходному же

каналу блок посылает

в

обозреваемую

ячейку

соответствующий,

«переработанный»

 

знак

sJt

являющийся

однозначной

функцией

от

сигналов

st,

<7;, поданных на вход. Команды, обу- - словливающие срабатывание машины на каждом отдель­

ном такте, имеют вид: I7qh

JIqL, HqL (/=1,2,

гп), где пер­

вый знак заменяет адрес обозреваемой ячейки

(см. выше),

а второй

предписывает

логическому блоку

надлежащее

состояние. Знаки

П, Л, Н, qlt

qm образуют

внутренний

алфавит

машины.

 

 

 

Специфической

особенностью

машины Тьюринга яв­

ляется то, что на логический блок возлагается также и вы­ работка на каждом данном такте той команды, которая бу­ дет подаваться в блок управления к началу следующего такта. Таким образом, логический блок имеет, кроме ка­ нала для выдачи знака Sj, еще два канала для выдачи двух

знаков

очередной команды. Соответствующая схема дана

на рис.

11. При этом существенным является то, что выход­

ная тройка знаков

Sj, Р, qV зависит исключительно от

того, какая входная

пара знаков siy qn

была подана в том же

такте на входы блока. Это означает,

что логический блок

реализует функцию, сопоставляющую каждой паре знаков

Sj, qn (всего таких пар

km) тройку знаков

Sj, Р,

qt.

Эту '

функцию,

которую мы

будем называть логической

функ-

*) Под Р

подразумевается здесь любой из трех

знаков

П,

Л, И.

71


цией машины, удобно изобразить в виде прямоугольной таблицы, столбцы которой занумерованы знаками состоя­ ний, а строки — знаками внешнего алфавита; в каждой же ячейке таблицы записана соответствующая выходная тройка знаков. Эту таблицу будем называть функциональ­ ной схемой машины; на рис. 12 приводится пример такой схемы.

Из приведенного описания ясно, что работа машины Тью­ ринга вполне определяется той логической функцией, ко­ торую реализует логический блок. Иными словами, две

«>

Чг

Чз

и

is

it

Л

 

 

 

A His

 

1

ос По.г

Iff«г

\Ht

Iff Is

it

06

 

 

<x-ffZs

Л

ипг2

 

 

 

 

 

 

 

 

 

M

 

 

Рис.

12.

 

Рис. 13.

машины Тьюринга с общей функциональной схемой нераз­ личимы, коль скоро мы интересуемся лишь тем, как они работают. С другой стороны, структура машины, состав отдельных ее органов и их взаимодействие можно задать в виде структурной схемы, общей для всех машин Тьюринга (рис. 13).

Вэтой схеме отражено разделение памяти на внешнюю

ивнутреннюю. Внешняя память изображена ячейками бе­ сконечной ленты, предназначенными для хранения инфор­ мации, закодированной в символах внешнего алфавита; внутренняя память—двумя ячейками для хранения очеред­ ной команды: Q-ячейка хранит знак состояния и Р-ячейка — знак сдвига. В этих двух ячейках происходит задержка

знаков Р, qt, полученных на выходе логического блока в дан­ ном такте работы, до начала следующего такта. Из Q-ячейки по так называемой линии обратной связи в логический

блок £ поступает знак состояния qt, выработанный этим же блоком в предыдущем такте. Из Р-ячейки знак сдвига на­ правляется в механизм сдвига.

Логический блок общается с внешней памятью посред­ ством читающей и записывающей головки (называемой

72


впредь просто головкой), в которой вмонтированы один" входной канал (для считывания) и один выходной канал (для записи) логического блока; на рис. 13 головка изобра­ жена треугольником, установленным против «обозревае­ мой» ячейки. Функции управления теперь уже чрезвычай­ но упрощены и заключаются по существу лишь в обеспече­

нии сдвига не более, чем

на

одну ячейку, в соответствии

с поступившим Р-знаком. Знак состояния

можно было бы

фактически подавать из Q-ячейки

прямо в 8,

образуя так

называемую линию обратной

связи, по которой в блок S

поступает знак qit

выработанный в нем же в

предыдущем

такте.

 

 

 

 

 

 

 

8.2.

Функционирование

машины Тьюринга. Работа ма­

шины

Тьюринга

протекает

следующим

образом. Перед

ее запуском на ленту наносится

начальная

информация

(на рис. 13 последовательность из пяти палочек) и в «поле зрения» машины устанавливается определенная начальная ячейка (на чертеже — ячейка, содержащая четвертую спра­ ва палочку), а в ячейки Р и Q вводятся знаки начального состояния и начального сдвига (предположим, ql и Н). Дальнейший процесс протекает уже автоматически и одно­ значным образом определяется функциональной схемой машины. Посмотрим, например, что произойдет в том слу­ чае, когда задана функциональная схема рис. 12.

Пе р в ы й

т а к

т.

Обозревается

знак

| (палочка) из

начальной ячейки (сдвиг Н) при состоянии

qx. Результат:

выходная тройка знаков affq2,

т. е. знак

заменен знаком а,

а в ячейки

Р,

Q послана

на хранение до следующего такта

очередная

команда

Hq2.

 

 

 

из той же ячей­

В т о р о й

т а к т .

Обозревается знак а

ки (сдвиг

Н)

при

состоянии

q2. Выходная

тройка: aI7q2,

т. е. знак а оставляется без изменения с переходом к коман­

де I7q2.

т а к т .

Обозревается палочка

из соседней

Т р е т и й

справа ячейки

(сдвиг

П), при состоянии q2.

Результат:

знак | заменен

знаком

(3 с переходом к команде Hqx и т. д.

Как видно из последнего столбца функциональной схемы рис. 12, остановка машины произойдет лишь при условии, что на некоторой стадии процесса возникнет состояние qb. Действительно, каков бы ни был обозреваемый знак, он не будет заменен никаким другим, и машина будет продол­

жать обозревать его (сдвиг

Н) при том же состоянии q.0.

Это и есть стоп-состояние,

сигнализирующее о результа­

тивном завершении процесса

в том случае, когда машина

73


п р и м е н и м а к информации, поданной

в нее до

запуска.

 

По существу, функциональной схемой может пользовать­

ся и человек-вычислитель для преобразования

исходных

данных, записанных во внешнем алфавите, в соответствую­ щий результат, записанный в том же алфавите. Фактически мы так и поступили с функциональной схемой рис. 12 при переработке слова из пяти палочек, сознавая при этом, что машина Тьюринга сделала бы то же самое.

Для человека-вычислителя функциональная схема пред­ ставляет лишь некоторый стандартный способ задания ал­ горитма, который можно называть тьюринговой программой. Тьюрингова программа—это список всех команд (так на­

зываемых тыоринговых команд)

вида xq^-x'Pq',

где х

и q — названия строки и столбца в функциональной

схеме,

a x'Pq' — тройка, расположенная

на их пересечении.

Есте­

ственно, эта команда выполняется так: если на данном так­ те символ х обозревается в состоянии q, то нужно его за­ менить символом х', а к началу следующего такта нужно совершить сдвиг Р (например, вправо, если Р=П) и обо­ зревать в состоянии q' символ,-который попадает в поле зрения.

Поскольку в этой книге мы заинтересованы лишь в на­ блюдении за работой машины Тьюринга и за результатами этой работы, то для нас совершенно безразлично, интер­ претируем ли мы функциональные схемы как характери­ стики логических блоков специализированных машин Тью­ ринга, или как тыоринговы программы, доступные одному и тому же вычислителю.

Впрочем, несколько позднее (см. § 13) станут ясными другие, причем очень важные причины, по которым такая двойственная интерпретация оправдана. Имея в виду выше­ сказанное, мы будем свободно пользоваться терминами «функциональная схема машины Тьюринга» и «тьюрин­ гова программа» как синонимами. Соответственно, сино­ нимами будем считать и термины «тыорингово программи­ рование», «построение тыоринговых машин», «построение функциональных схем тыоринговых машин».

Для прослеживания за работой машины Тьюринга или вычислителя, использующего тыорингову программу, удоб­ но пользоваться так называемыми тьюринговыми конфигу­ рациями (или просто конфигурациями—там, где ясно из контекста, о чем идет речь).

74