Журнал Компьютерра - 6 от 14 февраля 2006 года :: Компьютерра
Страница:
184 из 198
Программа для такой машины — это сколь угодно большой, но конечный набор состояний, каждому из которых соответствует некоторое действие, а также следующее состояние. Есть два выделенных состояния — исходное, в котором начинается работа программы, и специальное состояние СТОП, которое соответствует выходу из программы. Например, вот простая программа:
состояние 0:
прочесть то, что находится под головкой: если 0, перейти в состояние 1; если 1, перейти в состояние 2; если пусто, перейти в состояние СТОП;
состояние 1:
записать в текущую ячейку 1 и перейти в состояние 3;
состояние 2:
записать в текущую ячейку 0 и перейти в состояние 3;
состояние 3:
сдвинуть головку вправо и перейти в состояние 0.
Она бит за битом инвертирует двоичную строку, записанную на ленте (считаем, что изначально головка находится в крайней левой ячейке, с которой начинается запись числа), а когда строка заканчивается, заканчивает работу и программа.
Эта модель вычислений, получившая название машины Тьюринга, стала общепринятой (хотя Пост придумал свою модель на год раньше). На первый взгляд такой простой объект кажется недостаточным для того, чтобы описать все многообразие компьютерных архитектур, — но пока не известно ни одного алгоритма, который нельзя было бы реализовать на машине Тьюринга.
|< Пред. 182 183 184 185 186 След. >|