Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

zadanie

.pdf
Скачиваний:
10
Добавлен:
03.06.2015
Размер:
1.59 Mб
Скачать

ПРОГРАММА

1.Известные и перспективные направления эффективного применения теории формальных языков как математической дисциплины. Алфавиты, цепочки, языки и их представление. Формальное определение грамматики. Типы грамматик по Хомскому и их свойства. Связь машин Тьюринга и грамматик типа 0. Линейно-ограниченные автоматы и их связь с КЗграмматиками.

2.Лексический анализ. Конечные автоматы и регулярные язы-

ки. Конечные автоматы (КА). Детерминированные и недетерминированные КА (ДКА и НКА). Регулярные языки (РЯ) и регулярные выражения (РВ). Эквивалентность классов языков, определяемых КА, РВ и автоматными грамматиками (грамматики типа 3: леволинейные – ЛЛ, праволинейные – ПЛ). Свойства замкнутости РЯ. Лемма о накачке для РЯ. Теорема Майхилла-Нероуда и минимальные автоматы. Алгоритмы поиска подстрок и КА. Алгоритм Кнута-Морриса- Пратта (КМП) и Ахо-Корасик. Линейность алгоритма КМП.

Алгоритмы по теме КА и РВ

Построение ДКА по НКА. Построение НКА по РВ. Построение ДКА по РВ. Построение РВ по НКА.

По РВ R проверить, что слово принадлежит L(R).

Построить по языку L язык LR .

Построение произведения (конкатенации) РЯ, дополнение РЯ, пересечение РЯ.

Построение минимального автомата по ДКА. Алгоритм Кнута-Морриса-Пратта. Алгоритм Ахо-Корасик.

Построение по НКА эквивалентных ЛЛ- и ПЛграмматик.

Построение эквивалентного НКА по ЛЛ- и ПЛграмматике.

Решение уравнений с регулярными коэффициентами. Построение минимального автомата.

Проверка эквивалентности ДКА.

3.Синтаксический анализ. Контекстно свободные(КС) грамматики и магазинные автоматы. КС-грамматики (КСГ).

Преобразования КС-грамматик, приведѐнные грамматики. Канонические формы КС-грамматик (форма Хомского и форма Грейбах). Свойства замкнутости КС-языков (КСЯ), незамкнутость КСЯ относительно пересечения. Дерево вывода КСГ. Однозначность КС-грамматик. Однозначность праволинейной грамматики, построенной по ДКА. Лемма о накачке для КСЯ. Проверка принадлежности слова КСязыка КСграмматике (алгоритм КокаЯнгераКасами)

Автоматы с магазинной памятью (МА). Детерминированные и недетерминированные МА. МА, распознающие по конечному состоянию (F-автоматы), и по опустошению магазина (N-автоматы). Обобщенные МА, их эквивалентность стандартным МА. Эквивалентность F- и N-автоматов (FNтеорема). Эквивалентность КСГ и МА (GN- и NG-теоремы). Однозначность КСГ, построенной по детерминированному N-автомату (без доказательства).

Алгоритмы по теме КСЯ и МА

Удаление недостижимых и бесполезных символов в КСГ. Удаление циклов.

Построение КСГ без ε-правил.

Удаление левой рекурсии в КСГ.

Левая факторизация.

Приведение КСГ к нормальной форме Хомского и нормальной форме Грейбах.

Проверка принадлежности слова КСГ (алгоритм КокаЯн- гераКасами)

Преобразование N-автомат

F-автомат

Преобразование F-автомат

N-автомат

Преобразование КСГ в эквивалентный N-автомат

Преобразование N-автомата в эквивалентную КСГ (с доказательством корректности для N-автомата с одним состоянием).

3. Синтаксический разбор. LL- и LR-грамматики. Предсказы-

вающий разбор сверху вниз. Алгоритм разбора сверху вниз. Операторы FIRST и FOLLOW. Конструирование таблицы предсказывающего анализатора. LL(l)-грамматики. Рекурсивный спуск. LL(k)-грамматики (определение по [2]). Разбор снизу вверх типа сдвиг-свѐртка. Основа. LR(l) анализаторы. Конструирование LR(l)-таблицы. LR(l)-грамматики. Варианты LR-анализаторов. LR(k)-грамматики (определение по [2]). Однозначность LL(k)- и LR(k)-грамматик

Алгоритмы по теме LL- и LR-грамматики

Удаление недостижимых и бесполезных символов в КСГ. Удаление циклов.

4. Элементы теории перевода. Синтаксически управляемый перевод. Атрибутные грамматики.

Литература

