
- •1. Теория формальных языков как раздел математической лингвистики.
- •2. Понятие грамматики языка. Обозначения.
- •3. Классификация грамматик по Хомскому.
- •11. Исключение тупиковых правил из грамматики.
- •12. Обобщенные кс-грамматики и приведение их к удлиняющей форме.
- •26. Генерирование компанд по полиЗу
- •27. Алгоритм Замельсона и Бауэра перевода выражений в полиз
- •28. Атрибутные грамматики
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. Применение всего предыдущего = декомпозиция.