2.4. Линейно ограниченные автоматы и языки типа 1
Линейно ограниченным автоматом (-автоматом) называют машину Тьюринга, которой запрещено передвигать читающую головку за пределы участка входной ленты, занятого входной
почкой. Это можно достичь, добавив к входному языку два специальных символа (обычно ). Их помещают в начале и в конце входной цепочки, которая после этого превращается в Правила перехода ЛO-автомата подобны правилам для МТ за исключением того, что если прочитан символ или то читающая головка передвигается на одну ячейку вправо или влево.
Линейно ограниченный автомат представляет собой модель программы с неограниченным доступом к конечной области «динамического» участка памяти, причем размер этой области можно определить, исследуя входную цепочку в ходе работы программы перед анализом приемлемости входной цепочки. Фактически можно просто считать, что какая-то часть ленты требуется для ввода как стираемая зона.
Модель ЛО-автомата имеет неочевидное приложение в программировании. Напомним, что автомат называется детерминированным, если для каждого сочетания сигнала на входе и внутреннего состояния существует не более одного правила перехода, определяющего его следующее действие. Автомат называется недетерминированным, если данная комбинация вход — внутреннее состояние служит левой частью более чем одного правила перехода. Когда речь шла о машине Тьюринга, разница между детерминированными и недетерминированными автоматами не рассматривалась, поскольку можно показать, что для каждой недетерминированной машины Тьюринга существует эквивалентная ей детерминированная. Для ЛО-автоматов не известно, так это или нет, поэтому, пока ответ не получен, благоразумный программист должен считать, что если ему нужно написать программу, моделью которой является ЛО-автомат, то он должен считать этот автомат недетерминированным. Для недетерминированного автомата может возникнуть возможность выбора конкретного правила перехода при предъявлении определенной конфигурации памяти. Если выбор сделан неверно, то автомат может впоследствии прийти в состояние останова, не приняв цепочки. В этом случае надо вернуться к моменту выбора и попытаться принять цепочку, избирая другой путь вычислений. Это можно сделать только в том случае, когда сохраняются весьма точные записи предыдущих действий.
Теоретический результат в области ЛО-автоматов таков:
Язык воспринимается ЛО-автоматом тогда и только тогда, когда это язык типа 1.
Этот результат не находит широких приложений, поскольку, как мы показали, ЛО-автоматы моделируют сложные программы. В то же время доказательство того, что областью определения функции является контекстно-зависимый язык, может оказаться полезным, так как оно выявляет возможности управления памятью и
хранения записей, необходимые программе для вычисления Чаще используется другой результат.
Все контекстно-зависимые языки рекурсивны.
Здесь утверждается, что если областью определения функции является язык типа 1, то можно написать программу (возможно, сложную), которая с гарантией воспринимает все цепочки и дает либо значение либо надежное указание на то, что для функция не определена.
Рис. 2.8. Работа МП-автомата. Сначала машина находится в состоянии и читает символ на входе и символ в магазине. При первом переходе входная лента движется вперед и заталкивается в магазив. Машина оказывается в состоянии На втором шаге входная лента движется, читая считывается и выталкивается из магазина, а машина переходит в состояние
С другой стороны, неудачная попытка доказать, что — язык типа 1 или даже типа 0, не гарантирует, что язык не рекурсивен. Существуют рекурсивные языки, которые не могут порождаться грамматикой типа 1.