1.Ахо А., Ульман Д. Теория синтаксического анализа, перевода и компиляции. М.: Мир, 1978.

2.Мартыненко Б.К. Языки и трансляции. – СПб.: СПбГУ,

2004. http://www.math.spbu.ru/user/mbk/TUTORY/LT.html

3.Серебряков В.А. [и др.]. Теория и реализация языков программирования. – М.: МЗ-Пресс, 2006. – 294 c. (681.3/ Т33).

4.Хопкрофт Дж., Мотвани Р., Ульман Дж. Введение в теорию автоматов, языков и вычислений. – М.: Вильямс, 2002.(681.3 / X78).

5.Шень А. Программирование: теоремы и задачи. М.:

МНЦМО, 2004. http://www.mccme.ru/free-books/

Регламент

Кроме сдачи заданий, семинарских контрольных и т.д. вас ожидают два важных письменных теста (ориентировочно 11.11 и 20.12) для всего курса. По протоколу семинарист имеет право выставить автомат за (письменный) экзамен, который проводится в конце января, ТОЛЬКО при положительных оценках за оба теста.

Ниже приведено ПЕРВОЕ основное (понедельное) задание. ВТОРАЯ часть задания будет уточнена по результатам первого теста.

Задание состоит из списка недельных заданий (указаны даты обсуждения на семинарах и/или сдачи соответствующих задач). Каждое недельное задание состоит из четырех-пяти обязательных задач и одной-двух дополнительных задач (дополнительные задачи выделены буквой «Д»). Решение дополнительных задач не обязательно, но может быть полезно студентам, претендующим на более высокую оценку.

Недельные задания могут быть подвержены изменениям. Самая последняя версия текущего задания будет рассылаться в субботу или в воскресенье. Если специально не оговорено, то задания должны быть отосланы до 22:00 четверга текущей недели по адресу algzadanie@gmail.com В скобках за номером задачи указаны баллы. Процедура получения оценок за задания и пр. подробно описана в файле TASK1. В нем же содержится необходимый теоретический материал

Метасимволы «*» и «?» обозначают соответственно любое слово и любой символ в данном алфавите.

Обращение слова (или языка) y обозначается через y R .

Длина слова х обозначается через | x | .

Число букв a в слове x обозначается через | x |a .

Запись wn обозначает слово

«Построить объект» означает, что нужно предъявить сам объект и доказать, что объект удовлетворяет требуемым условиям.

1 (9.09 -15.09). Регулярные языки I. Конечные автоматы. По-

иск подстрок. Проходной балл: 0.15

1 (2x0.03 балла). Определим язык L {a, b}* индуктивными

правилами:

 

 

(i)

, b, bb

L;

 

(ii) вместе с любым словом x

L

 

в L также входят слова

bax, baax, bbaax;

(iii) никаких других слов в L нет.

Язык T

{a,b}*

состоит из всех слов, в которых нет трѐх подряд

идущих одинаковых букв.

 

Докажите или опровергните, что L = T .

Если равенство неверно, то нужно явно указать слово, принадлежащее одному языку и не принадлежащее другому.

Если равенство верно, то нужно провести доказательство по

индукции:

(0.03 балла) и

(0.03 балла), т. е. L = T .

2(4х0.01 баллов). Верно ли, что

(i)?

(ii)?

( iii) =?

(iv)

3 (3х0.01 баллов). Конечный автомат A задан таблицей (началь-

ное состояние – ; конечное состояние – q1):

 

q0

q1

Q2

q3

0

q3

q2

Q1

q0

1

q1

q0, q3

-

-

i. Является ли A детерминированным?

ii. Опишите все последовательности конфигураций A при обработке слова w=0011001. Верно ли, что

iii. Укажите два слова, принадлежащие языку L(A), и два слова, не принадлежащие языку L(A)

4 (0.03 балла). Построить ДКА, принимающий язык L всех слов в алфавите {0,1}, содержащих чѐтное число нулей и нечѐтное число единиц и доказать его корректность.

5 (0.03 балла). Используя алгоритм Кнута-Морриса-Пратта постройте КА для языка L {a,b}* , слова которого имеют подстроку «aaa».

Д-1 (0.04 балла). Пусть L – произвольный язык в алфавите {a, b}.

Пусть язык L1 = { xcambn | x L,m 2n,m 0,n 1 } в алфавите {a, b, c}. Явно постройте дополнение к языку L1, т.е. представьте дополнение в виде конечного объединения известных регулярных языков.

В качестве операнда можно использовать язык {a,b}* \ L (в дальнейшем мы увидим, что этот язык также регулярный).

