Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
автоматы.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
38.81 Кб
Скачать

1. Теория формальных языков как раздел математической лингвистики.

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

Язык - множество предложений, построенных по определенным правилам. Грамматика - свод правил, определяющих принадлежность фразы языку. Язык разрешим, если за конечное время можно определить, что фраза или предложение принадлежит языку. Язык однозначен, если любая фраза понимается единственным образом.

Синтаксис - свод правил, определяющих правильность построения предложений языка. Семантика - определяющих семантическую или смысловую правильность предложений языка.

2. Понятие грамматики языка. Обозначения.

Алфавит - непустое, конечное множество символов, исп. в языке. Язык - множество предложений. Предложение - цепочка символов алфавита. Цепочка, пустая цепочка, длина цепочки, конкатенация, обращение. Языком L в алфавите A назыв. множество цепочек в А.

Грамматика языка - множество объектов G = <S, Vt, Vn, R>. S - начальный, выделенный символ грамматики (аксиома), Vt - множество терминальных символов, Vn - множество нетерминальных символов, R - множество правил.

Язык, порождаемый грамматикой - это множество цепочек, которые состоят только из терминалов и выводятся, начиная с одного, особо выделенного нетерминала S. Среди множества правил грамматики должно присутствовать хотя бы одно правило S -> ???. Метаязыком называется язык, который используется для описания других языков.

Грамматики называются эквивалентными, если определяют один и тот же язык.

3. Классификация грамматик по Хомскому.

Автоматная (типа 3, регулярная, праволинейная) грамматика: только правила вида A->xA; A->x;

Контекстно-свободная (типа 2, бесконтекстная) грамматика: правила A->α, где α - любая цепочка из терминальных и нетерминальных символов.

Контекстно-зависимая (типа 1, контекстная, нормальных составляющих) грамматика: φAψ-> φαψ

С фразовой структурой (типа 0, рекурсивно перечислимая) грамматика: α->β.

Грамматика типа i одновременно является и грамматикой типа i-1

Th. Любой контекстный язык разрешим. Для любого КЗ-языка L сущ. грамматика G в удлиняющей форме (α->β, |α|<|β|). Длинна исследуемой цепочки η должна быть конечной. Тогда если η в L, то существует вывод S ->(n) η. Число выводов с длиной не более n конечно. Поэтому достаточно проверить выводится ли η одним из них. Если η совпадает с одной из терминальных цепочек, выводимых по заданной грамматике G не более чем за n шагов, то η принадлежит L(G), иначе - не принадлежит.

4. Техника построения КС- и А- грамматик.

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

А: просматриваются исходные цепочки, выписываются терминалы, которые можно встретить на очередном шаге, и вводятся нетерминалы, описывающие остаток цепочки. Введенные нетерм. детализируются так же, как и исходный.

5. Синтаксические деревья вывода в КС-грамматиках. Представление А-грамматик в виде графа состояний. Неоднозначность грамматик.

Цепочка, порождаемая грамматикой, неоднозначна, если для её вывода сущ. более одного синтаксического дерева. Грамматика неоднозначна, если она порождает неоднозначные цепочки, в противном случае - однозначна.

Граф состояний (переходов) - наглядное представление А-грамматик. Вершины этого графа соответствуют нетерминалам, а дуги из нетерм. А в нетерм B помечаются терминалом a, если сущ. правило A->aB.

А-грамматика называется детерминированной, если для любого нетерминала A и любого терминала a существует не более одного нетерминала B, для которого сущ. правило A->aB. Вполне детерминированной - если сущ. единственный.

6. Синтаксический анализ А-языков.

Строится по графу состояний А-грамматики. Каждой вершине графа, кроме заключительной и "ошибочной" соответствует блок выбора символа. Каждому ребру - блок анализа символа с переходом к тому или иному блоку выбора.

Для приведения грамматики к вполне детерминированной форме предварительно выполняется её модификация: вводится F', символ конца цепочки, A->a заменяются на A->aF', добавляется F'-><конец цепочки>F. Вводится нетерминал для ошибки E.

Th. Для любой А-грамматики существует эквивалентная ей А-грамматика во вполне детерминированной форме.

7. Распознаватели и автоматы.

Распознаватель (автомат) - входная лента, головка чтения(/записи), внешняя память, управляющее устройство. УУ - множество состояний вместе с отображением, которое описывает как меняются состояния в соответствии с текущим входным символом. Шаг: 1) головка меняет(или нет) положение 2) в память помещается информация 3) изменяется состояние УУ. Поведение распознователя описывают в терминах конфигурации: 1) состояние устройства 2) содержимое ленты и положение головки 3) содержимое памяти.

УУ может быть недетерм/детерм. Конфигурация назыв. начальной, если УУ находится в заданном начальном состоянии, входная головка обозревает самый левый входной символ на ленте, а память имеет заранее установленное начальное содержимое. Аналогично - конечная конфигурация.

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

Язык L автоматный тттк он определяется односторонним детерминированным конечным автоматом. КС - определяется односторонним недетерминированным МП-автоматом (магазинная память). КЗ - двухсторонний недетерм. линейно-ограниченный автомат. Рекурсивно-перечислимый - машина Тьюринга общего вида.

8. Автоматные грамматики и конечные автоматы.

А-грамматику можно представить в виде таблицы, строки - терминалы, столбцы - нетерминалы, это будет таблица переходов. Конечный автомат - частный случай одностороннего распознавателя, где головка движется всегда вправо на каждом такте работы и отсутствует внешняя память. M = {Q, E, d, q0, F}, где Q - множество состояний, E - конечное множество символов алфавита, d - функция перехода, q0 - начальное состояние, F - множество заключительных состояний.

9. Эквивалентность недетерминированных и детерминированных А-грамматик.

Недетерминированный автомат - это автомат, где значение функции переходов - не отдельное состояние, как в детерм. автомате, а множество состояний. В общем случае у НДА может быть не одно, а множество начальных состояний.

НДА допускает входную цепочку, если он позволяет связать одно из его начальных состояний с одним из допускающих. Для каждого НДА сущ. эквивалентный ДА. Перевод НДА в ДА осуществляется с помощью объединения множеств состояний НДА в одно состояние ДА.

10. Декомпозиция правил грамматики.

Th. Не существует алгоритма, определяющего эквивалентность или неэквивалентность двух грамматик, тем не менее существуют такие преобразования исходных грамматик, которые приводят к новым грамматикам, не выходящим из класса грамматик, эквивалентных исходным - детерминированность, более короткий вывод цепочек, исключение тупиков.

Th. Если в КС-грамматике G1 сущ. правила Y->аХb; X->c то грамматика с правилом Y->acb эквивалентна G1.

Th. Обобщение предыдущей Th на множество подобных правил с разными с.

Th. Обобщение на множество подобных с одним с.

Th. Применение всего предыдущего = декомпозиция.