Д-2 (2x0.02 баллов). Морфизмом называется любое отображение , где ― алфавиты (т. е. каждому литералу ставится в соответствие слово ). Можно считать, что область определения морфизма есть , полагая и индуктивно для всех . Тогда, по определению, образ языка состоит из цепочек . Таким образом, морфизм --- это естественное алфавитное кодирование (вообще говоря, не взаимно однозначное!) языка

в алфавите посредством кодирования всех литералов алфавита некоторыми словами в алфавите . Также, по определению, для любого обращение морфизма состоит из всех слов в алфавите , которые отображаются морфизмом в y, т.е. . Аналогично для определяется язык

Пусть ― произвольный язык, а произвольный морфизм. Докажите или опровергните, что

i.

 

?

 

ii.

 

 

?

 

2 (16.09 -22.09). Регулярные языки II. Регулярные выражения.

Автоматные грамматики. Проходной балл: 0.25

6 (0.02+0.03+0.04+?x0.01 баллов). Будут ли регулярными следующие языки

i. L1 {a2013n 5 , n 0,1,...} {a503k 29 ,k 401,402,...} {a*}

ii. L2 {a200n2 1, n 1000,1001,...} {a*}

iii. Язык L3 всех слов в алфавите {0,1}, которые представляют числа в двоичной записи, дающие остаток два при де-

лении на три (слово читается со старших разрядов).

Например, 001010 (10102=1010 = 3 3+1) L3, 10001 (100012=1710 = 5 3+2) L3 .

iv. Выпишите регулярные выражения для языков и .

7 (0.03 балла). Постройте НКА, принимающий язык Мно-

жество слов в алфавите {0,1}, у которых третий от кон-

ца символ равен «0»}. Затем, используя алгоритм, постройте соответствующий полный ДКА.

8 (2x0.02 баллов). Постройте регулярные выражения для следующих языков.

i.Языкобращение , где L – язык из задачи 4.

ii.Язык из задачи 3.

9 (2x0.03 баллов). Для решения некоторых задач может оказаться полезной следующая конструкция произведения: по задан-

ным КА

строится КА

произведение:

 

i.Используя конструкцию произведения покажите, что регулярные языки замкнуты относительно разности.

ii.Используя конструкцию произведения и КА из задачи 5 и постройте КА для языка T из задачи 1.

Д-3 (0.04 балла). Используя обобщение КМП-алгоритма для поиска подстроки в нескольких словахобразцах (алгоритм

АхоКорасик) постройте ДКА, принимающий язык T из задачи 1 и сравните его с автоматом, построенным в задаче

9.2.

Д-4 (4х0.02 баллов). *-высота

регулярного выражения

определяется индуктивно:

$, для

всех

 

Обратите внимание:

Если к числу допустимых операций над регулярными выражениями добавить операцию дополнения : (соответствующую переходу к дополнительному языку), то мы получим т.н. расширенное регулярное выражение. Обобщенная *-высота расширенного регулярного выражения также вычисляется индуктивно аналогично обычной *-высоте с учетом дополнительного правила . Как обычно, (обобщенной) *-высотой регулярного языка L называется минимум (обобщенной) *-высоты по всем (расширенным) регулярным представлениям L.

i. Найдите *-высоту регулярного выражения

ii. Для следующих регулярных выражений найдите эквивалентные регулярные выражения, имеющие *-высоту 1:

iii. Для

покажите, что

iv. Докажите, что , а .

3 (23.09 -29.09). Регулярные языки III. Уравнения с регуляр-

ными коэффициентами. Лемма о разрастании. Свой-

ства замкнутости регулярных языков. Прох. балл: 0.15

10 (2х0.02 баллов). Решите уравнения с регулярными коэффициентами (найти частное решение; найти все решения; найти минимальное по включению решение):

i.X = ((101)*+110*) X.

 

X1

(1 (01)*) X1 (0 11) * X2 X3,

ii.

X 2

0X1

X 2

(110) * X3,

 

X3

1X1

10X2

1.

11 (0.03 балла). Путем прямой проверки докажите или опровергните, что

язык

удовлетворяет ЛР.

При положительном ответе найдите константу С и проверьте, что все слова длины большей, чем C, допускают нужные разбиения, а при отрицательном ―приведите анализ, показывающий, что ЛР нарушается.

12 (0.04 балла). Покажите, что следующий язык удовлетворяет лемме о разрастании для регулярных языков, но регулярным не является: и если , то

13 (2х0.04 баллов). По определению, мутация слов x и y состоит из всех слов, которые могут быть получены конкатенацией всевозможных разбиений слов x и y с сохранением порядка следования букв. Мутация обозначается символом M. Например,

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]