<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://mit.spbau.ru/sewiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Okhotin</id>
		<title>SEWiki - Вклад участника [ru]</title>
		<link rel="self" type="application/atom+xml" href="http://mit.spbau.ru/sewiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Okhotin"/>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/Okhotin"/>
		<updated>2026-05-02T15:30:36Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=5112</id>
		<title>Формальные грамматики 2014</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=5112"/>
				<updated>2014-12-11T14:25:15Z</updated>
		
		<summary type="html">&lt;p&gt;Okhotin: /* Задание 2: к 13 октября */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Курс «Формальные грамматики»: сентябрь 2014 г., 15 лекций,&lt;br /&gt;
лектор: [http://users.utu.fi/aleokh/ Александр Охотин] (университет Турку, Финляндия).&lt;br /&gt;
&lt;br /&gt;
== Содержание лекций ==&lt;br /&gt;
&lt;br /&gt;
Приветствуются любые замечания&lt;br /&gt;
по содержанию материалов к лекциям:&lt;br /&gt;
если что-то неправильно или плохо понятно,&lt;br /&gt;
то, пожалуйста, напишите, что именно.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 1: Введение, регулярные языки ===&lt;br /&gt;
&lt;br /&gt;
Математические модели синтаксиса.&lt;br /&gt;
Формальные языки.&lt;br /&gt;
Детерминированные и недетерминированные конечные автоматы, регулярные выражения, их равносильность.&lt;br /&gt;
Примеры. Замкнутость относительно основных действий.&lt;br /&gt;
Нерегулярные языки.&lt;br /&gt;
''(8 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 1.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 2: Обыкновенные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные формальные грамматики&lt;br /&gt;
(в терминологии Хомского, «бесконтекстные»).&lt;br /&gt;
Определения через перезапись строк,&lt;br /&gt;
через деревья разбора,&lt;br /&gt;
через логический вывод&lt;br /&gt;
и через языковые уравнения.&lt;br /&gt;
Равносильность определений.&lt;br /&gt;
Примеры грамматик.&lt;br /&gt;
Замкнутость относительно объединения, конкатенации, звёздочки,&lt;br /&gt;
а также циклического сдвига.&lt;br /&gt;
''(8 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 2 3 4.pdf]]&lt;br /&gt;
(редакция от 16 сентября, добавлены все недостающие разделы)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 3: Свойства обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Замкнутость относительно пересечения с регулярными языками.&lt;br /&gt;
Языки, не представимые грамматиками.&lt;br /&gt;
Лемма накачки, лемма Огдена.&lt;br /&gt;
Грамматики над односимвольным алфавитом.&lt;br /&gt;
Нормальный вид Хомского.&lt;br /&gt;
''(9 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 4: Представления обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Нормальный вид Грейбах.&lt;br /&gt;
Нормальный вид Розенкранца.&lt;br /&gt;
Теорема Хомского--Шюценберже о представлении обыкновенных языков через язык Дика.&lt;br /&gt;
Теорема Грейбах о «самом сложном языке».&lt;br /&gt;
''(9 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 5: Конъюнктивные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Определения конъюнктивных грамматик&lt;br /&gt;
через логический вывод, перезапись термов, деревья разбора и языковые уравнения.&lt;br /&gt;
Примеры грамматик: wcw, объявление перед использованием, степени четвёрки.&lt;br /&gt;
Приведение к нормальному виду Хомского.&lt;br /&gt;
Понятие о булевых грамматиках.&lt;br /&gt;
''(11 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 5.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 6: Однозначные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Неоднозначность в естественных языках и языках программирования.&lt;br /&gt;
Комбинаторные и аналитические методы доказательства существенной неоднозначности.&lt;br /&gt;
''(11 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 6.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 7: Линейные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные линейные грамматики, лемма накачки для них.&lt;br /&gt;
Линейные конъюнктивные грамматики и клеточные автоматы, их равносильность.&lt;br /&gt;
Лемма Терье.&lt;br /&gt;
''(12 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 7.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 8: Многокомпонентные грамматики, логика FO(LFP) ===&lt;br /&gt;
&lt;br /&gt;
Грамматики обёртывания пар и грамматики надстройки деревьев (tree-adjoining grammars).&lt;br /&gt;
Логика первого порядка над позициями в строке FO(LFP),&lt;br /&gt;
представление грамматик в этой логике.&lt;br /&gt;
Алгоритм проверки истинности формул логики FO(LFP)&lt;br /&gt;
как прототип алгоритмов синтаксического анализа.&lt;br /&gt;
''(12 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 8.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 9: Табличные алгоритмы синтаксического анализа ===&lt;br /&gt;
&lt;br /&gt;
Алгоритм Кокка-Касами-Янгера.&lt;br /&gt;
Использование умножения матриц для ускорения алгоритма.&lt;br /&gt;
Умножение матриц по методу Штрассена и по методу Арлазарова и др.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 9 10.pdf]]&lt;br /&gt;
(редакция от 30 сентября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 10: Табличные алгоритмы синтаксического анализа (окончание) ===&lt;br /&gt;
&lt;br /&gt;
Разбор через умножение матриц (алгоритм Валианта). Разбор однозначных грамматик за квадратичное время.&lt;br /&gt;
Разбор для грамматик обёртывания пар.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 11: Разбор сверху вниз ===&lt;br /&gt;
&lt;br /&gt;
LL(k) анализ для обыкновенных грамматик, рекурсивный спуск.&lt;br /&gt;
Удаление пустых правил из LL-грамматик.&lt;br /&gt;
Языки, не представимые LL-грамматиками.&lt;br /&gt;
Теорема Розенкранца--Стирнса&lt;br /&gt;
о регулярном объединении LL-языков.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 11.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 12: LR(k) анализ и детерминированные языки ===&lt;br /&gt;
&lt;br /&gt;
Анализ через сдвиг и свёртку.&lt;br /&gt;
Детерминированный конечный автомат, читающий стек.&lt;br /&gt;
Класс LR(k) грамматик.&lt;br /&gt;
Построение таблиц по методу SLR(k).&lt;br /&gt;
Магазинные автоматы и их равносильность LR(k) грамматикам.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 12 13.pdf]]&lt;br /&gt;
(весьма неполная редакция от 25 сентября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 13: Автоматы, управляемые входом; обобщённый LR ===&lt;br /&gt;
&lt;br /&gt;
Автоматы, управляемые входом (input-driven automata; visibly pushdown automata). Равносильность их детерминированных и недетерминированных разновидностей. Грамматики, управляемые входом.&lt;br /&gt;
Обобщённый LR: пример работы, оценки сложности.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 14: Вычислительная сложность разбора ===&lt;br /&gt;
&lt;br /&gt;
Разбор обыкновенных грамматик с использованием памяти &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;,&lt;br /&gt;
разбор схемой высоты &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;.&lt;br /&gt;
Линейная грамматика для NLOGSPACE-полного языка.&lt;br /&gt;
Задача принадлежности данной строки данной обыкновенной грамматике&lt;br /&gt;
и её P-полнота.&lt;br /&gt;
Равносильность грамматик 1-го порядка классу P.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 14.pdf]]&lt;br /&gt;
(редакция от 2 октября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 15: Разрешимость свойств грамматик ===&lt;br /&gt;
&lt;br /&gt;
Язык вычислений машины Тьюринга (VALC)&lt;br /&gt;
и его представление в виде пересечения двух LL(1) линейных языков.&lt;br /&gt;
Неразрешимость основных свойств линейных грамматик.&lt;br /&gt;
Разрешимость проверки равносильности LL(k) грамматик.&lt;br /&gt;
Разрешимость задачи включения для автоматов, управляемых входом.&lt;br /&gt;
Иерархия семейств грамматик.&lt;br /&gt;
''(26 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 15.pdf]]&lt;br /&gt;
(редакция от 30 сентября)&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
=== Задание 1: к 22 сентября ===&lt;br /&gt;
&lt;br /&gt;
# Построить обыкновенную грамматику для языка всех палиндромов: &amp;lt;math&amp;gt;L_1 = \{ w \in \{a, b\}^* \mid w=w^R \}&amp;lt;/math&amp;gt;. Показать, как строка &amp;lt;math&amp;gt;ababa&amp;lt;/math&amp;gt; выводится с помощью перезаписи строк. Показать, что эта же строка принадлежит наименьшему решению системы языковых уравнений, построив несколько шагов последовательности &amp;lt;math&amp;gt;\varphi^k(\bot)&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Доказать, что не существует обыкновенной грамматики для языка &amp;lt;math&amp;gt;L_2=\{ a^{k_1} b \ldots a^{k_n} b \mid n \geqslant 1, 0 \leqslant k_1 \leqslant \ldots \leqslant k_n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Построить конъюнктивную грамматику для языка &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Построить однозначную обыкновенную грамматику для языка &amp;lt;math&amp;gt;L_3=\{c^m a^{\ell_0}b \ldots a^{\ell_{m-1}}b a^{\ell_m}b \ldots a^{\ell_z}b d^n \mid m,n, \ell_i \geqslant 0, z \geqslant 1, \ell_m=n\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Является ли язык &amp;lt;math&amp;gt;L_3&amp;lt;/math&amp;gt; линейным конъюнктивным?&lt;br /&gt;
# Пусть &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; --- язык Дика над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Существует ли грамматика обёртывания пар для языка &amp;lt;math&amp;gt;L_4 = \{wc^{|w|} \mid w \in D\} = \{\varepsilon, abcc, aabbcccc, ababcccc, aaabbbcccccc, \ldots\}&amp;lt;/math&amp;gt;?&lt;br /&gt;
# Построить грамматику 1-го порядка для языка &amp;lt;math&amp;gt;\{ww \mid w \in \{a, b\}^*\}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 homework 1 solutions.pdf]]&lt;br /&gt;
&lt;br /&gt;
''(проверенные работы переданы на кафедру)''&lt;br /&gt;
&lt;br /&gt;
=== Задание 2: к 13 октября ===&lt;br /&gt;
&lt;br /&gt;
# Постоить обыкновенную грамматику ''в нормальном виде Хомского'' для языка Дика &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Для этой грамматики и для входной строки &amp;lt;math&amp;gt;w=abaabba \notin D&amp;lt;/math&amp;gt;, построить таблицу разбора &amp;lt;math&amp;gt;T_{i,j}&amp;lt;/math&amp;gt;, как в алгоритме Кокка–Касами–Янгера.&lt;br /&gt;
# Рассмотреть работу алгоритма Валианта (синтаксический анализ через умножение матриц, лекции 9-10) для грамматики, построенной в прошлом упражнении. Среди всех действий, производимых алгоритмом, найти то произведение булевых матриц, после вычисления которого  станет верным условие &amp;lt;math&amp;gt;S \in f(P_{0,6})&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; — начальный символ грамматики. Описать, когда и как именно вычисляется это произведение — то есть, какая процедура, вызванная с какими значениями, и какой оператор в ней умножает какие две булевы матрицы какого размера, каков результат умножения, и какие элементы &amp;lt;math&amp;gt;P_{i,j}&amp;lt;/math&amp;gt; будут этим затронуты?&lt;br /&gt;
# Замкнут ли класс LL языков относительно пересечения с регулярными языками? Если замкнут, привести построение (см. построение такого рода для всего класса обыкновенных грамматик в материалах к лекциям 2-4), а если незамкнут, привести пример LL грамматики и регулярного языка с доказательством несуществования LL грамматики для их пересечения (см. доказательства такого рода в материалах к лекции 11).&lt;br /&gt;
# Построить линейную грамматику для языка &amp;lt;math&amp;gt;f(L_0)&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;L_0 = \{ w\$w^R \mid w \in \{a,b\}^* \}&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;f(L) = \{ [w_{1,1} \# \ldots \# w_{1, k_1}] \ldots [w_{m,1} \# \ldots \# w_{m, k_m}] \mid \exists i_1, \ldots, i_m: \; w_{1,i_1} w_{2,i_2} \ldots w_{m,i_m} \in L \}&amp;lt;/math&amp;gt; (это NLOGSPACE-полный язык, приведённый на лекции).&lt;br /&gt;
# Разрешима ли такая задача: «по данной обыкновенной грамматике, определить, порождает ли она хотя бы одну строку чётной длины»? Если разрешима, привести алгоритм, а если неразрешима, доказать это с помощью методов лекции 15 (использовав язык VALC в готовом виде, или же определив новый его вариант).&lt;br /&gt;
# Разрешима ли такая задача: «по данной обыкновенной грамматике, определить, порождает ли она хотя бы одну строку-палиндром &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt;, т.е., строку, для которой &amp;lt;math&amp;gt;w=w^R&amp;lt;/math&amp;gt;»?&lt;br /&gt;
# Для произвольной данной линейной грамматики G, пусть &amp;lt;math&amp;gt;L=\{vu \mid uv \in L(G)\}&amp;lt;/math&amp;gt; — циклический сдвиг порождаемого ею языка. Построить алгоритм, определяющий принадлежность данной на входе строки языку &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt;, и ''использующий как можно меньше памяти''. Объём памяти считать функцией &amp;lt;math&amp;gt;s(n)&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; — длина входной строки, и этот объём должен быть по крайней мере меньше, чем линейным. Примечания: алгоритм строится по грамматике, и потому зависимостью требуемого объёма памяти от размера этой грамматики можно пренебречь; алгоритм должен быть детерминированным; если получится использовать алгоритмы, приведённые на лекциях, то их можно не повторять, но нужно указать, как именно и к чему именно они применяются.&lt;br /&gt;
&lt;br /&gt;
''(задания принимаются по эл. почте в формате pdf, печатном или отсканированном рукописном; отсканированные файлы должны быть пригодны для печати и умещаться в один мегабайт)''&lt;br /&gt;
&lt;br /&gt;
''(11 декабря: все работы проверены, скоро будут результаты)''&lt;/div&gt;</summary>
		<author><name>Okhotin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=4353</id>
		<title>Формальные грамматики 2014</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=4353"/>
				<updated>2014-10-15T09:24:01Z</updated>
		
		<summary type="html">&lt;p&gt;Okhotin: /* Задание 2: к 13 октября */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Курс «Формальные грамматики»: сентябрь 2014 г., 15 лекций,&lt;br /&gt;
лектор: [http://users.utu.fi/aleokh/ Александр Охотин] (университет Турку, Финляндия).&lt;br /&gt;
&lt;br /&gt;
== Содержание лекций ==&lt;br /&gt;
&lt;br /&gt;
Приветствуются любые замечания&lt;br /&gt;
по содержанию материалов к лекциям:&lt;br /&gt;
если что-то неправильно или плохо понятно,&lt;br /&gt;
то, пожалуйста, напишите, что именно.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 1: Введение, регулярные языки ===&lt;br /&gt;
&lt;br /&gt;
Математические модели синтаксиса.&lt;br /&gt;
Формальные языки.&lt;br /&gt;
Детерминированные и недетерминированные конечные автоматы, регулярные выражения, их равносильность.&lt;br /&gt;
Примеры. Замкнутость относительно основных действий.&lt;br /&gt;
Нерегулярные языки.&lt;br /&gt;
''(8 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 1.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 2: Обыкновенные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные формальные грамматики&lt;br /&gt;
(в терминологии Хомского, «бесконтекстные»).&lt;br /&gt;
Определения через перезапись строк,&lt;br /&gt;
через деревья разбора,&lt;br /&gt;
через логический вывод&lt;br /&gt;
и через языковые уравнения.&lt;br /&gt;
Равносильность определений.&lt;br /&gt;
Примеры грамматик.&lt;br /&gt;
Замкнутость относительно объединения, конкатенации, звёздочки,&lt;br /&gt;
а также циклического сдвига.&lt;br /&gt;
''(8 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 2 3 4.pdf]]&lt;br /&gt;
(редакция от 16 сентября, добавлены все недостающие разделы)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 3: Свойства обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Замкнутость относительно пересечения с регулярными языками.&lt;br /&gt;
Языки, не представимые грамматиками.&lt;br /&gt;
Лемма накачки, лемма Огдена.&lt;br /&gt;
Грамматики над односимвольным алфавитом.&lt;br /&gt;
Нормальный вид Хомского.&lt;br /&gt;
''(9 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 4: Представления обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Нормальный вид Грейбах.&lt;br /&gt;
Нормальный вид Розенкранца.&lt;br /&gt;
Теорема Хомского--Шюценберже о представлении обыкновенных языков через язык Дика.&lt;br /&gt;
Теорема Грейбах о «самом сложном языке».&lt;br /&gt;
''(9 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 5: Конъюнктивные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Определения конъюнктивных грамматик&lt;br /&gt;
через логический вывод, перезапись термов, деревья разбора и языковые уравнения.&lt;br /&gt;
Примеры грамматик: wcw, объявление перед использованием, степени четвёрки.&lt;br /&gt;
Приведение к нормальному виду Хомского.&lt;br /&gt;
Понятие о булевых грамматиках.&lt;br /&gt;
''(11 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 5.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 6: Однозначные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Неоднозначность в естественных языках и языках программирования.&lt;br /&gt;
Комбинаторные и аналитические методы доказательства существенной неоднозначности.&lt;br /&gt;
''(11 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 6.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 7: Линейные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные линейные грамматики, лемма накачки для них.&lt;br /&gt;
Линейные конъюнктивные грамматики и клеточные автоматы, их равносильность.&lt;br /&gt;
Лемма Терье.&lt;br /&gt;
''(12 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 7.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 8: Многокомпонентные грамматики, логика FO(LFP) ===&lt;br /&gt;
&lt;br /&gt;
Грамматики обёртывания пар и грамматики надстройки деревьев (tree-adjoining grammars).&lt;br /&gt;
Логика первого порядка над позициями в строке FO(LFP),&lt;br /&gt;
представление грамматик в этой логике.&lt;br /&gt;
Алгоритм проверки истинности формул логики FO(LFP)&lt;br /&gt;
как прототип алгоритмов синтаксического анализа.&lt;br /&gt;
''(12 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 8.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 9: Табличные алгоритмы синтаксического анализа ===&lt;br /&gt;
&lt;br /&gt;
Алгоритм Кокка-Касами-Янгера.&lt;br /&gt;
Использование умножения матриц для ускорения алгоритма.&lt;br /&gt;
Умножение матриц по методу Штрассена и по методу Арлазарова и др.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 9 10.pdf]]&lt;br /&gt;
(редакция от 30 сентября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 10: Табличные алгоритмы синтаксического анализа (окончание) ===&lt;br /&gt;
&lt;br /&gt;
Разбор через умножение матриц (алгоритм Валианта). Разбор однозначных грамматик за квадратичное время.&lt;br /&gt;
Разбор для грамматик обёртывания пар.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 11: Разбор сверху вниз ===&lt;br /&gt;
&lt;br /&gt;
LL(k) анализ для обыкновенных грамматик, рекурсивный спуск.&lt;br /&gt;
Удаление пустых правил из LL-грамматик.&lt;br /&gt;
Языки, не представимые LL-грамматиками.&lt;br /&gt;
Теорема Розенкранца--Стирнса&lt;br /&gt;
о регулярном объединении LL-языков.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 11.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 12: LR(k) анализ и детерминированные языки ===&lt;br /&gt;
&lt;br /&gt;
Анализ через сдвиг и свёртку.&lt;br /&gt;
Детерминированный конечный автомат, читающий стек.&lt;br /&gt;
Класс LR(k) грамматик.&lt;br /&gt;
Построение таблиц по методу SLR(k).&lt;br /&gt;
Магазинные автоматы и их равносильность LR(k) грамматикам.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 12 13.pdf]]&lt;br /&gt;
(весьма неполная редакция от 25 сентября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 13: Автоматы, управляемые входом; обобщённый LR ===&lt;br /&gt;
&lt;br /&gt;
Автоматы, управляемые входом (input-driven automata; visibly pushdown automata). Равносильность их детерминированных и недетерминированных разновидностей. Грамматики, управляемые входом.&lt;br /&gt;
Обобщённый LR: пример работы, оценки сложности.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 14: Вычислительная сложность разбора ===&lt;br /&gt;
&lt;br /&gt;
Разбор обыкновенных грамматик с использованием памяти &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;,&lt;br /&gt;
разбор схемой высоты &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;.&lt;br /&gt;
Линейная грамматика для NLOGSPACE-полного языка.&lt;br /&gt;
Задача принадлежности данной строки данной обыкновенной грамматике&lt;br /&gt;
и её P-полнота.&lt;br /&gt;
Равносильность грамматик 1-го порядка классу P.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 14.pdf]]&lt;br /&gt;
(редакция от 2 октября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 15: Разрешимость свойств грамматик ===&lt;br /&gt;
&lt;br /&gt;
Язык вычислений машины Тьюринга (VALC)&lt;br /&gt;
и его представление в виде пересечения двух LL(1) линейных языков.&lt;br /&gt;
Неразрешимость основных свойств линейных грамматик.&lt;br /&gt;
Разрешимость проверки равносильности LL(k) грамматик.&lt;br /&gt;
Разрешимость задачи включения для автоматов, управляемых входом.&lt;br /&gt;
Иерархия семейств грамматик.&lt;br /&gt;
''(26 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 15.pdf]]&lt;br /&gt;
(редакция от 30 сентября)&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
=== Задание 1: к 22 сентября ===&lt;br /&gt;
&lt;br /&gt;
# Построить обыкновенную грамматику для языка всех палиндромов: &amp;lt;math&amp;gt;L_1 = \{ w \in \{a, b\}^* \mid w=w^R \}&amp;lt;/math&amp;gt;. Показать, как строка &amp;lt;math&amp;gt;ababa&amp;lt;/math&amp;gt; выводится с помощью перезаписи строк. Показать, что эта же строка принадлежит наименьшему решению системы языковых уравнений, построив несколько шагов последовательности &amp;lt;math&amp;gt;\varphi^k(\bot)&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Доказать, что не существует обыкновенной грамматики для языка &amp;lt;math&amp;gt;L_2=\{ a^{k_1} b \ldots a^{k_n} b \mid n \geqslant 1, 0 \leqslant k_1 \leqslant \ldots \leqslant k_n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Построить конъюнктивную грамматику для языка &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Построить однозначную обыкновенную грамматику для языка &amp;lt;math&amp;gt;L_3=\{c^m a^{\ell_0}b \ldots a^{\ell_{m-1}}b a^{\ell_m}b \ldots a^{\ell_z}b d^n \mid m,n, \ell_i \geqslant 0, z \geqslant 1, \ell_m=n\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Является ли язык &amp;lt;math&amp;gt;L_3&amp;lt;/math&amp;gt; линейным конъюнктивным?&lt;br /&gt;
# Пусть &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; --- язык Дика над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Существует ли грамматика обёртывания пар для языка &amp;lt;math&amp;gt;L_4 = \{wc^{|w|} \mid w \in D\} = \{\varepsilon, abcc, aabbcccc, ababcccc, aaabbbcccccc, \ldots\}&amp;lt;/math&amp;gt;?&lt;br /&gt;
# Построить грамматику 1-го порядка для языка &amp;lt;math&amp;gt;\{ww \mid w \in \{a, b\}^*\}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 homework 1 solutions.pdf]]&lt;br /&gt;
&lt;br /&gt;
''(проверенные работы переданы на кафедру)''&lt;br /&gt;
&lt;br /&gt;
=== Задание 2: к 13 октября ===&lt;br /&gt;
&lt;br /&gt;
# Постоить обыкновенную грамматику ''в нормальном виде Хомского'' для языка Дика &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Для этой грамматики и для входной строки &amp;lt;math&amp;gt;w=abaabba \notin D&amp;lt;/math&amp;gt;, построить таблицу разбора &amp;lt;math&amp;gt;T_{i,j}&amp;lt;/math&amp;gt;, как в алгоритме Кокка–Касами–Янгера.&lt;br /&gt;
# Рассмотреть работу алгоритма Валианта (синтаксический анализ через умножение матриц, лекции 9-10) для грамматики, построенной в прошлом упражнении. Среди всех действий, производимых алгоритмом, найти то произведение булевых матриц, после вычисления которого  станет верным условие &amp;lt;math&amp;gt;S \in f(P_{0,6})&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; — начальный символ грамматики. Описать, когда и как именно вычисляется это произведение — то есть, какая процедура, вызванная с какими значениями, и какой оператор в ней умножает какие две булевы матрицы какого размера, каков результат умножения, и какие элементы &amp;lt;math&amp;gt;P_{i,j}&amp;lt;/math&amp;gt; будут этим затронуты?&lt;br /&gt;
# Замкнут ли класс LL языков относительно пересечения с регулярными языками? Если замкнут, привести построение (см. построение такого рода для всего класса обыкновенных грамматик в материалах к лекциям 2-4), а если незамкнут, привести пример LL грамматики и регулярного языка с доказательством несуществования LL грамматики для их пересечения (см. доказательства такого рода в материалах к лекции 11).&lt;br /&gt;
# Построить линейную грамматику для языка &amp;lt;math&amp;gt;f(L_0)&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;L_0 = \{ w\$w^R \mid w \in \{a,b\}^* \}&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;f(L) = \{ [w_{1,1} \# \ldots \# w_{1, k_1}] \ldots [w_{m,1} \# \ldots \# w_{m, k_m}] \mid \exists i_1, \ldots, i_m: \; w_{1,i_1} w_{2,i_2} \ldots w_{m,i_m} \in L \}&amp;lt;/math&amp;gt; (это NLOGSPACE-полный язык, приведённый на лекции).&lt;br /&gt;
# Разрешима ли такая задача: «по данной обыкновенной грамматике, определить, порождает ли она хотя бы одну строку чётной длины»? Если разрешима, привести алгоритм, а если неразрешима, доказать это с помощью методов лекции 15 (использовав язык VALC в готовом виде, или же определив новый его вариант).&lt;br /&gt;
# Разрешима ли такая задача: «по данной обыкновенной грамматике, определить, порождает ли она хотя бы одну строку-палиндром &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt;, т.е., строку, для которой &amp;lt;math&amp;gt;w=w^R&amp;lt;/math&amp;gt;»?&lt;br /&gt;
# Для произвольной данной линейной грамматики G, пусть &amp;lt;math&amp;gt;L=\{vu \mid uv \in L(G)\}&amp;lt;/math&amp;gt; — циклический сдвиг порождаемого ею языка. Построить алгоритм, определяющий принадлежность данной на входе строки языку &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt;, и ''использующий как можно меньше памяти''. Объём памяти считать функцией &amp;lt;math&amp;gt;s(n)&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; — длина входной строки, и этот объём должен быть по крайней мере меньше, чем линейным. Примечания: алгоритм строится по грамматике, и потому зависимостью требуемого объёма памяти от размера этой грамматики можно пренебречь; алгоритм должен быть детерминированным; если получится использовать алгоритмы, приведённые на лекциях, то их можно не повторять, но нужно указать, как именно и к чему именно они применяются.&lt;br /&gt;
&lt;br /&gt;
''(задания принимаются по эл. почте в формате pdf, печатном или отсканированном рукописном; отсканированные файлы должны быть пригодны для печати и умещаться в один мегабайт)''&lt;br /&gt;
&lt;br /&gt;
''(получены работы Е. Акимова, К. Б. Аманова, А. Афанасьева, П. Авдеева, Т. Бондарева, Б. Бугаева, С. Ворончихина, И. Гайдая, И. В. Гончаровой, К. Елагина, Д. Жаркова, И. Жиркова, А. В. Калакуцкого, Н. Карташова, А. Комарова, А. Лиозновой, А. Маловой, Т. С. Малыгиной, Д. Мелешко, К. Новокрещенова, Н. Обедина, А. Ордияна, С. Сидорова, Н. К. Ситдыковой, Е. Старостиной, М. Тураева, Т. Тураева, Е. Устюжаниной, М. Хабибуллина, А. Цветкова, П. Чуприкова, О. Яснева)''&lt;/div&gt;</summary>
		<author><name>Okhotin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=4326</id>
		<title>Формальные грамматики 2014</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=4326"/>
				<updated>2014-10-14T14:59:11Z</updated>
		
		<summary type="html">&lt;p&gt;Okhotin: /* Задание 2: к 13 октября */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Курс «Формальные грамматики»: сентябрь 2014 г., 15 лекций,&lt;br /&gt;
лектор: [http://users.utu.fi/aleokh/ Александр Охотин] (университет Турку, Финляндия).&lt;br /&gt;
&lt;br /&gt;
== Содержание лекций ==&lt;br /&gt;
&lt;br /&gt;
Приветствуются любые замечания&lt;br /&gt;
по содержанию материалов к лекциям:&lt;br /&gt;
если что-то неправильно или плохо понятно,&lt;br /&gt;
то, пожалуйста, напишите, что именно.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 1: Введение, регулярные языки ===&lt;br /&gt;
&lt;br /&gt;
Математические модели синтаксиса.&lt;br /&gt;
Формальные языки.&lt;br /&gt;
Детерминированные и недетерминированные конечные автоматы, регулярные выражения, их равносильность.&lt;br /&gt;
Примеры. Замкнутость относительно основных действий.&lt;br /&gt;
Нерегулярные языки.&lt;br /&gt;
''(8 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 1.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 2: Обыкновенные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные формальные грамматики&lt;br /&gt;
(в терминологии Хомского, «бесконтекстные»).&lt;br /&gt;
Определения через перезапись строк,&lt;br /&gt;
через деревья разбора,&lt;br /&gt;
через логический вывод&lt;br /&gt;
и через языковые уравнения.&lt;br /&gt;
Равносильность определений.&lt;br /&gt;
Примеры грамматик.&lt;br /&gt;
Замкнутость относительно объединения, конкатенации, звёздочки,&lt;br /&gt;
а также циклического сдвига.&lt;br /&gt;
''(8 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 2 3 4.pdf]]&lt;br /&gt;
(редакция от 16 сентября, добавлены все недостающие разделы)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 3: Свойства обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Замкнутость относительно пересечения с регулярными языками.&lt;br /&gt;
Языки, не представимые грамматиками.&lt;br /&gt;
Лемма накачки, лемма Огдена.&lt;br /&gt;
Грамматики над односимвольным алфавитом.&lt;br /&gt;
Нормальный вид Хомского.&lt;br /&gt;
''(9 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 4: Представления обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Нормальный вид Грейбах.&lt;br /&gt;
Нормальный вид Розенкранца.&lt;br /&gt;
Теорема Хомского--Шюценберже о представлении обыкновенных языков через язык Дика.&lt;br /&gt;
Теорема Грейбах о «самом сложном языке».&lt;br /&gt;
''(9 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 5: Конъюнктивные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Определения конъюнктивных грамматик&lt;br /&gt;
через логический вывод, перезапись термов, деревья разбора и языковые уравнения.&lt;br /&gt;
Примеры грамматик: wcw, объявление перед использованием, степени четвёрки.&lt;br /&gt;
Приведение к нормальному виду Хомского.&lt;br /&gt;
Понятие о булевых грамматиках.&lt;br /&gt;
''(11 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 5.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 6: Однозначные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Неоднозначность в естественных языках и языках программирования.&lt;br /&gt;
Комбинаторные и аналитические методы доказательства существенной неоднозначности.&lt;br /&gt;
''(11 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 6.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 7: Линейные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные линейные грамматики, лемма накачки для них.&lt;br /&gt;
Линейные конъюнктивные грамматики и клеточные автоматы, их равносильность.&lt;br /&gt;
Лемма Терье.&lt;br /&gt;
''(12 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 7.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 8: Многокомпонентные грамматики, логика FO(LFP) ===&lt;br /&gt;
&lt;br /&gt;
Грамматики обёртывания пар и грамматики надстройки деревьев (tree-adjoining grammars).&lt;br /&gt;
Логика первого порядка над позициями в строке FO(LFP),&lt;br /&gt;
представление грамматик в этой логике.&lt;br /&gt;
Алгоритм проверки истинности формул логики FO(LFP)&lt;br /&gt;
как прототип алгоритмов синтаксического анализа.&lt;br /&gt;
''(12 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 8.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 9: Табличные алгоритмы синтаксического анализа ===&lt;br /&gt;
&lt;br /&gt;
Алгоритм Кокка-Касами-Янгера.&lt;br /&gt;
Использование умножения матриц для ускорения алгоритма.&lt;br /&gt;
Умножение матриц по методу Штрассена и по методу Арлазарова и др.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 9 10.pdf]]&lt;br /&gt;
(редакция от 30 сентября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 10: Табличные алгоритмы синтаксического анализа (окончание) ===&lt;br /&gt;
&lt;br /&gt;
Разбор через умножение матриц (алгоритм Валианта). Разбор однозначных грамматик за квадратичное время.&lt;br /&gt;
Разбор для грамматик обёртывания пар.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 11: Разбор сверху вниз ===&lt;br /&gt;
&lt;br /&gt;
LL(k) анализ для обыкновенных грамматик, рекурсивный спуск.&lt;br /&gt;
Удаление пустых правил из LL-грамматик.&lt;br /&gt;
Языки, не представимые LL-грамматиками.&lt;br /&gt;
Теорема Розенкранца--Стирнса&lt;br /&gt;
о регулярном объединении LL-языков.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 11.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 12: LR(k) анализ и детерминированные языки ===&lt;br /&gt;
&lt;br /&gt;
Анализ через сдвиг и свёртку.&lt;br /&gt;
Детерминированный конечный автомат, читающий стек.&lt;br /&gt;
Класс LR(k) грамматик.&lt;br /&gt;
Построение таблиц по методу SLR(k).&lt;br /&gt;
Магазинные автоматы и их равносильность LR(k) грамматикам.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 12 13.pdf]]&lt;br /&gt;
(весьма неполная редакция от 25 сентября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 13: Автоматы, управляемые входом; обобщённый LR ===&lt;br /&gt;
&lt;br /&gt;
Автоматы, управляемые входом (input-driven automata; visibly pushdown automata). Равносильность их детерминированных и недетерминированных разновидностей. Грамматики, управляемые входом.&lt;br /&gt;
Обобщённый LR: пример работы, оценки сложности.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 14: Вычислительная сложность разбора ===&lt;br /&gt;
&lt;br /&gt;
Разбор обыкновенных грамматик с использованием памяти &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;,&lt;br /&gt;
разбор схемой высоты &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;.&lt;br /&gt;
Линейная грамматика для NLOGSPACE-полного языка.&lt;br /&gt;
Задача принадлежности данной строки данной обыкновенной грамматике&lt;br /&gt;
и её P-полнота.&lt;br /&gt;
Равносильность грамматик 1-го порядка классу P.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 14.pdf]]&lt;br /&gt;
(редакция от 2 октября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 15: Разрешимость свойств грамматик ===&lt;br /&gt;
&lt;br /&gt;
Язык вычислений машины Тьюринга (VALC)&lt;br /&gt;
и его представление в виде пересечения двух LL(1) линейных языков.&lt;br /&gt;
Неразрешимость основных свойств линейных грамматик.&lt;br /&gt;
Разрешимость проверки равносильности LL(k) грамматик.&lt;br /&gt;
Разрешимость задачи включения для автоматов, управляемых входом.&lt;br /&gt;
Иерархия семейств грамматик.&lt;br /&gt;
''(26 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 15.pdf]]&lt;br /&gt;
(редакция от 30 сентября)&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
=== Задание 1: к 22 сентября ===&lt;br /&gt;
&lt;br /&gt;
# Построить обыкновенную грамматику для языка всех палиндромов: &amp;lt;math&amp;gt;L_1 = \{ w \in \{a, b\}^* \mid w=w^R \}&amp;lt;/math&amp;gt;. Показать, как строка &amp;lt;math&amp;gt;ababa&amp;lt;/math&amp;gt; выводится с помощью перезаписи строк. Показать, что эта же строка принадлежит наименьшему решению системы языковых уравнений, построив несколько шагов последовательности &amp;lt;math&amp;gt;\varphi^k(\bot)&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Доказать, что не существует обыкновенной грамматики для языка &amp;lt;math&amp;gt;L_2=\{ a^{k_1} b \ldots a^{k_n} b \mid n \geqslant 1, 0 \leqslant k_1 \leqslant \ldots \leqslant k_n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Построить конъюнктивную грамматику для языка &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Построить однозначную обыкновенную грамматику для языка &amp;lt;math&amp;gt;L_3=\{c^m a^{\ell_0}b \ldots a^{\ell_{m-1}}b a^{\ell_m}b \ldots a^{\ell_z}b d^n \mid m,n, \ell_i \geqslant 0, z \geqslant 1, \ell_m=n\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Является ли язык &amp;lt;math&amp;gt;L_3&amp;lt;/math&amp;gt; линейным конъюнктивным?&lt;br /&gt;
# Пусть &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; --- язык Дика над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Существует ли грамматика обёртывания пар для языка &amp;lt;math&amp;gt;L_4 = \{wc^{|w|} \mid w \in D\} = \{\varepsilon, abcc, aabbcccc, ababcccc, aaabbbcccccc, \ldots\}&amp;lt;/math&amp;gt;?&lt;br /&gt;
# Построить грамматику 1-го порядка для языка &amp;lt;math&amp;gt;\{ww \mid w \in \{a, b\}^*\}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 homework 1 solutions.pdf]]&lt;br /&gt;
&lt;br /&gt;
''(проверенные работы переданы на кафедру)''&lt;br /&gt;
&lt;br /&gt;
=== Задание 2: к 13 октября ===&lt;br /&gt;
&lt;br /&gt;
# Постоить обыкновенную грамматику ''в нормальном виде Хомского'' для языка Дика &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Для этой грамматики и для входной строки &amp;lt;math&amp;gt;w=abaabba \notin D&amp;lt;/math&amp;gt;, построить таблицу разбора &amp;lt;math&amp;gt;T_{i,j}&amp;lt;/math&amp;gt;, как в алгоритме Кокка–Касами–Янгера.&lt;br /&gt;
# Рассмотреть работу алгоритма Валианта (синтаксический анализ через умножение матриц, лекции 9-10) для грамматики, построенной в прошлом упражнении. Среди всех действий, производимых алгоритмом, найти то произведение булевых матриц, после вычисления которого  станет верным условие &amp;lt;math&amp;gt;S \in f(P_{0,6})&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; — начальный символ грамматики. Описать, когда и как именно вычисляется это произведение — то есть, какая процедура, вызванная с какими значениями, и какой оператор в ней умножает какие две булевы матрицы какого размера, каков результат умножения, и какие элементы &amp;lt;math&amp;gt;P_{i,j}&amp;lt;/math&amp;gt; будут этим затронуты?&lt;br /&gt;
# Замкнут ли класс LL языков относительно пересечения с регулярными языками? Если замкнут, привести построение (см. построение такого рода для всего класса обыкновенных грамматик в материалах к лекциям 2-4), а если незамкнут, привести пример LL грамматики и регулярного языка с доказательством несуществования LL грамматики для их пересечения (см. доказательства такого рода в материалах к лекции 11).&lt;br /&gt;
# Построить линейную грамматику для языка &amp;lt;math&amp;gt;f(L_0)&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;L_0 = \{ w\$w^R \mid w \in \{a,b\}^* \}&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;f(L) = \{ [w_{1,1} \# \ldots \# w_{1, k_1}] \ldots [w_{m,1} \# \ldots \# w_{m, k_m}] \mid \exists i_1, \ldots, i_m: \; w_{1,i_1} w_{2,i_2} \ldots w_{m,i_m} \in L \}&amp;lt;/math&amp;gt; (это NLOGSPACE-полный язык, приведённый на лекции).&lt;br /&gt;
# Разрешима ли такая задача: «по данной обыкновенной грамматике, определить, порождает ли она хотя бы одну строку чётной длины»? Если разрешима, привести алгоритм, а если неразрешима, доказать это с помощью методов лекции 15 (использовав язык VALC в готовом виде, или же определив новый его вариант).&lt;br /&gt;
# Разрешима ли такая задача: «по данной обыкновенной грамматике, определить, порождает ли она хотя бы одну строку-палиндром &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt;, т.е., строку, для которой &amp;lt;math&amp;gt;w=w^R&amp;lt;/math&amp;gt;»?&lt;br /&gt;
# Для произвольной данной линейной грамматики G, пусть &amp;lt;math&amp;gt;L=\{vu \mid uv \in L(G)\}&amp;lt;/math&amp;gt; — циклический сдвиг порождаемого ею языка. Построить алгоритм, определяющий принадлежность данной на входе строки языку &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt;, и ''использующий как можно меньше памяти''. Объём памяти считать функцией &amp;lt;math&amp;gt;s(n)&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; — длина входной строки, и этот объём должен быть по крайней мере меньше, чем линейным. Примечания: алгоритм строится по грамматике, и потому зависимостью требуемого объёма памяти от размера этой грамматики можно пренебречь; алгоритм должен быть детерминированным; если получится использовать алгоритмы, приведённые на лекциях, то их можно не повторять, но нужно указать, как именно и к чему именно они применяются.&lt;br /&gt;
&lt;br /&gt;
''(задания принимаются по эл. почте в формате pdf, печатном или отсканированном рукописном; отсканированные файлы должны быть пригодны для печати и умещаться в один мегабайт)''&lt;br /&gt;
&lt;br /&gt;
''(получены работы Е. Акимова, К. Б. Аманова, А. Афанасьева, П. Авдеева, Т. Бондарева, Б. Бугаева, С. Ворончихина, И. Гайдая, И. В. Гончаровой, К. Елагина, Д. Жаркова, А. В. Калакуцкого, Н. Карташова, А. Лиозновой, А. Маловой, Т. С. Малыгиной, Д. Мелешко, К. Новокрещенова, Н. Обедина, А. Ордияна, С. Сидорова, Н. К. Ситдыковой, Е. Старостиной, М. Тураева, Т. Тураева, Е. Устюжаниной, М. Хабибуллина, А. Цветкова, П. Чуприкова, О. Яснева)''&lt;/div&gt;</summary>
		<author><name>Okhotin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=4325</id>
		<title>Формальные грамматики 2014</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=4325"/>
				<updated>2014-10-14T13:38:30Z</updated>
		
		<summary type="html">&lt;p&gt;Okhotin: /* Задание 2: к 13 октября */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Курс «Формальные грамматики»: сентябрь 2014 г., 15 лекций,&lt;br /&gt;
лектор: [http://users.utu.fi/aleokh/ Александр Охотин] (университет Турку, Финляндия).&lt;br /&gt;
&lt;br /&gt;
== Содержание лекций ==&lt;br /&gt;
&lt;br /&gt;
Приветствуются любые замечания&lt;br /&gt;
по содержанию материалов к лекциям:&lt;br /&gt;
если что-то неправильно или плохо понятно,&lt;br /&gt;
то, пожалуйста, напишите, что именно.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 1: Введение, регулярные языки ===&lt;br /&gt;
&lt;br /&gt;
Математические модели синтаксиса.&lt;br /&gt;
Формальные языки.&lt;br /&gt;
Детерминированные и недетерминированные конечные автоматы, регулярные выражения, их равносильность.&lt;br /&gt;
Примеры. Замкнутость относительно основных действий.&lt;br /&gt;
Нерегулярные языки.&lt;br /&gt;
''(8 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 1.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 2: Обыкновенные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные формальные грамматики&lt;br /&gt;
(в терминологии Хомского, «бесконтекстные»).&lt;br /&gt;
Определения через перезапись строк,&lt;br /&gt;
через деревья разбора,&lt;br /&gt;
через логический вывод&lt;br /&gt;
и через языковые уравнения.&lt;br /&gt;
Равносильность определений.&lt;br /&gt;
Примеры грамматик.&lt;br /&gt;
Замкнутость относительно объединения, конкатенации, звёздочки,&lt;br /&gt;
а также циклического сдвига.&lt;br /&gt;
''(8 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 2 3 4.pdf]]&lt;br /&gt;
(редакция от 16 сентября, добавлены все недостающие разделы)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 3: Свойства обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Замкнутость относительно пересечения с регулярными языками.&lt;br /&gt;
Языки, не представимые грамматиками.&lt;br /&gt;
Лемма накачки, лемма Огдена.&lt;br /&gt;
Грамматики над односимвольным алфавитом.&lt;br /&gt;
Нормальный вид Хомского.&lt;br /&gt;
''(9 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 4: Представления обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Нормальный вид Грейбах.&lt;br /&gt;
Нормальный вид Розенкранца.&lt;br /&gt;
Теорема Хомского--Шюценберже о представлении обыкновенных языков через язык Дика.&lt;br /&gt;
Теорема Грейбах о «самом сложном языке».&lt;br /&gt;
''(9 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 5: Конъюнктивные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Определения конъюнктивных грамматик&lt;br /&gt;
через логический вывод, перезапись термов, деревья разбора и языковые уравнения.&lt;br /&gt;
Примеры грамматик: wcw, объявление перед использованием, степени четвёрки.&lt;br /&gt;
Приведение к нормальному виду Хомского.&lt;br /&gt;
Понятие о булевых грамматиках.&lt;br /&gt;
''(11 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 5.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 6: Однозначные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Неоднозначность в естественных языках и языках программирования.&lt;br /&gt;
Комбинаторные и аналитические методы доказательства существенной неоднозначности.&lt;br /&gt;
''(11 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 6.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 7: Линейные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные линейные грамматики, лемма накачки для них.&lt;br /&gt;
Линейные конъюнктивные грамматики и клеточные автоматы, их равносильность.&lt;br /&gt;
Лемма Терье.&lt;br /&gt;
''(12 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 7.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 8: Многокомпонентные грамматики, логика FO(LFP) ===&lt;br /&gt;
&lt;br /&gt;
Грамматики обёртывания пар и грамматики надстройки деревьев (tree-adjoining grammars).&lt;br /&gt;
Логика первого порядка над позициями в строке FO(LFP),&lt;br /&gt;
представление грамматик в этой логике.&lt;br /&gt;
Алгоритм проверки истинности формул логики FO(LFP)&lt;br /&gt;
как прототип алгоритмов синтаксического анализа.&lt;br /&gt;
''(12 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 8.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 9: Табличные алгоритмы синтаксического анализа ===&lt;br /&gt;
&lt;br /&gt;
Алгоритм Кокка-Касами-Янгера.&lt;br /&gt;
Использование умножения матриц для ускорения алгоритма.&lt;br /&gt;
Умножение матриц по методу Штрассена и по методу Арлазарова и др.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 9 10.pdf]]&lt;br /&gt;
(редакция от 30 сентября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 10: Табличные алгоритмы синтаксического анализа (окончание) ===&lt;br /&gt;
&lt;br /&gt;
Разбор через умножение матриц (алгоритм Валианта). Разбор однозначных грамматик за квадратичное время.&lt;br /&gt;
Разбор для грамматик обёртывания пар.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 11: Разбор сверху вниз ===&lt;br /&gt;
&lt;br /&gt;
LL(k) анализ для обыкновенных грамматик, рекурсивный спуск.&lt;br /&gt;
Удаление пустых правил из LL-грамматик.&lt;br /&gt;
Языки, не представимые LL-грамматиками.&lt;br /&gt;
Теорема Розенкранца--Стирнса&lt;br /&gt;
о регулярном объединении LL-языков.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 11.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 12: LR(k) анализ и детерминированные языки ===&lt;br /&gt;
&lt;br /&gt;
Анализ через сдвиг и свёртку.&lt;br /&gt;
Детерминированный конечный автомат, читающий стек.&lt;br /&gt;
Класс LR(k) грамматик.&lt;br /&gt;
Построение таблиц по методу SLR(k).&lt;br /&gt;
Магазинные автоматы и их равносильность LR(k) грамматикам.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 12 13.pdf]]&lt;br /&gt;
(весьма неполная редакция от 25 сентября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 13: Автоматы, управляемые входом; обобщённый LR ===&lt;br /&gt;
&lt;br /&gt;
Автоматы, управляемые входом (input-driven automata; visibly pushdown automata). Равносильность их детерминированных и недетерминированных разновидностей. Грамматики, управляемые входом.&lt;br /&gt;
Обобщённый LR: пример работы, оценки сложности.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 14: Вычислительная сложность разбора ===&lt;br /&gt;
&lt;br /&gt;
Разбор обыкновенных грамматик с использованием памяти &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;,&lt;br /&gt;
разбор схемой высоты &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;.&lt;br /&gt;
Линейная грамматика для NLOGSPACE-полного языка.&lt;br /&gt;
Задача принадлежности данной строки данной обыкновенной грамматике&lt;br /&gt;
и её P-полнота.&lt;br /&gt;
Равносильность грамматик 1-го порядка классу P.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 14.pdf]]&lt;br /&gt;
(редакция от 2 октября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 15: Разрешимость свойств грамматик ===&lt;br /&gt;
&lt;br /&gt;
Язык вычислений машины Тьюринга (VALC)&lt;br /&gt;
и его представление в виде пересечения двух LL(1) линейных языков.&lt;br /&gt;
Неразрешимость основных свойств линейных грамматик.&lt;br /&gt;
Разрешимость проверки равносильности LL(k) грамматик.&lt;br /&gt;
Разрешимость задачи включения для автоматов, управляемых входом.&lt;br /&gt;
Иерархия семейств грамматик.&lt;br /&gt;
''(26 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 15.pdf]]&lt;br /&gt;
(редакция от 30 сентября)&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
=== Задание 1: к 22 сентября ===&lt;br /&gt;
&lt;br /&gt;
# Построить обыкновенную грамматику для языка всех палиндромов: &amp;lt;math&amp;gt;L_1 = \{ w \in \{a, b\}^* \mid w=w^R \}&amp;lt;/math&amp;gt;. Показать, как строка &amp;lt;math&amp;gt;ababa&amp;lt;/math&amp;gt; выводится с помощью перезаписи строк. Показать, что эта же строка принадлежит наименьшему решению системы языковых уравнений, построив несколько шагов последовательности &amp;lt;math&amp;gt;\varphi^k(\bot)&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Доказать, что не существует обыкновенной грамматики для языка &amp;lt;math&amp;gt;L_2=\{ a^{k_1} b \ldots a^{k_n} b \mid n \geqslant 1, 0 \leqslant k_1 \leqslant \ldots \leqslant k_n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Построить конъюнктивную грамматику для языка &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Построить однозначную обыкновенную грамматику для языка &amp;lt;math&amp;gt;L_3=\{c^m a^{\ell_0}b \ldots a^{\ell_{m-1}}b a^{\ell_m}b \ldots a^{\ell_z}b d^n \mid m,n, \ell_i \geqslant 0, z \geqslant 1, \ell_m=n\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Является ли язык &amp;lt;math&amp;gt;L_3&amp;lt;/math&amp;gt; линейным конъюнктивным?&lt;br /&gt;
# Пусть &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; --- язык Дика над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Существует ли грамматика обёртывания пар для языка &amp;lt;math&amp;gt;L_4 = \{wc^{|w|} \mid w \in D\} = \{\varepsilon, abcc, aabbcccc, ababcccc, aaabbbcccccc, \ldots\}&amp;lt;/math&amp;gt;?&lt;br /&gt;
# Построить грамматику 1-го порядка для языка &amp;lt;math&amp;gt;\{ww \mid w \in \{a, b\}^*\}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 homework 1 solutions.pdf]]&lt;br /&gt;
&lt;br /&gt;
''(проверенные работы переданы на кафедру)''&lt;br /&gt;
&lt;br /&gt;
=== Задание 2: к 13 октября ===&lt;br /&gt;
&lt;br /&gt;
# Постоить обыкновенную грамматику ''в нормальном виде Хомского'' для языка Дика &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Для этой грамматики и для входной строки &amp;lt;math&amp;gt;w=abaabba \notin D&amp;lt;/math&amp;gt;, построить таблицу разбора &amp;lt;math&amp;gt;T_{i,j}&amp;lt;/math&amp;gt;, как в алгоритме Кокка–Касами–Янгера.&lt;br /&gt;
# Рассмотреть работу алгоритма Валианта (синтаксический анализ через умножение матриц, лекции 9-10) для грамматики, построенной в прошлом упражнении. Среди всех действий, производимых алгоритмом, найти то произведение булевых матриц, после вычисления которого  станет верным условие &amp;lt;math&amp;gt;S \in f(P_{0,6})&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; — начальный символ грамматики. Описать, когда и как именно вычисляется это произведение — то есть, какая процедура, вызванная с какими значениями, и какой оператор в ней умножает какие две булевы матрицы какого размера, каков результат умножения, и какие элементы &amp;lt;math&amp;gt;P_{i,j}&amp;lt;/math&amp;gt; будут этим затронуты?&lt;br /&gt;
# Замкнут ли класс LL языков относительно пересечения с регулярными языками? Если замкнут, привести построение (см. построение такого рода для всего класса обыкновенных грамматик в материалах к лекциям 2-4), а если незамкнут, привести пример LL грамматики и регулярного языка с доказательством несуществования LL грамматики для их пересечения (см. доказательства такого рода в материалах к лекции 11).&lt;br /&gt;
# Построить линейную грамматику для языка &amp;lt;math&amp;gt;f(L_0)&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;L_0 = \{ w\$w^R \mid w \in \{a,b\}^* \}&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;f(L) = \{ [w_{1,1} \# \ldots \# w_{1, k_1}] \ldots [w_{m,1} \# \ldots \# w_{m, k_m}] \mid \exists i_1, \ldots, i_m: \; w_{1,i_1} w_{2,i_2} \ldots w_{m,i_m} \in L \}&amp;lt;/math&amp;gt; (это NLOGSPACE-полный язык, приведённый на лекции).&lt;br /&gt;
# Разрешима ли такая задача: «по данной обыкновенной грамматике, определить, порождает ли она хотя бы одну строку чётной длины»? Если разрешима, привести алгоритм, а если неразрешима, доказать это с помощью методов лекции 15 (использовав язык VALC в готовом виде, или же определив новый его вариант).&lt;br /&gt;
# Разрешима ли такая задача: «по данной обыкновенной грамматике, определить, порождает ли она хотя бы одну строку-палиндром &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt;, т.е., строку, для которой &amp;lt;math&amp;gt;w=w^R&amp;lt;/math&amp;gt;»?&lt;br /&gt;
# Для произвольной данной линейной грамматики G, пусть &amp;lt;math&amp;gt;L=\{vu \mid uv \in L(G)\}&amp;lt;/math&amp;gt; — циклический сдвиг порождаемого ею языка. Построить алгоритм, определяющий принадлежность данной на входе строки языку &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt;, и ''использующий как можно меньше памяти''. Объём памяти считать функцией &amp;lt;math&amp;gt;s(n)&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; — длина входной строки, и этот объём должен быть по крайней мере меньше, чем линейным. Примечания: алгоритм строится по грамматике, и потому зависимостью требуемого объёма памяти от размера этой грамматики можно пренебречь; алгоритм должен быть детерминированным; если получится использовать алгоритмы, приведённые на лекциях, то их можно не повторять, но нужно указать, как именно и к чему именно они применяются.&lt;br /&gt;
&lt;br /&gt;
''(задания принимаются по эл. почте в формате pdf, печатном или отсканированном рукописном; отсканированные файлы должны быть пригодны для печати и умещаться в один мегабайт)''&lt;br /&gt;
&lt;br /&gt;
''(получены работы Е. Акимова, К. Б. Аманова, А. Афанасьева, П. Авдеева, Т. Бондарева, Б. Бугаева, С. Ворончихина, К. Елагина, И. Гайдая, И. В. Гончаровой, Д. Жаркова, А. В. Калакуцкого, Н. Карташова, А. Лиозновой, А. Маловой, Т. С. Малыгиной, Д. Мелешко, К. Новокрещенова, Н. Обедина, А. Ордияна, С. Сидорова, Н. К. Ситдыковой, Е. Старостиной, М. Тураева, Т. Тураева, Е. Устюжаниной, М. Хабибуллина, А. Цветкова, П. Чуприкова, О. Яснева)''&lt;/div&gt;</summary>
		<author><name>Okhotin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=4319</id>
		<title>Формальные грамматики 2014</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=4319"/>
				<updated>2014-10-14T10:16:34Z</updated>
		
		<summary type="html">&lt;p&gt;Okhotin: /* Задание 2: к 13 октября */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Курс «Формальные грамматики»: сентябрь 2014 г., 15 лекций,&lt;br /&gt;
лектор: [http://users.utu.fi/aleokh/ Александр Охотин] (университет Турку, Финляндия).&lt;br /&gt;
&lt;br /&gt;
== Содержание лекций ==&lt;br /&gt;
&lt;br /&gt;
Приветствуются любые замечания&lt;br /&gt;
по содержанию материалов к лекциям:&lt;br /&gt;
если что-то неправильно или плохо понятно,&lt;br /&gt;
то, пожалуйста, напишите, что именно.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 1: Введение, регулярные языки ===&lt;br /&gt;
&lt;br /&gt;
Математические модели синтаксиса.&lt;br /&gt;
Формальные языки.&lt;br /&gt;
Детерминированные и недетерминированные конечные автоматы, регулярные выражения, их равносильность.&lt;br /&gt;
Примеры. Замкнутость относительно основных действий.&lt;br /&gt;
Нерегулярные языки.&lt;br /&gt;
''(8 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 1.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 2: Обыкновенные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные формальные грамматики&lt;br /&gt;
(в терминологии Хомского, «бесконтекстные»).&lt;br /&gt;
Определения через перезапись строк,&lt;br /&gt;
через деревья разбора,&lt;br /&gt;
через логический вывод&lt;br /&gt;
и через языковые уравнения.&lt;br /&gt;
Равносильность определений.&lt;br /&gt;
Примеры грамматик.&lt;br /&gt;
Замкнутость относительно объединения, конкатенации, звёздочки,&lt;br /&gt;
а также циклического сдвига.&lt;br /&gt;
''(8 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 2 3 4.pdf]]&lt;br /&gt;
(редакция от 16 сентября, добавлены все недостающие разделы)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 3: Свойства обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Замкнутость относительно пересечения с регулярными языками.&lt;br /&gt;
Языки, не представимые грамматиками.&lt;br /&gt;
Лемма накачки, лемма Огдена.&lt;br /&gt;
Грамматики над односимвольным алфавитом.&lt;br /&gt;
Нормальный вид Хомского.&lt;br /&gt;
''(9 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 4: Представления обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Нормальный вид Грейбах.&lt;br /&gt;
Нормальный вид Розенкранца.&lt;br /&gt;
Теорема Хомского--Шюценберже о представлении обыкновенных языков через язык Дика.&lt;br /&gt;
Теорема Грейбах о «самом сложном языке».&lt;br /&gt;
''(9 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 5: Конъюнктивные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Определения конъюнктивных грамматик&lt;br /&gt;
через логический вывод, перезапись термов, деревья разбора и языковые уравнения.&lt;br /&gt;
Примеры грамматик: wcw, объявление перед использованием, степени четвёрки.&lt;br /&gt;
Приведение к нормальному виду Хомского.&lt;br /&gt;
Понятие о булевых грамматиках.&lt;br /&gt;
''(11 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 5.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 6: Однозначные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Неоднозначность в естественных языках и языках программирования.&lt;br /&gt;
Комбинаторные и аналитические методы доказательства существенной неоднозначности.&lt;br /&gt;
''(11 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 6.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 7: Линейные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные линейные грамматики, лемма накачки для них.&lt;br /&gt;
Линейные конъюнктивные грамматики и клеточные автоматы, их равносильность.&lt;br /&gt;
Лемма Терье.&lt;br /&gt;
''(12 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 7.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 8: Многокомпонентные грамматики, логика FO(LFP) ===&lt;br /&gt;
&lt;br /&gt;
Грамматики обёртывания пар и грамматики надстройки деревьев (tree-adjoining grammars).&lt;br /&gt;
Логика первого порядка над позициями в строке FO(LFP),&lt;br /&gt;
представление грамматик в этой логике.&lt;br /&gt;
Алгоритм проверки истинности формул логики FO(LFP)&lt;br /&gt;
как прототип алгоритмов синтаксического анализа.&lt;br /&gt;
''(12 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 8.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 9: Табличные алгоритмы синтаксического анализа ===&lt;br /&gt;
&lt;br /&gt;
Алгоритм Кокка-Касами-Янгера.&lt;br /&gt;
Использование умножения матриц для ускорения алгоритма.&lt;br /&gt;
Умножение матриц по методу Штрассена и по методу Арлазарова и др.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 9 10.pdf]]&lt;br /&gt;
(редакция от 30 сентября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 10: Табличные алгоритмы синтаксического анализа (окончание) ===&lt;br /&gt;
&lt;br /&gt;
Разбор через умножение матриц (алгоритм Валианта). Разбор однозначных грамматик за квадратичное время.&lt;br /&gt;
Разбор для грамматик обёртывания пар.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 11: Разбор сверху вниз ===&lt;br /&gt;
&lt;br /&gt;
LL(k) анализ для обыкновенных грамматик, рекурсивный спуск.&lt;br /&gt;
Удаление пустых правил из LL-грамматик.&lt;br /&gt;
Языки, не представимые LL-грамматиками.&lt;br /&gt;
Теорема Розенкранца--Стирнса&lt;br /&gt;
о регулярном объединении LL-языков.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 11.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 12: LR(k) анализ и детерминированные языки ===&lt;br /&gt;
&lt;br /&gt;
Анализ через сдвиг и свёртку.&lt;br /&gt;
Детерминированный конечный автомат, читающий стек.&lt;br /&gt;
Класс LR(k) грамматик.&lt;br /&gt;
Построение таблиц по методу SLR(k).&lt;br /&gt;
Магазинные автоматы и их равносильность LR(k) грамматикам.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 12 13.pdf]]&lt;br /&gt;
(весьма неполная редакция от 25 сентября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 13: Автоматы, управляемые входом; обобщённый LR ===&lt;br /&gt;
&lt;br /&gt;
Автоматы, управляемые входом (input-driven automata; visibly pushdown automata). Равносильность их детерминированных и недетерминированных разновидностей. Грамматики, управляемые входом.&lt;br /&gt;
Обобщённый LR: пример работы, оценки сложности.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 14: Вычислительная сложность разбора ===&lt;br /&gt;
&lt;br /&gt;
Разбор обыкновенных грамматик с использованием памяти &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;,&lt;br /&gt;
разбор схемой высоты &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;.&lt;br /&gt;
Линейная грамматика для NLOGSPACE-полного языка.&lt;br /&gt;
Задача принадлежности данной строки данной обыкновенной грамматике&lt;br /&gt;
и её P-полнота.&lt;br /&gt;
Равносильность грамматик 1-го порядка классу P.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 14.pdf]]&lt;br /&gt;
(редакция от 2 октября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 15: Разрешимость свойств грамматик ===&lt;br /&gt;
&lt;br /&gt;
Язык вычислений машины Тьюринга (VALC)&lt;br /&gt;
и его представление в виде пересечения двух LL(1) линейных языков.&lt;br /&gt;
Неразрешимость основных свойств линейных грамматик.&lt;br /&gt;
Разрешимость проверки равносильности LL(k) грамматик.&lt;br /&gt;
Разрешимость задачи включения для автоматов, управляемых входом.&lt;br /&gt;
Иерархия семейств грамматик.&lt;br /&gt;
''(26 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 15.pdf]]&lt;br /&gt;
(редакция от 30 сентября)&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
=== Задание 1: к 22 сентября ===&lt;br /&gt;
&lt;br /&gt;
# Построить обыкновенную грамматику для языка всех палиндромов: &amp;lt;math&amp;gt;L_1 = \{ w \in \{a, b\}^* \mid w=w^R \}&amp;lt;/math&amp;gt;. Показать, как строка &amp;lt;math&amp;gt;ababa&amp;lt;/math&amp;gt; выводится с помощью перезаписи строк. Показать, что эта же строка принадлежит наименьшему решению системы языковых уравнений, построив несколько шагов последовательности &amp;lt;math&amp;gt;\varphi^k(\bot)&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Доказать, что не существует обыкновенной грамматики для языка &amp;lt;math&amp;gt;L_2=\{ a^{k_1} b \ldots a^{k_n} b \mid n \geqslant 1, 0 \leqslant k_1 \leqslant \ldots \leqslant k_n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Построить конъюнктивную грамматику для языка &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Построить однозначную обыкновенную грамматику для языка &amp;lt;math&amp;gt;L_3=\{c^m a^{\ell_0}b \ldots a^{\ell_{m-1}}b a^{\ell_m}b \ldots a^{\ell_z}b d^n \mid m,n, \ell_i \geqslant 0, z \geqslant 1, \ell_m=n\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Является ли язык &amp;lt;math&amp;gt;L_3&amp;lt;/math&amp;gt; линейным конъюнктивным?&lt;br /&gt;
# Пусть &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; --- язык Дика над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Существует ли грамматика обёртывания пар для языка &amp;lt;math&amp;gt;L_4 = \{wc^{|w|} \mid w \in D\} = \{\varepsilon, abcc, aabbcccc, ababcccc, aaabbbcccccc, \ldots\}&amp;lt;/math&amp;gt;?&lt;br /&gt;
# Построить грамматику 1-го порядка для языка &amp;lt;math&amp;gt;\{ww \mid w \in \{a, b\}^*\}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 homework 1 solutions.pdf]]&lt;br /&gt;
&lt;br /&gt;
''(проверенные работы переданы на кафедру)''&lt;br /&gt;
&lt;br /&gt;
=== Задание 2: к 13 октября ===&lt;br /&gt;
&lt;br /&gt;
# Постоить обыкновенную грамматику ''в нормальном виде Хомского'' для языка Дика &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Для этой грамматики и для входной строки &amp;lt;math&amp;gt;w=abaabba \notin D&amp;lt;/math&amp;gt;, построить таблицу разбора &amp;lt;math&amp;gt;T_{i,j}&amp;lt;/math&amp;gt;, как в алгоритме Кокка–Касами–Янгера.&lt;br /&gt;
# Рассмотреть работу алгоритма Валианта (синтаксический анализ через умножение матриц, лекции 9-10) для грамматики, построенной в прошлом упражнении. Среди всех действий, производимых алгоритмом, найти то произведение булевых матриц, после вычисления которого  станет верным условие &amp;lt;math&amp;gt;S \in f(P_{0,6})&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; — начальный символ грамматики. Описать, когда и как именно вычисляется это произведение — то есть, какая процедура, вызванная с какими значениями, и какой оператор в ней умножает какие две булевы матрицы какого размера, каков результат умножения, и какие элементы &amp;lt;math&amp;gt;P_{i,j}&amp;lt;/math&amp;gt; будут этим затронуты?&lt;br /&gt;
# Замкнут ли класс LL языков относительно пересечения с регулярными языками? Если замкнут, привести построение (см. построение такого рода для всего класса обыкновенных грамматик в материалах к лекциям 2-4), а если незамкнут, привести пример LL грамматики и регулярного языка с доказательством несуществования LL грамматики для их пересечения (см. доказательства такого рода в материалах к лекции 11).&lt;br /&gt;
# Построить линейную грамматику для языка &amp;lt;math&amp;gt;f(L_0)&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;L_0 = \{ w\$w^R \mid w \in \{a,b\}^* \}&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;f(L) = \{ [w_{1,1} \# \ldots \# w_{1, k_1}] \ldots [w_{m,1} \# \ldots \# w_{m, k_m}] \mid \exists i_1, \ldots, i_m: \; w_{1,i_1} w_{2,i_2} \ldots w_{m,i_m} \in L \}&amp;lt;/math&amp;gt; (это NLOGSPACE-полный язык, приведённый на лекции).&lt;br /&gt;
# Разрешима ли такая задача: «по данной обыкновенной грамматике, определить, порождает ли она хотя бы одну строку чётной длины»? Если разрешима, привести алгоритм, а если неразрешима, доказать это с помощью методов лекции 15 (использовав язык VALC в готовом виде, или же определив новый его вариант).&lt;br /&gt;
# Разрешима ли такая задача: «по данной обыкновенной грамматике, определить, порождает ли она хотя бы одну строку-палиндром &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt;, т.е., строку, для которой &amp;lt;math&amp;gt;w=w^R&amp;lt;/math&amp;gt;»?&lt;br /&gt;
# Для произвольной данной линейной грамматики G, пусть &amp;lt;math&amp;gt;L=\{vu \mid uv \in L(G)\}&amp;lt;/math&amp;gt; — циклический сдвиг порождаемого ею языка. Построить алгоритм, определяющий принадлежность данной на входе строки языку &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt;, и ''использующий как можно меньше памяти''. Объём памяти считать функцией &amp;lt;math&amp;gt;s(n)&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; — длина входной строки, и этот объём должен быть по крайней мере меньше, чем линейным. Примечания: алгоритм строится по грамматике, и потому зависимостью требуемого объёма памяти от размера этой грамматики можно пренебречь; алгоритм должен быть детерминированным; если получится использовать алгоритмы, приведённые на лекциях, то их можно не повторять, но нужно указать, как именно и к чему именно они применяются.&lt;br /&gt;
&lt;br /&gt;
''(задания принимаются по эл. почте в формате pdf, печатном или отсканированном рукописном; отсканированные файлы должны быть пригодны для печати и умещаться в один мегабайт)''&lt;br /&gt;
&lt;br /&gt;
''(получены работы Е. Акимова, К. Б. Аманова, А. Афанасьева, П. Авдеева, Т. Бондарева, Б. Бугаева, С. Ворончихина, К. Елагина, И. Гайдая, И. В. Гончаровой, Д. Жаркова, А. В. Калакуцкого, Н. Карташова, А. Маловой, Т. С. Малыгиной, Д. Мелешко, К. Новокрещенова, Н. Обедина, А. Ордияна, С. Сидорова, Н. К. Ситдыковой, Е. Старостиной, М. Тураева, Т. Тураева, Е. Устюжаниной, М. Хабибуллина, А. Цветкова, П. Чуприкова, О. Яснева)''&lt;/div&gt;</summary>
		<author><name>Okhotin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=4299</id>
		<title>Формальные грамматики 2014</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=4299"/>
				<updated>2014-10-13T11:53:42Z</updated>
		
		<summary type="html">&lt;p&gt;Okhotin: /* Задание 2: к 13 октября */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Курс «Формальные грамматики»: сентябрь 2014 г., 15 лекций,&lt;br /&gt;
лектор: [http://users.utu.fi/aleokh/ Александр Охотин] (университет Турку, Финляндия).&lt;br /&gt;
&lt;br /&gt;
== Содержание лекций ==&lt;br /&gt;
&lt;br /&gt;
Приветствуются любые замечания&lt;br /&gt;
по содержанию материалов к лекциям:&lt;br /&gt;
если что-то неправильно или плохо понятно,&lt;br /&gt;
то, пожалуйста, напишите, что именно.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 1: Введение, регулярные языки ===&lt;br /&gt;
&lt;br /&gt;
Математические модели синтаксиса.&lt;br /&gt;
Формальные языки.&lt;br /&gt;
Детерминированные и недетерминированные конечные автоматы, регулярные выражения, их равносильность.&lt;br /&gt;
Примеры. Замкнутость относительно основных действий.&lt;br /&gt;
Нерегулярные языки.&lt;br /&gt;
''(8 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 1.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 2: Обыкновенные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные формальные грамматики&lt;br /&gt;
(в терминологии Хомского, «бесконтекстные»).&lt;br /&gt;
Определения через перезапись строк,&lt;br /&gt;
через деревья разбора,&lt;br /&gt;
через логический вывод&lt;br /&gt;
и через языковые уравнения.&lt;br /&gt;
Равносильность определений.&lt;br /&gt;
Примеры грамматик.&lt;br /&gt;
Замкнутость относительно объединения, конкатенации, звёздочки,&lt;br /&gt;
а также циклического сдвига.&lt;br /&gt;
''(8 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 2 3 4.pdf]]&lt;br /&gt;
(редакция от 16 сентября, добавлены все недостающие разделы)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 3: Свойства обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Замкнутость относительно пересечения с регулярными языками.&lt;br /&gt;
Языки, не представимые грамматиками.&lt;br /&gt;
Лемма накачки, лемма Огдена.&lt;br /&gt;
Грамматики над односимвольным алфавитом.&lt;br /&gt;
Нормальный вид Хомского.&lt;br /&gt;
''(9 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 4: Представления обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Нормальный вид Грейбах.&lt;br /&gt;
Нормальный вид Розенкранца.&lt;br /&gt;
Теорема Хомского--Шюценберже о представлении обыкновенных языков через язык Дика.&lt;br /&gt;
Теорема Грейбах о «самом сложном языке».&lt;br /&gt;
''(9 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 5: Конъюнктивные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Определения конъюнктивных грамматик&lt;br /&gt;
через логический вывод, перезапись термов, деревья разбора и языковые уравнения.&lt;br /&gt;
Примеры грамматик: wcw, объявление перед использованием, степени четвёрки.&lt;br /&gt;
Приведение к нормальному виду Хомского.&lt;br /&gt;
Понятие о булевых грамматиках.&lt;br /&gt;
''(11 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 5.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 6: Однозначные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Неоднозначность в естественных языках и языках программирования.&lt;br /&gt;
Комбинаторные и аналитические методы доказательства существенной неоднозначности.&lt;br /&gt;
''(11 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 6.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 7: Линейные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные линейные грамматики, лемма накачки для них.&lt;br /&gt;
Линейные конъюнктивные грамматики и клеточные автоматы, их равносильность.&lt;br /&gt;
Лемма Терье.&lt;br /&gt;
''(12 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 7.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 8: Многокомпонентные грамматики, логика FO(LFP) ===&lt;br /&gt;
&lt;br /&gt;
Грамматики обёртывания пар и грамматики надстройки деревьев (tree-adjoining grammars).&lt;br /&gt;
Логика первого порядка над позициями в строке FO(LFP),&lt;br /&gt;
представление грамматик в этой логике.&lt;br /&gt;
Алгоритм проверки истинности формул логики FO(LFP)&lt;br /&gt;
как прототип алгоритмов синтаксического анализа.&lt;br /&gt;
''(12 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 8.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 9: Табличные алгоритмы синтаксического анализа ===&lt;br /&gt;
&lt;br /&gt;
Алгоритм Кокка-Касами-Янгера.&lt;br /&gt;
Использование умножения матриц для ускорения алгоритма.&lt;br /&gt;
Умножение матриц по методу Штрассена и по методу Арлазарова и др.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 9 10.pdf]]&lt;br /&gt;
(редакция от 30 сентября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 10: Табличные алгоритмы синтаксического анализа (окончание) ===&lt;br /&gt;
&lt;br /&gt;
Разбор через умножение матриц (алгоритм Валианта). Разбор однозначных грамматик за квадратичное время.&lt;br /&gt;
Разбор для грамматик обёртывания пар.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 11: Разбор сверху вниз ===&lt;br /&gt;
&lt;br /&gt;
LL(k) анализ для обыкновенных грамматик, рекурсивный спуск.&lt;br /&gt;
Удаление пустых правил из LL-грамматик.&lt;br /&gt;
Языки, не представимые LL-грамматиками.&lt;br /&gt;
Теорема Розенкранца--Стирнса&lt;br /&gt;
о регулярном объединении LL-языков.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 11.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 12: LR(k) анализ и детерминированные языки ===&lt;br /&gt;
&lt;br /&gt;
Анализ через сдвиг и свёртку.&lt;br /&gt;
Детерминированный конечный автомат, читающий стек.&lt;br /&gt;
Класс LR(k) грамматик.&lt;br /&gt;
Построение таблиц по методу SLR(k).&lt;br /&gt;
Магазинные автоматы и их равносильность LR(k) грамматикам.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 12 13.pdf]]&lt;br /&gt;
(весьма неполная редакция от 25 сентября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 13: Автоматы, управляемые входом; обобщённый LR ===&lt;br /&gt;
&lt;br /&gt;
Автоматы, управляемые входом (input-driven automata; visibly pushdown automata). Равносильность их детерминированных и недетерминированных разновидностей. Грамматики, управляемые входом.&lt;br /&gt;
Обобщённый LR: пример работы, оценки сложности.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 14: Вычислительная сложность разбора ===&lt;br /&gt;
&lt;br /&gt;
Разбор обыкновенных грамматик с использованием памяти &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;,&lt;br /&gt;
разбор схемой высоты &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;.&lt;br /&gt;
Линейная грамматика для NLOGSPACE-полного языка.&lt;br /&gt;
Задача принадлежности данной строки данной обыкновенной грамматике&lt;br /&gt;
и её P-полнота.&lt;br /&gt;
Равносильность грамматик 1-го порядка классу P.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 14.pdf]]&lt;br /&gt;
(редакция от 2 октября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 15: Разрешимость свойств грамматик ===&lt;br /&gt;
&lt;br /&gt;
Язык вычислений машины Тьюринга (VALC)&lt;br /&gt;
и его представление в виде пересечения двух LL(1) линейных языков.&lt;br /&gt;
Неразрешимость основных свойств линейных грамматик.&lt;br /&gt;
Разрешимость проверки равносильности LL(k) грамматик.&lt;br /&gt;
Разрешимость задачи включения для автоматов, управляемых входом.&lt;br /&gt;
Иерархия семейств грамматик.&lt;br /&gt;
''(26 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 15.pdf]]&lt;br /&gt;
(редакция от 30 сентября)&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
=== Задание 1: к 22 сентября ===&lt;br /&gt;
&lt;br /&gt;
# Построить обыкновенную грамматику для языка всех палиндромов: &amp;lt;math&amp;gt;L_1 = \{ w \in \{a, b\}^* \mid w=w^R \}&amp;lt;/math&amp;gt;. Показать, как строка &amp;lt;math&amp;gt;ababa&amp;lt;/math&amp;gt; выводится с помощью перезаписи строк. Показать, что эта же строка принадлежит наименьшему решению системы языковых уравнений, построив несколько шагов последовательности &amp;lt;math&amp;gt;\varphi^k(\bot)&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Доказать, что не существует обыкновенной грамматики для языка &amp;lt;math&amp;gt;L_2=\{ a^{k_1} b \ldots a^{k_n} b \mid n \geqslant 1, 0 \leqslant k_1 \leqslant \ldots \leqslant k_n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Построить конъюнктивную грамматику для языка &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Построить однозначную обыкновенную грамматику для языка &amp;lt;math&amp;gt;L_3=\{c^m a^{\ell_0}b \ldots a^{\ell_{m-1}}b a^{\ell_m}b \ldots a^{\ell_z}b d^n \mid m,n, \ell_i \geqslant 0, z \geqslant 1, \ell_m=n\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Является ли язык &amp;lt;math&amp;gt;L_3&amp;lt;/math&amp;gt; линейным конъюнктивным?&lt;br /&gt;
# Пусть &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; --- язык Дика над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Существует ли грамматика обёртывания пар для языка &amp;lt;math&amp;gt;L_4 = \{wc^{|w|} \mid w \in D\} = \{\varepsilon, abcc, aabbcccc, ababcccc, aaabbbcccccc, \ldots\}&amp;lt;/math&amp;gt;?&lt;br /&gt;
# Построить грамматику 1-го порядка для языка &amp;lt;math&amp;gt;\{ww \mid w \in \{a, b\}^*\}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 homework 1 solutions.pdf]]&lt;br /&gt;
&lt;br /&gt;
''(проверенные работы переданы на кафедру)''&lt;br /&gt;
&lt;br /&gt;
=== Задание 2: к 13 октября ===&lt;br /&gt;
&lt;br /&gt;
# Постоить обыкновенную грамматику ''в нормальном виде Хомского'' для языка Дика &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Для этой грамматики и для входной строки &amp;lt;math&amp;gt;w=abaabba \notin D&amp;lt;/math&amp;gt;, построить таблицу разбора &amp;lt;math&amp;gt;T_{i,j}&amp;lt;/math&amp;gt;, как в алгоритме Кокка–Касами–Янгера.&lt;br /&gt;
# Рассмотреть работу алгоритма Валианта (синтаксический анализ через умножение матриц, лекции 9-10) для грамматики, построенной в прошлом упражнении. Среди всех действий, производимых алгоритмом, найти то произведение булевых матриц, после вычисления которого  станет верным условие &amp;lt;math&amp;gt;S \in f(P_{0,6})&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; — начальный символ грамматики. Описать, когда и как именно вычисляется это произведение — то есть, какая процедура, вызванная с какими значениями, и какой оператор в ней умножает какие две булевы матрицы какого размера, каков результат умножения, и какие элементы &amp;lt;math&amp;gt;P_{i,j}&amp;lt;/math&amp;gt; будут этим затронуты?&lt;br /&gt;
# Замкнут ли класс LL языков относительно пересечения с регулярными языками? Если замкнут, привести построение (см. построение такого рода для всего класса обыкновенных грамматик в материалах к лекциям 2-4), а если незамкнут, привести пример LL грамматики и регулярного языка с доказательством несуществования LL грамматики для их пересечения (см. доказательства такого рода в материалах к лекции 11).&lt;br /&gt;
# Построить линейную грамматику для языка &amp;lt;math&amp;gt;f(L_0)&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;L_0 = \{ w\$w^R \mid w \in \{a,b\}^* \}&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;f(L) = \{ [w_{1,1} \# \ldots \# w_{1, k_1}] \ldots [w_{m,1} \# \ldots \# w_{m, k_m}] \mid \exists i_1, \ldots, i_m: \; w_{1,i_1} w_{2,i_2} \ldots w_{m,i_m} \in L \}&amp;lt;/math&amp;gt; (это NLOGSPACE-полный язык, приведённый на лекции).&lt;br /&gt;
# Разрешима ли такая задача: «по данной обыкновенной грамматике, определить, порождает ли она хотя бы одну строку чётной длины»? Если разрешима, привести алгоритм, а если неразрешима, доказать это с помощью методов лекции 15 (использовав язык VALC в готовом виде, или же определив новый его вариант).&lt;br /&gt;
# Разрешима ли такая задача: «по данной обыкновенной грамматике, определить, порождает ли она хотя бы одну строку-палиндром &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt;, т.е., строку, для которой &amp;lt;math&amp;gt;w=w^R&amp;lt;/math&amp;gt;»?&lt;br /&gt;
# Для произвольной данной линейной грамматики G, пусть &amp;lt;math&amp;gt;L=\{vu \mid uv \in L(G)\}&amp;lt;/math&amp;gt; — циклический сдвиг порождаемого ею языка. Построить алгоритм, определяющий принадлежность данной на входе строки языку &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt;, и ''использующий как можно меньше памяти''. Объём памяти считать функцией &amp;lt;math&amp;gt;s(n)&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; — длина входной строки, и этот объём должен быть по крайней мере меньше, чем линейным. Примечания: алгоритм строится по грамматике, и потому зависимостью требуемого объёма памяти от размера этой грамматики можно пренебречь; алгоритм должен быть детерминированным; если получится использовать алгоритмы, приведённые на лекциях, то их можно не повторять, но нужно указать, как именно и к чему именно они применяются.&lt;br /&gt;
&lt;br /&gt;
''(задания принимаются по эл. почте в формате pdf, печатном или отсканированном рукописном; отсканированные файлы должны быть пригодны для печати и умещаться в один мегабайт)''&lt;br /&gt;
&lt;br /&gt;
''(получены работы Е. Акимова, А. Афанасьева, П. Авдеева, Б. Бугаева, К. Елагина, И. Гайдая, Д. Жаркова, А. В. Калакуцкого, Н. Карташова, К. Новокрещенова, Н. Обедина, А. Ордияна, С. Сидорова, М. Тураева, Т. Тураева, Е. Устюжаниной, М. Хабибуллина, А. Цветкова, П. Чуприкова)''&lt;/div&gt;</summary>
		<author><name>Okhotin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=4297</id>
		<title>Формальные грамматики 2014</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=4297"/>
				<updated>2014-10-13T10:14:45Z</updated>
		
		<summary type="html">&lt;p&gt;Okhotin: /* Задание 2: к 13 октября */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Курс «Формальные грамматики»: сентябрь 2014 г., 15 лекций,&lt;br /&gt;
лектор: [http://users.utu.fi/aleokh/ Александр Охотин] (университет Турку, Финляндия).&lt;br /&gt;
&lt;br /&gt;
== Содержание лекций ==&lt;br /&gt;
&lt;br /&gt;
Приветствуются любые замечания&lt;br /&gt;
по содержанию материалов к лекциям:&lt;br /&gt;
если что-то неправильно или плохо понятно,&lt;br /&gt;
то, пожалуйста, напишите, что именно.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 1: Введение, регулярные языки ===&lt;br /&gt;
&lt;br /&gt;
Математические модели синтаксиса.&lt;br /&gt;
Формальные языки.&lt;br /&gt;
Детерминированные и недетерминированные конечные автоматы, регулярные выражения, их равносильность.&lt;br /&gt;
Примеры. Замкнутость относительно основных действий.&lt;br /&gt;
Нерегулярные языки.&lt;br /&gt;
''(8 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 1.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 2: Обыкновенные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные формальные грамматики&lt;br /&gt;
(в терминологии Хомского, «бесконтекстные»).&lt;br /&gt;
Определения через перезапись строк,&lt;br /&gt;
через деревья разбора,&lt;br /&gt;
через логический вывод&lt;br /&gt;
и через языковые уравнения.&lt;br /&gt;
Равносильность определений.&lt;br /&gt;
Примеры грамматик.&lt;br /&gt;
Замкнутость относительно объединения, конкатенации, звёздочки,&lt;br /&gt;
а также циклического сдвига.&lt;br /&gt;
''(8 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 2 3 4.pdf]]&lt;br /&gt;
(редакция от 16 сентября, добавлены все недостающие разделы)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 3: Свойства обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Замкнутость относительно пересечения с регулярными языками.&lt;br /&gt;
Языки, не представимые грамматиками.&lt;br /&gt;
Лемма накачки, лемма Огдена.&lt;br /&gt;
Грамматики над односимвольным алфавитом.&lt;br /&gt;
Нормальный вид Хомского.&lt;br /&gt;
''(9 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 4: Представления обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Нормальный вид Грейбах.&lt;br /&gt;
Нормальный вид Розенкранца.&lt;br /&gt;
Теорема Хомского--Шюценберже о представлении обыкновенных языков через язык Дика.&lt;br /&gt;
Теорема Грейбах о «самом сложном языке».&lt;br /&gt;
''(9 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 5: Конъюнктивные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Определения конъюнктивных грамматик&lt;br /&gt;
через логический вывод, перезапись термов, деревья разбора и языковые уравнения.&lt;br /&gt;
Примеры грамматик: wcw, объявление перед использованием, степени четвёрки.&lt;br /&gt;
Приведение к нормальному виду Хомского.&lt;br /&gt;
Понятие о булевых грамматиках.&lt;br /&gt;
''(11 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 5.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 6: Однозначные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Неоднозначность в естественных языках и языках программирования.&lt;br /&gt;
Комбинаторные и аналитические методы доказательства существенной неоднозначности.&lt;br /&gt;
''(11 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 6.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 7: Линейные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные линейные грамматики, лемма накачки для них.&lt;br /&gt;
Линейные конъюнктивные грамматики и клеточные автоматы, их равносильность.&lt;br /&gt;
Лемма Терье.&lt;br /&gt;
''(12 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 7.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 8: Многокомпонентные грамматики, логика FO(LFP) ===&lt;br /&gt;
&lt;br /&gt;
Грамматики обёртывания пар и грамматики надстройки деревьев (tree-adjoining grammars).&lt;br /&gt;
Логика первого порядка над позициями в строке FO(LFP),&lt;br /&gt;
представление грамматик в этой логике.&lt;br /&gt;
Алгоритм проверки истинности формул логики FO(LFP)&lt;br /&gt;
как прототип алгоритмов синтаксического анализа.&lt;br /&gt;
''(12 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 8.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 9: Табличные алгоритмы синтаксического анализа ===&lt;br /&gt;
&lt;br /&gt;
Алгоритм Кокка-Касами-Янгера.&lt;br /&gt;
Использование умножения матриц для ускорения алгоритма.&lt;br /&gt;
Умножение матриц по методу Штрассена и по методу Арлазарова и др.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 9 10.pdf]]&lt;br /&gt;
(редакция от 30 сентября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 10: Табличные алгоритмы синтаксического анализа (окончание) ===&lt;br /&gt;
&lt;br /&gt;
Разбор через умножение матриц (алгоритм Валианта). Разбор однозначных грамматик за квадратичное время.&lt;br /&gt;
Разбор для грамматик обёртывания пар.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 11: Разбор сверху вниз ===&lt;br /&gt;
&lt;br /&gt;
LL(k) анализ для обыкновенных грамматик, рекурсивный спуск.&lt;br /&gt;
Удаление пустых правил из LL-грамматик.&lt;br /&gt;
Языки, не представимые LL-грамматиками.&lt;br /&gt;
Теорема Розенкранца--Стирнса&lt;br /&gt;
о регулярном объединении LL-языков.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 11.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 12: LR(k) анализ и детерминированные языки ===&lt;br /&gt;
&lt;br /&gt;
Анализ через сдвиг и свёртку.&lt;br /&gt;
Детерминированный конечный автомат, читающий стек.&lt;br /&gt;
Класс LR(k) грамматик.&lt;br /&gt;
Построение таблиц по методу SLR(k).&lt;br /&gt;
Магазинные автоматы и их равносильность LR(k) грамматикам.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 12 13.pdf]]&lt;br /&gt;
(весьма неполная редакция от 25 сентября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 13: Автоматы, управляемые входом; обобщённый LR ===&lt;br /&gt;
&lt;br /&gt;
Автоматы, управляемые входом (input-driven automata; visibly pushdown automata). Равносильность их детерминированных и недетерминированных разновидностей. Грамматики, управляемые входом.&lt;br /&gt;
Обобщённый LR: пример работы, оценки сложности.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 14: Вычислительная сложность разбора ===&lt;br /&gt;
&lt;br /&gt;
Разбор обыкновенных грамматик с использованием памяти &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;,&lt;br /&gt;
разбор схемой высоты &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;.&lt;br /&gt;
Линейная грамматика для NLOGSPACE-полного языка.&lt;br /&gt;
Задача принадлежности данной строки данной обыкновенной грамматике&lt;br /&gt;
и её P-полнота.&lt;br /&gt;
Равносильность грамматик 1-го порядка классу P.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 14.pdf]]&lt;br /&gt;
(редакция от 2 октября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 15: Разрешимость свойств грамматик ===&lt;br /&gt;
&lt;br /&gt;
Язык вычислений машины Тьюринга (VALC)&lt;br /&gt;
и его представление в виде пересечения двух LL(1) линейных языков.&lt;br /&gt;
Неразрешимость основных свойств линейных грамматик.&lt;br /&gt;
Разрешимость проверки равносильности LL(k) грамматик.&lt;br /&gt;
Разрешимость задачи включения для автоматов, управляемых входом.&lt;br /&gt;
Иерархия семейств грамматик.&lt;br /&gt;
''(26 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 15.pdf]]&lt;br /&gt;
(редакция от 30 сентября)&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
=== Задание 1: к 22 сентября ===&lt;br /&gt;
&lt;br /&gt;
# Построить обыкновенную грамматику для языка всех палиндромов: &amp;lt;math&amp;gt;L_1 = \{ w \in \{a, b\}^* \mid w=w^R \}&amp;lt;/math&amp;gt;. Показать, как строка &amp;lt;math&amp;gt;ababa&amp;lt;/math&amp;gt; выводится с помощью перезаписи строк. Показать, что эта же строка принадлежит наименьшему решению системы языковых уравнений, построив несколько шагов последовательности &amp;lt;math&amp;gt;\varphi^k(\bot)&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Доказать, что не существует обыкновенной грамматики для языка &amp;lt;math&amp;gt;L_2=\{ a^{k_1} b \ldots a^{k_n} b \mid n \geqslant 1, 0 \leqslant k_1 \leqslant \ldots \leqslant k_n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Построить конъюнктивную грамматику для языка &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Построить однозначную обыкновенную грамматику для языка &amp;lt;math&amp;gt;L_3=\{c^m a^{\ell_0}b \ldots a^{\ell_{m-1}}b a^{\ell_m}b \ldots a^{\ell_z}b d^n \mid m,n, \ell_i \geqslant 0, z \geqslant 1, \ell_m=n\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Является ли язык &amp;lt;math&amp;gt;L_3&amp;lt;/math&amp;gt; линейным конъюнктивным?&lt;br /&gt;
# Пусть &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; --- язык Дика над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Существует ли грамматика обёртывания пар для языка &amp;lt;math&amp;gt;L_4 = \{wc^{|w|} \mid w \in D\} = \{\varepsilon, abcc, aabbcccc, ababcccc, aaabbbcccccc, \ldots\}&amp;lt;/math&amp;gt;?&lt;br /&gt;
# Построить грамматику 1-го порядка для языка &amp;lt;math&amp;gt;\{ww \mid w \in \{a, b\}^*\}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 homework 1 solutions.pdf]]&lt;br /&gt;
&lt;br /&gt;
''(проверенные работы переданы на кафедру)''&lt;br /&gt;
&lt;br /&gt;
=== Задание 2: к 13 октября ===&lt;br /&gt;
&lt;br /&gt;
# Постоить обыкновенную грамматику ''в нормальном виде Хомского'' для языка Дика &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Для этой грамматики и для входной строки &amp;lt;math&amp;gt;w=abaabba \notin D&amp;lt;/math&amp;gt;, построить таблицу разбора &amp;lt;math&amp;gt;T_{i,j}&amp;lt;/math&amp;gt;, как в алгоритме Кокка–Касами–Янгера.&lt;br /&gt;
# Рассмотреть работу алгоритма Валианта (синтаксический анализ через умножение матриц, лекции 9-10) для грамматики, построенной в прошлом упражнении. Среди всех действий, производимых алгоритмом, найти то произведение булевых матриц, после вычисления которого  станет верным условие &amp;lt;math&amp;gt;S \in f(P_{0,6})&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; — начальный символ грамматики. Описать, когда и как именно вычисляется это произведение — то есть, какая процедура, вызванная с какими значениями, и какой оператор в ней умножает какие две булевы матрицы какого размера, каков результат умножения, и какие элементы &amp;lt;math&amp;gt;P_{i,j}&amp;lt;/math&amp;gt; будут этим затронуты?&lt;br /&gt;
# Замкнут ли класс LL языков относительно пересечения с регулярными языками? Если замкнут, привести построение (см. построение такого рода для всего класса обыкновенных грамматик в материалах к лекциям 2-4), а если незамкнут, привести пример LL грамматики и регулярного языка с доказательством несуществования LL грамматики для их пересечения (см. доказательства такого рода в материалах к лекции 11).&lt;br /&gt;
# Построить линейную грамматику для языка &amp;lt;math&amp;gt;f(L_0)&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;L_0 = \{ w\$w^R \mid w \in \{a,b\}^* \}&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;f(L) = \{ [w_{1,1} \# \ldots \# w_{1, k_1}] \ldots [w_{m,1} \# \ldots \# w_{m, k_m}] \mid \exists i_1, \ldots, i_m: \; w_{1,i_1} w_{2,i_2} \ldots w_{m,i_m} \in L \}&amp;lt;/math&amp;gt; (это NLOGSPACE-полный язык, приведённый на лекции).&lt;br /&gt;
# Разрешима ли такая задача: «по данной обыкновенной грамматике, определить, порождает ли она хотя бы одну строку чётной длины»? Если разрешима, привести алгоритм, а если неразрешима, доказать это с помощью методов лекции 15 (использовав язык VALC в готовом виде, или же определив новый его вариант).&lt;br /&gt;
# Разрешима ли такая задача: «по данной обыкновенной грамматике, определить, порождает ли она хотя бы одну строку-палиндром &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt;, т.е., строку, для которой &amp;lt;math&amp;gt;w=w^R&amp;lt;/math&amp;gt;»?&lt;br /&gt;
# Для произвольной данной линейной грамматики G, пусть &amp;lt;math&amp;gt;L=\{vu \mid uv \in L(G)\}&amp;lt;/math&amp;gt; — циклический сдвиг порождаемого ею языка. Построить алгоритм, определяющий принадлежность данной на входе строки языку &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt;, и ''использующий как можно меньше памяти''. Объём памяти считать функцией &amp;lt;math&amp;gt;s(n)&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; — длина входной строки, и этот объём должен быть по крайней мере меньше, чем линейным. Примечания: алгоритм строится по грамматике, и потому зависимостью требуемого объёма памяти от размера этой грамматики можно пренебречь; алгоритм должен быть детерминированным; если получится использовать алгоритмы, приведённые на лекциях, то их можно не повторять, но нужно указать, как именно и к чему именно они применяются.&lt;br /&gt;
&lt;br /&gt;
''(задания принимаются по эл. почте в формате pdf, печатном или отсканированном рукописном; отсканированные файлы должны быть пригодны для печати и умещаться в один мегабайт)''&lt;br /&gt;
&lt;br /&gt;
''(получены работы Е. Акимова, А. Афанасьева, П. Авдеева, Б. Бугаева, К. Елагина, И. Гайдая, Д. Жаркова, А. В. Калакуцкого, Н. Карташова, К. Новокрещенова, Н. Обедина, А. Ордияна, С. Сидорова, Т. Тураева, Е. Устюжаниной, М. Хабибуллина, А. Цветкова, П. Чуприкова)''&lt;/div&gt;</summary>
		<author><name>Okhotin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=4296</id>
		<title>Формальные грамматики 2014</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=4296"/>
				<updated>2014-10-13T10:12:19Z</updated>
		
		<summary type="html">&lt;p&gt;Okhotin: /* Задание 2: к 13 октября */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Курс «Формальные грамматики»: сентябрь 2014 г., 15 лекций,&lt;br /&gt;
лектор: [http://users.utu.fi/aleokh/ Александр Охотин] (университет Турку, Финляндия).&lt;br /&gt;
&lt;br /&gt;
== Содержание лекций ==&lt;br /&gt;
&lt;br /&gt;
Приветствуются любые замечания&lt;br /&gt;
по содержанию материалов к лекциям:&lt;br /&gt;
если что-то неправильно или плохо понятно,&lt;br /&gt;
то, пожалуйста, напишите, что именно.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 1: Введение, регулярные языки ===&lt;br /&gt;
&lt;br /&gt;
Математические модели синтаксиса.&lt;br /&gt;
Формальные языки.&lt;br /&gt;
Детерминированные и недетерминированные конечные автоматы, регулярные выражения, их равносильность.&lt;br /&gt;
Примеры. Замкнутость относительно основных действий.&lt;br /&gt;
Нерегулярные языки.&lt;br /&gt;
''(8 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 1.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 2: Обыкновенные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные формальные грамматики&lt;br /&gt;
(в терминологии Хомского, «бесконтекстные»).&lt;br /&gt;
Определения через перезапись строк,&lt;br /&gt;
через деревья разбора,&lt;br /&gt;
через логический вывод&lt;br /&gt;
и через языковые уравнения.&lt;br /&gt;
Равносильность определений.&lt;br /&gt;
Примеры грамматик.&lt;br /&gt;
Замкнутость относительно объединения, конкатенации, звёздочки,&lt;br /&gt;
а также циклического сдвига.&lt;br /&gt;
''(8 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 2 3 4.pdf]]&lt;br /&gt;
(редакция от 16 сентября, добавлены все недостающие разделы)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 3: Свойства обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Замкнутость относительно пересечения с регулярными языками.&lt;br /&gt;
Языки, не представимые грамматиками.&lt;br /&gt;
Лемма накачки, лемма Огдена.&lt;br /&gt;
Грамматики над односимвольным алфавитом.&lt;br /&gt;
Нормальный вид Хомского.&lt;br /&gt;
''(9 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 4: Представления обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Нормальный вид Грейбах.&lt;br /&gt;
Нормальный вид Розенкранца.&lt;br /&gt;
Теорема Хомского--Шюценберже о представлении обыкновенных языков через язык Дика.&lt;br /&gt;
Теорема Грейбах о «самом сложном языке».&lt;br /&gt;
''(9 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 5: Конъюнктивные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Определения конъюнктивных грамматик&lt;br /&gt;
через логический вывод, перезапись термов, деревья разбора и языковые уравнения.&lt;br /&gt;
Примеры грамматик: wcw, объявление перед использованием, степени четвёрки.&lt;br /&gt;
Приведение к нормальному виду Хомского.&lt;br /&gt;
Понятие о булевых грамматиках.&lt;br /&gt;
''(11 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 5.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 6: Однозначные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Неоднозначность в естественных языках и языках программирования.&lt;br /&gt;
Комбинаторные и аналитические методы доказательства существенной неоднозначности.&lt;br /&gt;
''(11 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 6.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 7: Линейные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные линейные грамматики, лемма накачки для них.&lt;br /&gt;
Линейные конъюнктивные грамматики и клеточные автоматы, их равносильность.&lt;br /&gt;
Лемма Терье.&lt;br /&gt;
''(12 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 7.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 8: Многокомпонентные грамматики, логика FO(LFP) ===&lt;br /&gt;
&lt;br /&gt;
Грамматики обёртывания пар и грамматики надстройки деревьев (tree-adjoining grammars).&lt;br /&gt;
Логика первого порядка над позициями в строке FO(LFP),&lt;br /&gt;
представление грамматик в этой логике.&lt;br /&gt;
Алгоритм проверки истинности формул логики FO(LFP)&lt;br /&gt;
как прототип алгоритмов синтаксического анализа.&lt;br /&gt;
''(12 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 8.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 9: Табличные алгоритмы синтаксического анализа ===&lt;br /&gt;
&lt;br /&gt;
Алгоритм Кокка-Касами-Янгера.&lt;br /&gt;
Использование умножения матриц для ускорения алгоритма.&lt;br /&gt;
Умножение матриц по методу Штрассена и по методу Арлазарова и др.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 9 10.pdf]]&lt;br /&gt;
(редакция от 30 сентября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 10: Табличные алгоритмы синтаксического анализа (окончание) ===&lt;br /&gt;
&lt;br /&gt;
Разбор через умножение матриц (алгоритм Валианта). Разбор однозначных грамматик за квадратичное время.&lt;br /&gt;
Разбор для грамматик обёртывания пар.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 11: Разбор сверху вниз ===&lt;br /&gt;
&lt;br /&gt;
LL(k) анализ для обыкновенных грамматик, рекурсивный спуск.&lt;br /&gt;
Удаление пустых правил из LL-грамматик.&lt;br /&gt;
Языки, не представимые LL-грамматиками.&lt;br /&gt;
Теорема Розенкранца--Стирнса&lt;br /&gt;
о регулярном объединении LL-языков.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 11.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 12: LR(k) анализ и детерминированные языки ===&lt;br /&gt;
&lt;br /&gt;
Анализ через сдвиг и свёртку.&lt;br /&gt;
Детерминированный конечный автомат, читающий стек.&lt;br /&gt;
Класс LR(k) грамматик.&lt;br /&gt;
Построение таблиц по методу SLR(k).&lt;br /&gt;
Магазинные автоматы и их равносильность LR(k) грамматикам.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 12 13.pdf]]&lt;br /&gt;
(весьма неполная редакция от 25 сентября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 13: Автоматы, управляемые входом; обобщённый LR ===&lt;br /&gt;
&lt;br /&gt;
Автоматы, управляемые входом (input-driven automata; visibly pushdown automata). Равносильность их детерминированных и недетерминированных разновидностей. Грамматики, управляемые входом.&lt;br /&gt;
Обобщённый LR: пример работы, оценки сложности.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 14: Вычислительная сложность разбора ===&lt;br /&gt;
&lt;br /&gt;
Разбор обыкновенных грамматик с использованием памяти &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;,&lt;br /&gt;
разбор схемой высоты &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;.&lt;br /&gt;
Линейная грамматика для NLOGSPACE-полного языка.&lt;br /&gt;
Задача принадлежности данной строки данной обыкновенной грамматике&lt;br /&gt;
и её P-полнота.&lt;br /&gt;
Равносильность грамматик 1-го порядка классу P.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 14.pdf]]&lt;br /&gt;
(редакция от 2 октября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 15: Разрешимость свойств грамматик ===&lt;br /&gt;
&lt;br /&gt;
Язык вычислений машины Тьюринга (VALC)&lt;br /&gt;
и его представление в виде пересечения двух LL(1) линейных языков.&lt;br /&gt;
Неразрешимость основных свойств линейных грамматик.&lt;br /&gt;
Разрешимость проверки равносильности LL(k) грамматик.&lt;br /&gt;
Разрешимость задачи включения для автоматов, управляемых входом.&lt;br /&gt;
Иерархия семейств грамматик.&lt;br /&gt;
''(26 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 15.pdf]]&lt;br /&gt;
(редакция от 30 сентября)&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
=== Задание 1: к 22 сентября ===&lt;br /&gt;
&lt;br /&gt;
# Построить обыкновенную грамматику для языка всех палиндромов: &amp;lt;math&amp;gt;L_1 = \{ w \in \{a, b\}^* \mid w=w^R \}&amp;lt;/math&amp;gt;. Показать, как строка &amp;lt;math&amp;gt;ababa&amp;lt;/math&amp;gt; выводится с помощью перезаписи строк. Показать, что эта же строка принадлежит наименьшему решению системы языковых уравнений, построив несколько шагов последовательности &amp;lt;math&amp;gt;\varphi^k(\bot)&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Доказать, что не существует обыкновенной грамматики для языка &amp;lt;math&amp;gt;L_2=\{ a^{k_1} b \ldots a^{k_n} b \mid n \geqslant 1, 0 \leqslant k_1 \leqslant \ldots \leqslant k_n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Построить конъюнктивную грамматику для языка &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Построить однозначную обыкновенную грамматику для языка &amp;lt;math&amp;gt;L_3=\{c^m a^{\ell_0}b \ldots a^{\ell_{m-1}}b a^{\ell_m}b \ldots a^{\ell_z}b d^n \mid m,n, \ell_i \geqslant 0, z \geqslant 1, \ell_m=n\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Является ли язык &amp;lt;math&amp;gt;L_3&amp;lt;/math&amp;gt; линейным конъюнктивным?&lt;br /&gt;
# Пусть &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; --- язык Дика над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Существует ли грамматика обёртывания пар для языка &amp;lt;math&amp;gt;L_4 = \{wc^{|w|} \mid w \in D\} = \{\varepsilon, abcc, aabbcccc, ababcccc, aaabbbcccccc, \ldots\}&amp;lt;/math&amp;gt;?&lt;br /&gt;
# Построить грамматику 1-го порядка для языка &amp;lt;math&amp;gt;\{ww \mid w \in \{a, b\}^*\}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 homework 1 solutions.pdf]]&lt;br /&gt;
&lt;br /&gt;
''(проверенные работы переданы на кафедру)''&lt;br /&gt;
&lt;br /&gt;
=== Задание 2: к 13 октября ===&lt;br /&gt;
&lt;br /&gt;
# Постоить обыкновенную грамматику ''в нормальном виде Хомского'' для языка Дика &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Для этой грамматики и для входной строки &amp;lt;math&amp;gt;w=abaabba \notin D&amp;lt;/math&amp;gt;, построить таблицу разбора &amp;lt;math&amp;gt;T_{i,j}&amp;lt;/math&amp;gt;, как в алгоритме Кокка–Касами–Янгера.&lt;br /&gt;
# Рассмотреть работу алгоритма Валианта (синтаксический анализ через умножение матриц, лекции 9-10) для грамматики, построенной в прошлом упражнении. Среди всех действий, производимых алгоритмом, найти то произведение булевых матриц, после вычисления которого  станет верным условие &amp;lt;math&amp;gt;S \in f(P_{0,6})&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; — начальный символ грамматики. Описать, когда и как именно вычисляется это произведение — то есть, какая процедура, вызванная с какими значениями, и какой оператор в ней умножает какие две булевы матрицы какого размера, каков результат умножения, и какие элементы &amp;lt;math&amp;gt;P_{i,j}&amp;lt;/math&amp;gt; будут этим затронуты?&lt;br /&gt;
# Замкнут ли класс LL языков относительно пересечения с регулярными языками? Если замкнут, привести построение (см. построение такого рода для всего класса обыкновенных грамматик в материалах к лекциям 2-4), а если незамкнут, привести пример LL грамматики и регулярного языка с доказательством несуществования LL грамматики для их пересечения (см. доказательства такого рода в материалах к лекции 11).&lt;br /&gt;
# Построить линейную грамматику для языка &amp;lt;math&amp;gt;f(L_0)&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;L_0 = \{ w\$w^R \mid w \in \{a,b\}^* \}&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;f(L) = \{ [w_{1,1} \# \ldots \# w_{1, k_1}] \ldots [w_{m,1} \# \ldots \# w_{m, k_m}] \mid \exists i_1, \ldots, i_m: \; w_{1,i_1} w_{2,i_2} \ldots w_{m,i_m} \in L \}&amp;lt;/math&amp;gt; (это NLOGSPACE-полный язык, приведённый на лекции).&lt;br /&gt;
# Разрешима ли такая задача: «по данной обыкновенной грамматике, определить, порождает ли она хотя бы одну строку чётной длины»? Если разрешима, привести алгоритм, а если неразрешима, доказать это с помощью методов лекции 15 (использовав язык VALC в готовом виде, или же определив новый его вариант).&lt;br /&gt;
# Разрешима ли такая задача: «по данной обыкновенной грамматике, определить, порождает ли она хотя бы одну строку-палиндром &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt;, т.е., строку, для которой &amp;lt;math&amp;gt;w=w^R&amp;lt;/math&amp;gt;»?&lt;br /&gt;
# Для произвольной данной линейной грамматики G, пусть &amp;lt;math&amp;gt;L=\{vu \mid uv \in L(G)\}&amp;lt;/math&amp;gt; — циклический сдвиг порождаемого ею языка. Построить алгоритм, определяющий принадлежность данной на входе строки языку &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt;, и ''использующий как можно меньше памяти''. Объём памяти считать функцией &amp;lt;math&amp;gt;s(n)&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; — длина входной строки, и этот объём должен быть по крайней мере меньше, чем линейным. Примечания: алгоритм строится по грамматике, и потому зависимостью требуемого объёма памяти от размера этой грамматики можно пренебречь; алгоритм должен быть детерминированным; если получится использовать алгоритмы, приведённые на лекциях, то их можно не повторять, но нужно указать, как именно и к чему именно они применяются.&lt;br /&gt;
&lt;br /&gt;
''(задания принимаются по эл. почте в формате pdf, печатном или отсканированном рукописном; отсканированные файлы должны быть пригодны для печати и умещаться в один мегабайт)''&lt;br /&gt;
&lt;br /&gt;
''(получены работы А. Афанасьева, П. Авдеева, Б. Бугаева, К. Елагина, И. Гайдая, Д. Жаркова, А. В. Калакуцкого, Н. Карташова, К. Новокрещенова, Н. Обедина, А. Ордияна, С. Сидорова, Т. Тураева, Е. Устюжаниной, М. Хабибуллина, А. Цветкова, П. Чуприкова)''&lt;/div&gt;</summary>
		<author><name>Okhotin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=4220</id>
		<title>Формальные грамматики 2014</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=4220"/>
				<updated>2014-10-09T09:11:48Z</updated>
		
		<summary type="html">&lt;p&gt;Okhotin: /* Задание 1: к 22 сентября */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Курс «Формальные грамматики»: сентябрь 2014 г., 15 лекций,&lt;br /&gt;
лектор: [http://users.utu.fi/aleokh/ Александр Охотин] (университет Турку, Финляндия).&lt;br /&gt;
&lt;br /&gt;
== Содержание лекций ==&lt;br /&gt;
&lt;br /&gt;
Приветствуются любые замечания&lt;br /&gt;
по содержанию материалов к лекциям:&lt;br /&gt;
если что-то неправильно или плохо понятно,&lt;br /&gt;
то, пожалуйста, напишите, что именно.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 1: Введение, регулярные языки ===&lt;br /&gt;
&lt;br /&gt;
Математические модели синтаксиса.&lt;br /&gt;
Формальные языки.&lt;br /&gt;
Детерминированные и недетерминированные конечные автоматы, регулярные выражения, их равносильность.&lt;br /&gt;
Примеры. Замкнутость относительно основных действий.&lt;br /&gt;
Нерегулярные языки.&lt;br /&gt;
''(8 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 1.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 2: Обыкновенные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные формальные грамматики&lt;br /&gt;
(в терминологии Хомского, «бесконтекстные»).&lt;br /&gt;
Определения через перезапись строк,&lt;br /&gt;
через деревья разбора,&lt;br /&gt;
через логический вывод&lt;br /&gt;
и через языковые уравнения.&lt;br /&gt;
Равносильность определений.&lt;br /&gt;
Примеры грамматик.&lt;br /&gt;
Замкнутость относительно объединения, конкатенации, звёздочки,&lt;br /&gt;
а также циклического сдвига.&lt;br /&gt;
''(8 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 2 3 4.pdf]]&lt;br /&gt;
(редакция от 16 сентября, добавлены все недостающие разделы)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 3: Свойства обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Замкнутость относительно пересечения с регулярными языками.&lt;br /&gt;
Языки, не представимые грамматиками.&lt;br /&gt;
Лемма накачки, лемма Огдена.&lt;br /&gt;
Грамматики над односимвольным алфавитом.&lt;br /&gt;
Нормальный вид Хомского.&lt;br /&gt;
''(9 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 4: Представления обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Нормальный вид Грейбах.&lt;br /&gt;
Нормальный вид Розенкранца.&lt;br /&gt;
Теорема Хомского--Шюценберже о представлении обыкновенных языков через язык Дика.&lt;br /&gt;
Теорема Грейбах о «самом сложном языке».&lt;br /&gt;
''(9 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 5: Конъюнктивные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Определения конъюнктивных грамматик&lt;br /&gt;
через логический вывод, перезапись термов, деревья разбора и языковые уравнения.&lt;br /&gt;
Примеры грамматик: wcw, объявление перед использованием, степени четвёрки.&lt;br /&gt;
Приведение к нормальному виду Хомского.&lt;br /&gt;
Понятие о булевых грамматиках.&lt;br /&gt;
''(11 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 5.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 6: Однозначные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Неоднозначность в естественных языках и языках программирования.&lt;br /&gt;
Комбинаторные и аналитические методы доказательства существенной неоднозначности.&lt;br /&gt;
''(11 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 6.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 7: Линейные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные линейные грамматики, лемма накачки для них.&lt;br /&gt;
Линейные конъюнктивные грамматики и клеточные автоматы, их равносильность.&lt;br /&gt;
Лемма Терье.&lt;br /&gt;
''(12 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 7.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 8: Многокомпонентные грамматики, логика FO(LFP) ===&lt;br /&gt;
&lt;br /&gt;
Грамматики обёртывания пар и грамматики надстройки деревьев (tree-adjoining grammars).&lt;br /&gt;
Логика первого порядка над позициями в строке FO(LFP),&lt;br /&gt;
представление грамматик в этой логике.&lt;br /&gt;
Алгоритм проверки истинности формул логики FO(LFP)&lt;br /&gt;
как прототип алгоритмов синтаксического анализа.&lt;br /&gt;
''(12 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 8.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 9: Табличные алгоритмы синтаксического анализа ===&lt;br /&gt;
&lt;br /&gt;
Алгоритм Кокка-Касами-Янгера.&lt;br /&gt;
Использование умножения матриц для ускорения алгоритма.&lt;br /&gt;
Умножение матриц по методу Штрассена и по методу Арлазарова и др.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 9 10.pdf]]&lt;br /&gt;
(редакция от 30 сентября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 10: Табличные алгоритмы синтаксического анализа (окончание) ===&lt;br /&gt;
&lt;br /&gt;
Разбор через умножение матриц (алгоритм Валианта). Разбор однозначных грамматик за квадратичное время.&lt;br /&gt;
Разбор для грамматик обёртывания пар.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 11: Разбор сверху вниз ===&lt;br /&gt;
&lt;br /&gt;
LL(k) анализ для обыкновенных грамматик, рекурсивный спуск.&lt;br /&gt;
Удаление пустых правил из LL-грамматик.&lt;br /&gt;
Языки, не представимые LL-грамматиками.&lt;br /&gt;
Теорема Розенкранца--Стирнса&lt;br /&gt;
о регулярном объединении LL-языков.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 11.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 12: LR(k) анализ и детерминированные языки ===&lt;br /&gt;
&lt;br /&gt;
Анализ через сдвиг и свёртку.&lt;br /&gt;
Детерминированный конечный автомат, читающий стек.&lt;br /&gt;
Класс LR(k) грамматик.&lt;br /&gt;
Построение таблиц по методу SLR(k).&lt;br /&gt;
Магазинные автоматы и их равносильность LR(k) грамматикам.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 12 13.pdf]]&lt;br /&gt;
(весьма неполная редакция от 25 сентября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 13: Автоматы, управляемые входом; обобщённый LR ===&lt;br /&gt;
&lt;br /&gt;
Автоматы, управляемые входом (input-driven automata; visibly pushdown automata). Равносильность их детерминированных и недетерминированных разновидностей. Грамматики, управляемые входом.&lt;br /&gt;
Обобщённый LR: пример работы, оценки сложности.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 14: Вычислительная сложность разбора ===&lt;br /&gt;
&lt;br /&gt;
Разбор обыкновенных грамматик с использованием памяти &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;,&lt;br /&gt;
разбор схемой высоты &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;.&lt;br /&gt;
Линейная грамматика для NLOGSPACE-полного языка.&lt;br /&gt;
Задача принадлежности данной строки данной обыкновенной грамматике&lt;br /&gt;
и её P-полнота.&lt;br /&gt;
Равносильность грамматик 1-го порядка классу P.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 14.pdf]]&lt;br /&gt;
(редакция от 2 октября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 15: Разрешимость свойств грамматик ===&lt;br /&gt;
&lt;br /&gt;
Язык вычислений машины Тьюринга (VALC)&lt;br /&gt;
и его представление в виде пересечения двух LL(1) линейных языков.&lt;br /&gt;
Неразрешимость основных свойств линейных грамматик.&lt;br /&gt;
Разрешимость проверки равносильности LL(k) грамматик.&lt;br /&gt;
Разрешимость задачи включения для автоматов, управляемых входом.&lt;br /&gt;
Иерархия семейств грамматик.&lt;br /&gt;
''(26 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 15.pdf]]&lt;br /&gt;
(редакция от 30 сентября)&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
=== Задание 1: к 22 сентября ===&lt;br /&gt;
&lt;br /&gt;
# Построить обыкновенную грамматику для языка всех палиндромов: &amp;lt;math&amp;gt;L_1 = \{ w \in \{a, b\}^* \mid w=w^R \}&amp;lt;/math&amp;gt;. Показать, как строка &amp;lt;math&amp;gt;ababa&amp;lt;/math&amp;gt; выводится с помощью перезаписи строк. Показать, что эта же строка принадлежит наименьшему решению системы языковых уравнений, построив несколько шагов последовательности &amp;lt;math&amp;gt;\varphi^k(\bot)&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Доказать, что не существует обыкновенной грамматики для языка &amp;lt;math&amp;gt;L_2=\{ a^{k_1} b \ldots a^{k_n} b \mid n \geqslant 1, 0 \leqslant k_1 \leqslant \ldots \leqslant k_n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Построить конъюнктивную грамматику для языка &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Построить однозначную обыкновенную грамматику для языка &amp;lt;math&amp;gt;L_3=\{c^m a^{\ell_0}b \ldots a^{\ell_{m-1}}b a^{\ell_m}b \ldots a^{\ell_z}b d^n \mid m,n, \ell_i \geqslant 0, z \geqslant 1, \ell_m=n\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Является ли язык &amp;lt;math&amp;gt;L_3&amp;lt;/math&amp;gt; линейным конъюнктивным?&lt;br /&gt;
# Пусть &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; --- язык Дика над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Существует ли грамматика обёртывания пар для языка &amp;lt;math&amp;gt;L_4 = \{wc^{|w|} \mid w \in D\} = \{\varepsilon, abcc, aabbcccc, ababcccc, aaabbbcccccc, \ldots\}&amp;lt;/math&amp;gt;?&lt;br /&gt;
# Построить грамматику 1-го порядка для языка &amp;lt;math&amp;gt;\{ww \mid w \in \{a, b\}^*\}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 homework 1 solutions.pdf]]&lt;br /&gt;
&lt;br /&gt;
''(проверенные работы переданы на кафедру)''&lt;br /&gt;
&lt;br /&gt;
=== Задание 2: к 13 октября ===&lt;br /&gt;
&lt;br /&gt;
# Постоить обыкновенную грамматику ''в нормальном виде Хомского'' для языка Дика &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Для этой грамматики и для входной строки &amp;lt;math&amp;gt;w=abaabba \notin D&amp;lt;/math&amp;gt;, построить таблицу разбора &amp;lt;math&amp;gt;T_{i,j}&amp;lt;/math&amp;gt;, как в алгоритме Кокка–Касами–Янгера.&lt;br /&gt;
# Рассмотреть работу алгоритма Валианта (синтаксический анализ через умножение матриц, лекции 9-10) для грамматики, построенной в прошлом упражнении. Среди всех действий, производимых алгоритмом, найти то произведение булевых матриц, после вычисления которого  станет верным условие &amp;lt;math&amp;gt;S \in f(P_{0,6})&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; — начальный символ грамматики. Описать, когда и как именно вычисляется это произведение — то есть, какая процедура, вызванная с какими значениями, и какой оператор в ней умножает какие две булевы матрицы какого размера, каков результат умножения, и какие элементы &amp;lt;math&amp;gt;P_{i,j}&amp;lt;/math&amp;gt; будут этим затронуты?&lt;br /&gt;
# Замкнут ли класс LL языков относительно пересечения с регулярными языками? Если замкнут, привести построение (см. построение такого рода для всего класса обыкновенных грамматик в материалах к лекциям 2-4), а если незамкнут, привести пример LL грамматики и регулярного языка с доказательством несуществования LL грамматики для их пересечения (см. доказательства такого рода в материалах к лекции 11).&lt;br /&gt;
# Построить линейную грамматику для языка &amp;lt;math&amp;gt;f(L_0)&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;L_0 = \{ w\$w^R \mid w \in \{a,b\}^* \}&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;f(L) = \{ [w_{1,1} \# \ldots \# w_{1, k_1}] \ldots [w_{m,1} \# \ldots \# w_{m, k_m}] \mid \exists i_1, \ldots, i_m: \; w_{1,i_1} w_{2,i_2} \ldots w_{m,i_m} \in L \}&amp;lt;/math&amp;gt; (это NLOGSPACE-полный язык, приведённый на лекции).&lt;br /&gt;
# Разрешима ли такая задача: «по данной обыкновенной грамматике, определить, порождает ли она хотя бы одну строку чётной длины»? Если разрешима, привести алгоритм, а если неразрешима, доказать это с помощью методов лекции 15 (использовав язык VALC в готовом виде, или же определив новый его вариант).&lt;br /&gt;
# Разрешима ли такая задача: «по данной обыкновенной грамматике, определить, порождает ли она хотя бы одну строку-палиндром &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt;, т.е., строку, для которой &amp;lt;math&amp;gt;w=w^R&amp;lt;/math&amp;gt;»?&lt;br /&gt;
# Для произвольной данной линейной грамматики G, пусть &amp;lt;math&amp;gt;L=\{vu \mid uv \in L(G)\}&amp;lt;/math&amp;gt; — циклический сдвиг порождаемого ею языка. Построить алгоритм, определяющий принадлежность данной на входе строки языку &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt;, и ''использующий как можно меньше памяти''. Объём памяти считать функцией &amp;lt;math&amp;gt;s(n)&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; — длина входной строки, и этот объём должен быть по крайней мере меньше, чем линейным. Примечания: алгоритм строится по грамматике, и потому зависимостью требуемого объёма памяти от размера этой грамматики можно пренебречь; алгоритм должен быть детерминированным; если получится использовать алгоритмы, приведённые на лекциях, то их можно не повторять, но нужно указать, как именно и к чему именно они применяются.&lt;br /&gt;
&lt;br /&gt;
''(задания принимаются по эл. почте в формате pdf, печатном или отсканированном рукописном; отсканированные файлы должны быть пригодны для печати и умещаться в один мегабайт)''&lt;/div&gt;</summary>
		<author><name>Okhotin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=4211</id>
		<title>Формальные грамматики 2014</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=4211"/>
				<updated>2014-10-08T16:13:08Z</updated>
		
		<summary type="html">&lt;p&gt;Okhotin: /* Задание 1: к 22 сентября */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Курс «Формальные грамматики»: сентябрь 2014 г., 15 лекций,&lt;br /&gt;
лектор: [http://users.utu.fi/aleokh/ Александр Охотин] (университет Турку, Финляндия).&lt;br /&gt;
&lt;br /&gt;
== Содержание лекций ==&lt;br /&gt;
&lt;br /&gt;
Приветствуются любые замечания&lt;br /&gt;
по содержанию материалов к лекциям:&lt;br /&gt;
если что-то неправильно или плохо понятно,&lt;br /&gt;
то, пожалуйста, напишите, что именно.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 1: Введение, регулярные языки ===&lt;br /&gt;
&lt;br /&gt;
Математические модели синтаксиса.&lt;br /&gt;
Формальные языки.&lt;br /&gt;
Детерминированные и недетерминированные конечные автоматы, регулярные выражения, их равносильность.&lt;br /&gt;
Примеры. Замкнутость относительно основных действий.&lt;br /&gt;
Нерегулярные языки.&lt;br /&gt;
''(8 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 1.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 2: Обыкновенные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные формальные грамматики&lt;br /&gt;
(в терминологии Хомского, «бесконтекстные»).&lt;br /&gt;
Определения через перезапись строк,&lt;br /&gt;
через деревья разбора,&lt;br /&gt;
через логический вывод&lt;br /&gt;
и через языковые уравнения.&lt;br /&gt;
Равносильность определений.&lt;br /&gt;
Примеры грамматик.&lt;br /&gt;
Замкнутость относительно объединения, конкатенации, звёздочки,&lt;br /&gt;
а также циклического сдвига.&lt;br /&gt;
''(8 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 2 3 4.pdf]]&lt;br /&gt;
(редакция от 16 сентября, добавлены все недостающие разделы)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 3: Свойства обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Замкнутость относительно пересечения с регулярными языками.&lt;br /&gt;
Языки, не представимые грамматиками.&lt;br /&gt;
Лемма накачки, лемма Огдена.&lt;br /&gt;
Грамматики над односимвольным алфавитом.&lt;br /&gt;
Нормальный вид Хомского.&lt;br /&gt;
''(9 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 4: Представления обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Нормальный вид Грейбах.&lt;br /&gt;
Нормальный вид Розенкранца.&lt;br /&gt;
Теорема Хомского--Шюценберже о представлении обыкновенных языков через язык Дика.&lt;br /&gt;
Теорема Грейбах о «самом сложном языке».&lt;br /&gt;
''(9 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 5: Конъюнктивные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Определения конъюнктивных грамматик&lt;br /&gt;
через логический вывод, перезапись термов, деревья разбора и языковые уравнения.&lt;br /&gt;
Примеры грамматик: wcw, объявление перед использованием, степени четвёрки.&lt;br /&gt;
Приведение к нормальному виду Хомского.&lt;br /&gt;
Понятие о булевых грамматиках.&lt;br /&gt;
''(11 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 5.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 6: Однозначные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Неоднозначность в естественных языках и языках программирования.&lt;br /&gt;
Комбинаторные и аналитические методы доказательства существенной неоднозначности.&lt;br /&gt;
''(11 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 6.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 7: Линейные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные линейные грамматики, лемма накачки для них.&lt;br /&gt;
Линейные конъюнктивные грамматики и клеточные автоматы, их равносильность.&lt;br /&gt;
Лемма Терье.&lt;br /&gt;
''(12 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 7.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 8: Многокомпонентные грамматики, логика FO(LFP) ===&lt;br /&gt;
&lt;br /&gt;
Грамматики обёртывания пар и грамматики надстройки деревьев (tree-adjoining grammars).&lt;br /&gt;
Логика первого порядка над позициями в строке FO(LFP),&lt;br /&gt;
представление грамматик в этой логике.&lt;br /&gt;
Алгоритм проверки истинности формул логики FO(LFP)&lt;br /&gt;
как прототип алгоритмов синтаксического анализа.&lt;br /&gt;
''(12 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 8.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 9: Табличные алгоритмы синтаксического анализа ===&lt;br /&gt;
&lt;br /&gt;
Алгоритм Кокка-Касами-Янгера.&lt;br /&gt;
Использование умножения матриц для ускорения алгоритма.&lt;br /&gt;
Умножение матриц по методу Штрассена и по методу Арлазарова и др.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 9 10.pdf]]&lt;br /&gt;
(редакция от 30 сентября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 10: Табличные алгоритмы синтаксического анализа (окончание) ===&lt;br /&gt;
&lt;br /&gt;
Разбор через умножение матриц (алгоритм Валианта). Разбор однозначных грамматик за квадратичное время.&lt;br /&gt;
Разбор для грамматик обёртывания пар.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 11: Разбор сверху вниз ===&lt;br /&gt;
&lt;br /&gt;
LL(k) анализ для обыкновенных грамматик, рекурсивный спуск.&lt;br /&gt;
Удаление пустых правил из LL-грамматик.&lt;br /&gt;
Языки, не представимые LL-грамматиками.&lt;br /&gt;
Теорема Розенкранца--Стирнса&lt;br /&gt;
о регулярном объединении LL-языков.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 11.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 12: LR(k) анализ и детерминированные языки ===&lt;br /&gt;
&lt;br /&gt;
Анализ через сдвиг и свёртку.&lt;br /&gt;
Детерминированный конечный автомат, читающий стек.&lt;br /&gt;
Класс LR(k) грамматик.&lt;br /&gt;
Построение таблиц по методу SLR(k).&lt;br /&gt;
Магазинные автоматы и их равносильность LR(k) грамматикам.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 12 13.pdf]]&lt;br /&gt;
(весьма неполная редакция от 25 сентября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 13: Автоматы, управляемые входом; обобщённый LR ===&lt;br /&gt;
&lt;br /&gt;
Автоматы, управляемые входом (input-driven automata; visibly pushdown automata). Равносильность их детерминированных и недетерминированных разновидностей. Грамматики, управляемые входом.&lt;br /&gt;
Обобщённый LR: пример работы, оценки сложности.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 14: Вычислительная сложность разбора ===&lt;br /&gt;
&lt;br /&gt;
Разбор обыкновенных грамматик с использованием памяти &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;,&lt;br /&gt;
разбор схемой высоты &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;.&lt;br /&gt;
Линейная грамматика для NLOGSPACE-полного языка.&lt;br /&gt;
Задача принадлежности данной строки данной обыкновенной грамматике&lt;br /&gt;
и её P-полнота.&lt;br /&gt;
Равносильность грамматик 1-го порядка классу P.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 14.pdf]]&lt;br /&gt;
(редакция от 2 октября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 15: Разрешимость свойств грамматик ===&lt;br /&gt;
&lt;br /&gt;
Язык вычислений машины Тьюринга (VALC)&lt;br /&gt;
и его представление в виде пересечения двух LL(1) линейных языков.&lt;br /&gt;
Неразрешимость основных свойств линейных грамматик.&lt;br /&gt;
Разрешимость проверки равносильности LL(k) грамматик.&lt;br /&gt;
Разрешимость задачи включения для автоматов, управляемых входом.&lt;br /&gt;
Иерархия семейств грамматик.&lt;br /&gt;
''(26 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 15.pdf]]&lt;br /&gt;
(редакция от 30 сентября)&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
=== Задание 1: к 22 сентября ===&lt;br /&gt;
&lt;br /&gt;
# Построить обыкновенную грамматику для языка всех палиндромов: &amp;lt;math&amp;gt;L_1 = \{ w \in \{a, b\}^* \mid w=w^R \}&amp;lt;/math&amp;gt;. Показать, как строка &amp;lt;math&amp;gt;ababa&amp;lt;/math&amp;gt; выводится с помощью перезаписи строк. Показать, что эта же строка принадлежит наименьшему решению системы языковых уравнений, построив несколько шагов последовательности &amp;lt;math&amp;gt;\varphi^k(\bot)&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Доказать, что не существует обыкновенной грамматики для языка &amp;lt;math&amp;gt;L_2=\{ a^{k_1} b \ldots a^{k_n} b \mid n \geqslant 1, 0 \leqslant k_1 \leqslant \ldots \leqslant k_n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Построить конъюнктивную грамматику для языка &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Построить однозначную обыкновенную грамматику для языка &amp;lt;math&amp;gt;L_3=\{c^m a^{\ell_0}b \ldots a^{\ell_{m-1}}b a^{\ell_m}b \ldots a^{\ell_z}b d^n \mid m,n, \ell_i \geqslant 0, z \geqslant 1, \ell_m=n\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Является ли язык &amp;lt;math&amp;gt;L_3&amp;lt;/math&amp;gt; линейным конъюнктивным?&lt;br /&gt;
# Пусть &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; --- язык Дика над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Существует ли грамматика обёртывания пар для языка &amp;lt;math&amp;gt;L_4 = \{wc^{|w|} \mid w \in D\} = \{\varepsilon, abcc, aabbcccc, ababcccc, aaabbbcccccc, \ldots\}&amp;lt;/math&amp;gt;?&lt;br /&gt;
# Построить грамматику 1-го порядка для языка &amp;lt;math&amp;gt;\{ww \mid w \in \{a, b\}^*\}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 homework 1 solutions.pdf]]&lt;br /&gt;
&lt;br /&gt;
''(всё проверено, изыскиваются способы передать проверенные работы)''&lt;br /&gt;
&lt;br /&gt;
=== Задание 2: к 13 октября ===&lt;br /&gt;
&lt;br /&gt;
# Постоить обыкновенную грамматику ''в нормальном виде Хомского'' для языка Дика &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Для этой грамматики и для входной строки &amp;lt;math&amp;gt;w=abaabba \notin D&amp;lt;/math&amp;gt;, построить таблицу разбора &amp;lt;math&amp;gt;T_{i,j}&amp;lt;/math&amp;gt;, как в алгоритме Кокка–Касами–Янгера.&lt;br /&gt;
# Рассмотреть работу алгоритма Валианта (синтаксический анализ через умножение матриц, лекции 9-10) для грамматики, построенной в прошлом упражнении. Среди всех действий, производимых алгоритмом, найти то произведение булевых матриц, после вычисления которого  станет верным условие &amp;lt;math&amp;gt;S \in f(P_{0,6})&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; — начальный символ грамматики. Описать, когда и как именно вычисляется это произведение — то есть, какая процедура, вызванная с какими значениями, и какой оператор в ней умножает какие две булевы матрицы какого размера, каков результат умножения, и какие элементы &amp;lt;math&amp;gt;P_{i,j}&amp;lt;/math&amp;gt; будут этим затронуты?&lt;br /&gt;
# Замкнут ли класс LL языков относительно пересечения с регулярными языками? Если замкнут, привести построение (см. построение такого рода для всего класса обыкновенных грамматик в материалах к лекциям 2-4), а если незамкнут, привести пример LL грамматики и регулярного языка с доказательством несуществования LL грамматики для их пересечения (см. доказательства такого рода в материалах к лекции 11).&lt;br /&gt;
# Построить линейную грамматику для языка &amp;lt;math&amp;gt;f(L_0)&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;L_0 = \{ w\$w^R \mid w \in \{a,b\}^* \}&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;f(L) = \{ [w_{1,1} \# \ldots \# w_{1, k_1}] \ldots [w_{m,1} \# \ldots \# w_{m, k_m}] \mid \exists i_1, \ldots, i_m: \; w_{1,i_1} w_{2,i_2} \ldots w_{m,i_m} \in L \}&amp;lt;/math&amp;gt; (это NLOGSPACE-полный язык, приведённый на лекции).&lt;br /&gt;
# Разрешима ли такая задача: «по данной обыкновенной грамматике, определить, порождает ли она хотя бы одну строку чётной длины»? Если разрешима, привести алгоритм, а если неразрешима, доказать это с помощью методов лекции 15 (использовав язык VALC в готовом виде, или же определив новый его вариант).&lt;br /&gt;
# Разрешима ли такая задача: «по данной обыкновенной грамматике, определить, порождает ли она хотя бы одну строку-палиндром &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt;, т.е., строку, для которой &amp;lt;math&amp;gt;w=w^R&amp;lt;/math&amp;gt;»?&lt;br /&gt;
# Для произвольной данной линейной грамматики G, пусть &amp;lt;math&amp;gt;L=\{vu \mid uv \in L(G)\}&amp;lt;/math&amp;gt; — циклический сдвиг порождаемого ею языка. Построить алгоритм, определяющий принадлежность данной на входе строки языку &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt;, и ''использующий как можно меньше памяти''. Объём памяти считать функцией &amp;lt;math&amp;gt;s(n)&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; — длина входной строки, и этот объём должен быть по крайней мере меньше, чем линейным. Примечания: алгоритм строится по грамматике, и потому зависимостью требуемого объёма памяти от размера этой грамматики можно пренебречь; алгоритм должен быть детерминированным; если получится использовать алгоритмы, приведённые на лекциях, то их можно не повторять, но нужно указать, как именно и к чему именно они применяются.&lt;br /&gt;
&lt;br /&gt;
''(задания принимаются по эл. почте в формате pdf, печатном или отсканированном рукописном; отсканированные файлы должны быть пригодны для печати и умещаться в один мегабайт)''&lt;/div&gt;</summary>
		<author><name>Okhotin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Formal_grammars_2014_homework_1_solutions.pdf&amp;diff=4210</id>
		<title>Файл:Formal grammars 2014 homework 1 solutions.pdf</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Formal_grammars_2014_homework_1_solutions.pdf&amp;diff=4210"/>
				<updated>2014-10-08T16:12:11Z</updated>
		
		<summary type="html">&lt;p&gt;Okhotin: Формальные грамматики 2014, решения задач из домашнего задания 1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Формальные грамматики 2014, решения задач из домашнего задания 1&lt;/div&gt;</summary>
		<author><name>Okhotin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=4178</id>
		<title>Формальные грамматики 2014</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=4178"/>
				<updated>2014-10-07T15:45:31Z</updated>
		
		<summary type="html">&lt;p&gt;Okhotin: /* Задание 1: к 22 сентября */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Курс «Формальные грамматики»: сентябрь 2014 г., 15 лекций,&lt;br /&gt;
лектор: [http://users.utu.fi/aleokh/ Александр Охотин] (университет Турку, Финляндия).&lt;br /&gt;
&lt;br /&gt;
== Содержание лекций ==&lt;br /&gt;
&lt;br /&gt;
Приветствуются любые замечания&lt;br /&gt;
по содержанию материалов к лекциям:&lt;br /&gt;
если что-то неправильно или плохо понятно,&lt;br /&gt;
то, пожалуйста, напишите, что именно.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 1: Введение, регулярные языки ===&lt;br /&gt;
&lt;br /&gt;
Математические модели синтаксиса.&lt;br /&gt;
Формальные языки.&lt;br /&gt;
Детерминированные и недетерминированные конечные автоматы, регулярные выражения, их равносильность.&lt;br /&gt;
Примеры. Замкнутость относительно основных действий.&lt;br /&gt;
Нерегулярные языки.&lt;br /&gt;
''(8 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 1.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 2: Обыкновенные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные формальные грамматики&lt;br /&gt;
(в терминологии Хомского, «бесконтекстные»).&lt;br /&gt;
Определения через перезапись строк,&lt;br /&gt;
через деревья разбора,&lt;br /&gt;
через логический вывод&lt;br /&gt;
и через языковые уравнения.&lt;br /&gt;
Равносильность определений.&lt;br /&gt;
Примеры грамматик.&lt;br /&gt;
Замкнутость относительно объединения, конкатенации, звёздочки,&lt;br /&gt;
а также циклического сдвига.&lt;br /&gt;
''(8 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 2 3 4.pdf]]&lt;br /&gt;
(редакция от 16 сентября, добавлены все недостающие разделы)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 3: Свойства обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Замкнутость относительно пересечения с регулярными языками.&lt;br /&gt;
Языки, не представимые грамматиками.&lt;br /&gt;
Лемма накачки, лемма Огдена.&lt;br /&gt;
Грамматики над односимвольным алфавитом.&lt;br /&gt;
Нормальный вид Хомского.&lt;br /&gt;
''(9 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 4: Представления обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Нормальный вид Грейбах.&lt;br /&gt;
Нормальный вид Розенкранца.&lt;br /&gt;
Теорема Хомского--Шюценберже о представлении обыкновенных языков через язык Дика.&lt;br /&gt;
Теорема Грейбах о «самом сложном языке».&lt;br /&gt;
''(9 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 5: Конъюнктивные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Определения конъюнктивных грамматик&lt;br /&gt;
через логический вывод, перезапись термов, деревья разбора и языковые уравнения.&lt;br /&gt;
Примеры грамматик: wcw, объявление перед использованием, степени четвёрки.&lt;br /&gt;
Приведение к нормальному виду Хомского.&lt;br /&gt;
Понятие о булевых грамматиках.&lt;br /&gt;
''(11 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 5.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 6: Однозначные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Неоднозначность в естественных языках и языках программирования.&lt;br /&gt;
Комбинаторные и аналитические методы доказательства существенной неоднозначности.&lt;br /&gt;
''(11 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 6.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 7: Линейные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные линейные грамматики, лемма накачки для них.&lt;br /&gt;
Линейные конъюнктивные грамматики и клеточные автоматы, их равносильность.&lt;br /&gt;
Лемма Терье.&lt;br /&gt;
''(12 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 7.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 8: Многокомпонентные грамматики, логика FO(LFP) ===&lt;br /&gt;
&lt;br /&gt;
Грамматики обёртывания пар и грамматики надстройки деревьев (tree-adjoining grammars).&lt;br /&gt;
Логика первого порядка над позициями в строке FO(LFP),&lt;br /&gt;
представление грамматик в этой логике.&lt;br /&gt;
Алгоритм проверки истинности формул логики FO(LFP)&lt;br /&gt;
как прототип алгоритмов синтаксического анализа.&lt;br /&gt;
''(12 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 8.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 9: Табличные алгоритмы синтаксического анализа ===&lt;br /&gt;
&lt;br /&gt;
Алгоритм Кокка-Касами-Янгера.&lt;br /&gt;
Использование умножения матриц для ускорения алгоритма.&lt;br /&gt;
Умножение матриц по методу Штрассена и по методу Арлазарова и др.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 9 10.pdf]]&lt;br /&gt;
(редакция от 30 сентября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 10: Табличные алгоритмы синтаксического анализа (окончание) ===&lt;br /&gt;
&lt;br /&gt;
Разбор через умножение матриц (алгоритм Валианта). Разбор однозначных грамматик за квадратичное время.&lt;br /&gt;
Разбор для грамматик обёртывания пар.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 11: Разбор сверху вниз ===&lt;br /&gt;
&lt;br /&gt;
LL(k) анализ для обыкновенных грамматик, рекурсивный спуск.&lt;br /&gt;
Удаление пустых правил из LL-грамматик.&lt;br /&gt;
Языки, не представимые LL-грамматиками.&lt;br /&gt;
Теорема Розенкранца--Стирнса&lt;br /&gt;
о регулярном объединении LL-языков.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 11.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 12: LR(k) анализ и детерминированные языки ===&lt;br /&gt;
&lt;br /&gt;
Анализ через сдвиг и свёртку.&lt;br /&gt;
Детерминированный конечный автомат, читающий стек.&lt;br /&gt;
Класс LR(k) грамматик.&lt;br /&gt;
Построение таблиц по методу SLR(k).&lt;br /&gt;
Магазинные автоматы и их равносильность LR(k) грамматикам.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 12 13.pdf]]&lt;br /&gt;
(весьма неполная редакция от 25 сентября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 13: Автоматы, управляемые входом; обобщённый LR ===&lt;br /&gt;
&lt;br /&gt;
Автоматы, управляемые входом (input-driven automata; visibly pushdown automata). Равносильность их детерминированных и недетерминированных разновидностей. Грамматики, управляемые входом.&lt;br /&gt;
Обобщённый LR: пример работы, оценки сложности.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 14: Вычислительная сложность разбора ===&lt;br /&gt;
&lt;br /&gt;
Разбор обыкновенных грамматик с использованием памяти &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;,&lt;br /&gt;
разбор схемой высоты &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;.&lt;br /&gt;
Линейная грамматика для NLOGSPACE-полного языка.&lt;br /&gt;
Задача принадлежности данной строки данной обыкновенной грамматике&lt;br /&gt;
и её P-полнота.&lt;br /&gt;
Равносильность грамматик 1-го порядка классу P.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 14.pdf]]&lt;br /&gt;
(редакция от 2 октября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 15: Разрешимость свойств грамматик ===&lt;br /&gt;
&lt;br /&gt;
Язык вычислений машины Тьюринга (VALC)&lt;br /&gt;
и его представление в виде пересечения двух LL(1) линейных языков.&lt;br /&gt;
Неразрешимость основных свойств линейных грамматик.&lt;br /&gt;
Разрешимость проверки равносильности LL(k) грамматик.&lt;br /&gt;
Разрешимость задачи включения для автоматов, управляемых входом.&lt;br /&gt;
Иерархия семейств грамматик.&lt;br /&gt;
''(26 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 15.pdf]]&lt;br /&gt;
(редакция от 30 сентября)&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
=== Задание 1: к 22 сентября ===&lt;br /&gt;
&lt;br /&gt;
# Построить обыкновенную грамматику для языка всех палиндромов: &amp;lt;math&amp;gt;L_1 = \{ w \in \{a, b\}^* \mid w=w^R \}&amp;lt;/math&amp;gt;. Показать, как строка &amp;lt;math&amp;gt;ababa&amp;lt;/math&amp;gt; выводится с помощью перезаписи строк. Показать, что эта же строка принадлежит наименьшему решению системы языковых уравнений, построив несколько шагов последовательности &amp;lt;math&amp;gt;\varphi^k(\bot)&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Доказать, что не существует обыкновенной грамматики для языка &amp;lt;math&amp;gt;L_2=\{ a^{k_1} b \ldots a^{k_n} b \mid n \geqslant 1, 0 \leqslant k_1 \leqslant \ldots \leqslant k_n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Построить конъюнктивную грамматику для языка &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Построить однозначную обыкновенную грамматику для языка &amp;lt;math&amp;gt;L_3=\{c^m a^{\ell_0}b \ldots a^{\ell_{m-1}}b a^{\ell_m}b \ldots a^{\ell_z}b d^n \mid m,n, \ell_i \geqslant 0, z \geqslant 1, \ell_m=n\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Является ли язык &amp;lt;math&amp;gt;L_3&amp;lt;/math&amp;gt; линейным конъюнктивным?&lt;br /&gt;
# Пусть &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; --- язык Дика над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Существует ли грамматика обёртывания пар для языка &amp;lt;math&amp;gt;L_4 = \{wc^{|w|} \mid w \in D\} = \{\varepsilon, abcc, aabbcccc, ababcccc, aaabbbcccccc, \ldots\}&amp;lt;/math&amp;gt;?&lt;br /&gt;
# Построить грамматику 1-го порядка для языка &amp;lt;math&amp;gt;\{ww \mid w \in \{a, b\}^*\}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''(всё проверено, изыскиваются способы передать проверенные работы)''&lt;br /&gt;
&lt;br /&gt;
=== Задание 2: к 13 октября ===&lt;br /&gt;
&lt;br /&gt;
# Постоить обыкновенную грамматику ''в нормальном виде Хомского'' для языка Дика &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Для этой грамматики и для входной строки &amp;lt;math&amp;gt;w=abaabba \notin D&amp;lt;/math&amp;gt;, построить таблицу разбора &amp;lt;math&amp;gt;T_{i,j}&amp;lt;/math&amp;gt;, как в алгоритме Кокка–Касами–Янгера.&lt;br /&gt;
# Рассмотреть работу алгоритма Валианта (синтаксический анализ через умножение матриц, лекции 9-10) для грамматики, построенной в прошлом упражнении. Среди всех действий, производимых алгоритмом, найти то произведение булевых матриц, после вычисления которого  станет верным условие &amp;lt;math&amp;gt;S \in f(P_{0,6})&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; — начальный символ грамматики. Описать, когда и как именно вычисляется это произведение — то есть, какая процедура, вызванная с какими значениями, и какой оператор в ней умножает какие две булевы матрицы какого размера, каков результат умножения, и какие элементы &amp;lt;math&amp;gt;P_{i,j}&amp;lt;/math&amp;gt; будут этим затронуты?&lt;br /&gt;
# Замкнут ли класс LL языков относительно пересечения с регулярными языками? Если замкнут, привести построение (см. построение такого рода для всего класса обыкновенных грамматик в материалах к лекциям 2-4), а если незамкнут, привести пример LL грамматики и регулярного языка с доказательством несуществования LL грамматики для их пересечения (см. доказательства такого рода в материалах к лекции 11).&lt;br /&gt;
# Построить линейную грамматику для языка &amp;lt;math&amp;gt;f(L_0)&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;L_0 = \{ w\$w^R \mid w \in \{a,b\}^* \}&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;f(L) = \{ [w_{1,1} \# \ldots \# w_{1, k_1}] \ldots [w_{m,1} \# \ldots \# w_{m, k_m}] \mid \exists i_1, \ldots, i_m: \; w_{1,i_1} w_{2,i_2} \ldots w_{m,i_m} \in L \}&amp;lt;/math&amp;gt; (это NLOGSPACE-полный язык, приведённый на лекции).&lt;br /&gt;
# Разрешима ли такая задача: «по данной обыкновенной грамматике, определить, порождает ли она хотя бы одну строку чётной длины»? Если разрешима, привести алгоритм, а если неразрешима, доказать это с помощью методов лекции 15 (использовав язык VALC в готовом виде, или же определив новый его вариант).&lt;br /&gt;
# Разрешима ли такая задача: «по данной обыкновенной грамматике, определить, порождает ли она хотя бы одну строку-палиндром &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt;, т.е., строку, для которой &amp;lt;math&amp;gt;w=w^R&amp;lt;/math&amp;gt;»?&lt;br /&gt;
# Для произвольной данной линейной грамматики G, пусть &amp;lt;math&amp;gt;L=\{vu \mid uv \in L(G)\}&amp;lt;/math&amp;gt; — циклический сдвиг порождаемого ею языка. Построить алгоритм, определяющий принадлежность данной на входе строки языку &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt;, и ''использующий как можно меньше памяти''. Объём памяти считать функцией &amp;lt;math&amp;gt;s(n)&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; — длина входной строки, и этот объём должен быть по крайней мере меньше, чем линейным. Примечания: алгоритм строится по грамматике, и потому зависимостью требуемого объёма памяти от размера этой грамматики можно пренебречь; алгоритм должен быть детерминированным; если получится использовать алгоритмы, приведённые на лекциях, то их можно не повторять, но нужно указать, как именно и к чему именно они применяются.&lt;br /&gt;
&lt;br /&gt;
''(задания принимаются по эл. почте в формате pdf, печатном или отсканированном рукописном; отсканированные файлы должны быть пригодны для печати и умещаться в один мегабайт)''&lt;/div&gt;</summary>
		<author><name>Okhotin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=4171</id>
		<title>Формальные грамматики 2014</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=4171"/>
				<updated>2014-10-07T07:26:56Z</updated>
		
		<summary type="html">&lt;p&gt;Okhotin: /* Упражнения */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Курс «Формальные грамматики»: сентябрь 2014 г., 15 лекций,&lt;br /&gt;
лектор: [http://users.utu.fi/aleokh/ Александр Охотин] (университет Турку, Финляндия).&lt;br /&gt;
&lt;br /&gt;
== Содержание лекций ==&lt;br /&gt;
&lt;br /&gt;
Приветствуются любые замечания&lt;br /&gt;
по содержанию материалов к лекциям:&lt;br /&gt;
если что-то неправильно или плохо понятно,&lt;br /&gt;
то, пожалуйста, напишите, что именно.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 1: Введение, регулярные языки ===&lt;br /&gt;
&lt;br /&gt;
Математические модели синтаксиса.&lt;br /&gt;
Формальные языки.&lt;br /&gt;
Детерминированные и недетерминированные конечные автоматы, регулярные выражения, их равносильность.&lt;br /&gt;
Примеры. Замкнутость относительно основных действий.&lt;br /&gt;
Нерегулярные языки.&lt;br /&gt;
''(8 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 1.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 2: Обыкновенные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные формальные грамматики&lt;br /&gt;
(в терминологии Хомского, «бесконтекстные»).&lt;br /&gt;
Определения через перезапись строк,&lt;br /&gt;
через деревья разбора,&lt;br /&gt;
через логический вывод&lt;br /&gt;
и через языковые уравнения.&lt;br /&gt;
Равносильность определений.&lt;br /&gt;
Примеры грамматик.&lt;br /&gt;
Замкнутость относительно объединения, конкатенации, звёздочки,&lt;br /&gt;
а также циклического сдвига.&lt;br /&gt;
''(8 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 2 3 4.pdf]]&lt;br /&gt;
(редакция от 16 сентября, добавлены все недостающие разделы)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 3: Свойства обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Замкнутость относительно пересечения с регулярными языками.&lt;br /&gt;
Языки, не представимые грамматиками.&lt;br /&gt;
Лемма накачки, лемма Огдена.&lt;br /&gt;
Грамматики над односимвольным алфавитом.&lt;br /&gt;
Нормальный вид Хомского.&lt;br /&gt;
''(9 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 4: Представления обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Нормальный вид Грейбах.&lt;br /&gt;
Нормальный вид Розенкранца.&lt;br /&gt;
Теорема Хомского--Шюценберже о представлении обыкновенных языков через язык Дика.&lt;br /&gt;
Теорема Грейбах о «самом сложном языке».&lt;br /&gt;
''(9 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 5: Конъюнктивные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Определения конъюнктивных грамматик&lt;br /&gt;
через логический вывод, перезапись термов, деревья разбора и языковые уравнения.&lt;br /&gt;
Примеры грамматик: wcw, объявление перед использованием, степени четвёрки.&lt;br /&gt;
Приведение к нормальному виду Хомского.&lt;br /&gt;
Понятие о булевых грамматиках.&lt;br /&gt;
''(11 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 5.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 6: Однозначные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Неоднозначность в естественных языках и языках программирования.&lt;br /&gt;
Комбинаторные и аналитические методы доказательства существенной неоднозначности.&lt;br /&gt;
''(11 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 6.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 7: Линейные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные линейные грамматики, лемма накачки для них.&lt;br /&gt;
Линейные конъюнктивные грамматики и клеточные автоматы, их равносильность.&lt;br /&gt;
Лемма Терье.&lt;br /&gt;
''(12 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 7.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 8: Многокомпонентные грамматики, логика FO(LFP) ===&lt;br /&gt;
&lt;br /&gt;
Грамматики обёртывания пар и грамматики надстройки деревьев (tree-adjoining grammars).&lt;br /&gt;
Логика первого порядка над позициями в строке FO(LFP),&lt;br /&gt;
представление грамматик в этой логике.&lt;br /&gt;
Алгоритм проверки истинности формул логики FO(LFP)&lt;br /&gt;
как прототип алгоритмов синтаксического анализа.&lt;br /&gt;
''(12 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 8.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 9: Табличные алгоритмы синтаксического анализа ===&lt;br /&gt;
&lt;br /&gt;
Алгоритм Кокка-Касами-Янгера.&lt;br /&gt;
Использование умножения матриц для ускорения алгоритма.&lt;br /&gt;
Умножение матриц по методу Штрассена и по методу Арлазарова и др.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 9 10.pdf]]&lt;br /&gt;
(редакция от 30 сентября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 10: Табличные алгоритмы синтаксического анализа (окончание) ===&lt;br /&gt;
&lt;br /&gt;
Разбор через умножение матриц (алгоритм Валианта). Разбор однозначных грамматик за квадратичное время.&lt;br /&gt;
Разбор для грамматик обёртывания пар.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 11: Разбор сверху вниз ===&lt;br /&gt;
&lt;br /&gt;
LL(k) анализ для обыкновенных грамматик, рекурсивный спуск.&lt;br /&gt;
Удаление пустых правил из LL-грамматик.&lt;br /&gt;
Языки, не представимые LL-грамматиками.&lt;br /&gt;
Теорема Розенкранца--Стирнса&lt;br /&gt;
о регулярном объединении LL-языков.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 11.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 12: LR(k) анализ и детерминированные языки ===&lt;br /&gt;
&lt;br /&gt;
Анализ через сдвиг и свёртку.&lt;br /&gt;
Детерминированный конечный автомат, читающий стек.&lt;br /&gt;
Класс LR(k) грамматик.&lt;br /&gt;
Построение таблиц по методу SLR(k).&lt;br /&gt;
Магазинные автоматы и их равносильность LR(k) грамматикам.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 12 13.pdf]]&lt;br /&gt;
(весьма неполная редакция от 25 сентября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 13: Автоматы, управляемые входом; обобщённый LR ===&lt;br /&gt;
&lt;br /&gt;
Автоматы, управляемые входом (input-driven automata; visibly pushdown automata). Равносильность их детерминированных и недетерминированных разновидностей. Грамматики, управляемые входом.&lt;br /&gt;
Обобщённый LR: пример работы, оценки сложности.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 14: Вычислительная сложность разбора ===&lt;br /&gt;
&lt;br /&gt;
Разбор обыкновенных грамматик с использованием памяти &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;,&lt;br /&gt;
разбор схемой высоты &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;.&lt;br /&gt;
Линейная грамматика для NLOGSPACE-полного языка.&lt;br /&gt;
Задача принадлежности данной строки данной обыкновенной грамматике&lt;br /&gt;
и её P-полнота.&lt;br /&gt;
Равносильность грамматик 1-го порядка классу P.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 14.pdf]]&lt;br /&gt;
(редакция от 2 октября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 15: Разрешимость свойств грамматик ===&lt;br /&gt;
&lt;br /&gt;
Язык вычислений машины Тьюринга (VALC)&lt;br /&gt;
и его представление в виде пересечения двух LL(1) линейных языков.&lt;br /&gt;
Неразрешимость основных свойств линейных грамматик.&lt;br /&gt;
Разрешимость проверки равносильности LL(k) грамматик.&lt;br /&gt;
Разрешимость задачи включения для автоматов, управляемых входом.&lt;br /&gt;
Иерархия семейств грамматик.&lt;br /&gt;
''(26 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 15.pdf]]&lt;br /&gt;
(редакция от 30 сентября)&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
=== Задание 1: к 22 сентября ===&lt;br /&gt;
&lt;br /&gt;
# Построить обыкновенную грамматику для языка всех палиндромов: &amp;lt;math&amp;gt;L_1 = \{ w \in \{a, b\}^* \mid w=w^R \}&amp;lt;/math&amp;gt;. Показать, как строка &amp;lt;math&amp;gt;ababa&amp;lt;/math&amp;gt; выводится с помощью перезаписи строк. Показать, что эта же строка принадлежит наименьшему решению системы языковых уравнений, построив несколько шагов последовательности &amp;lt;math&amp;gt;\varphi^k(\bot)&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Доказать, что не существует обыкновенной грамматики для языка &amp;lt;math&amp;gt;L_2=\{ a^{k_1} b \ldots a^{k_n} b \mid n \geqslant 1, 0 \leqslant k_1 \leqslant \ldots \leqslant k_n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Построить конъюнктивную грамматику для языка &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Построить однозначную обыкновенную грамматику для языка &amp;lt;math&amp;gt;L_3=\{c^m a^{\ell_0}b \ldots a^{\ell_{m-1}}b a^{\ell_m}b \ldots a^{\ell_z}b d^n \mid m,n, \ell_i \geqslant 0, z \geqslant 1, \ell_m=n\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Является ли язык &amp;lt;math&amp;gt;L_3&amp;lt;/math&amp;gt; линейным конъюнктивным?&lt;br /&gt;
# Пусть &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; --- язык Дика над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Существует ли грамматика обёртывания пар для языка &amp;lt;math&amp;gt;L_4 = \{wc^{|w|} \mid w \in D\} = \{\varepsilon, abcc, aabbcccc, ababcccc, aaabbbcccccc, \ldots\}&amp;lt;/math&amp;gt;?&lt;br /&gt;
# Построить грамматику 1-го порядка для языка &amp;lt;math&amp;gt;\{ww \mid w \in \{a, b\}^*\}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''(почти всё проверено, скоро будут результаты)''&lt;br /&gt;
&lt;br /&gt;
=== Задание 2: к 13 октября ===&lt;br /&gt;
&lt;br /&gt;
# Постоить обыкновенную грамматику ''в нормальном виде Хомского'' для языка Дика &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Для этой грамматики и для входной строки &amp;lt;math&amp;gt;w=abaabba \notin D&amp;lt;/math&amp;gt;, построить таблицу разбора &amp;lt;math&amp;gt;T_{i,j}&amp;lt;/math&amp;gt;, как в алгоритме Кокка–Касами–Янгера.&lt;br /&gt;
# Рассмотреть работу алгоритма Валианта (синтаксический анализ через умножение матриц, лекции 9-10) для грамматики, построенной в прошлом упражнении. Среди всех действий, производимых алгоритмом, найти то произведение булевых матриц, после вычисления которого  станет верным условие &amp;lt;math&amp;gt;S \in f(P_{0,6})&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; — начальный символ грамматики. Описать, когда и как именно вычисляется это произведение — то есть, какая процедура, вызванная с какими значениями, и какой оператор в ней умножает какие две булевы матрицы какого размера, каков результат умножения, и какие элементы &amp;lt;math&amp;gt;P_{i,j}&amp;lt;/math&amp;gt; будут этим затронуты?&lt;br /&gt;
# Замкнут ли класс LL языков относительно пересечения с регулярными языками? Если замкнут, привести построение (см. построение такого рода для всего класса обыкновенных грамматик в материалах к лекциям 2-4), а если незамкнут, привести пример LL грамматики и регулярного языка с доказательством несуществования LL грамматики для их пересечения (см. доказательства такого рода в материалах к лекции 11).&lt;br /&gt;
# Построить линейную грамматику для языка &amp;lt;math&amp;gt;f(L_0)&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;L_0 = \{ w\$w^R \mid w \in \{a,b\}^* \}&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;f(L) = \{ [w_{1,1} \# \ldots \# w_{1, k_1}] \ldots [w_{m,1} \# \ldots \# w_{m, k_m}] \mid \exists i_1, \ldots, i_m: \; w_{1,i_1} w_{2,i_2} \ldots w_{m,i_m} \in L \}&amp;lt;/math&amp;gt; (это NLOGSPACE-полный язык, приведённый на лекции).&lt;br /&gt;
# Разрешима ли такая задача: «по данной обыкновенной грамматике, определить, порождает ли она хотя бы одну строку чётной длины»? Если разрешима, привести алгоритм, а если неразрешима, доказать это с помощью методов лекции 15 (использовав язык VALC в готовом виде, или же определив новый его вариант).&lt;br /&gt;
# Разрешима ли такая задача: «по данной обыкновенной грамматике, определить, порождает ли она хотя бы одну строку-палиндром &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt;, т.е., строку, для которой &amp;lt;math&amp;gt;w=w^R&amp;lt;/math&amp;gt;»?&lt;br /&gt;
# Для произвольной данной линейной грамматики G, пусть &amp;lt;math&amp;gt;L=\{vu \mid uv \in L(G)\}&amp;lt;/math&amp;gt; — циклический сдвиг порождаемого ею языка. Построить алгоритм, определяющий принадлежность данной на входе строки языку &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt;, и ''использующий как можно меньше памяти''. Объём памяти считать функцией &amp;lt;math&amp;gt;s(n)&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; — длина входной строки, и этот объём должен быть по крайней мере меньше, чем линейным. Примечания: алгоритм строится по грамматике, и потому зависимостью требуемого объёма памяти от размера этой грамматики можно пренебречь; алгоритм должен быть детерминированным; если получится использовать алгоритмы, приведённые на лекциях, то их можно не повторять, но нужно указать, как именно и к чему именно они применяются.&lt;br /&gt;
&lt;br /&gt;
''(задания принимаются по эл. почте в формате pdf, печатном или отсканированном рукописном; отсканированные файлы должны быть пригодны для печати и умещаться в один мегабайт)''&lt;/div&gt;</summary>
		<author><name>Okhotin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=4117</id>
		<title>Формальные грамматики 2014</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=4117"/>
				<updated>2014-10-03T15:35:52Z</updated>
		
		<summary type="html">&lt;p&gt;Okhotin: /* Задание 2: (есть шесть задач из семи, последняя сочиняется) */ Выданы все задачи&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Курс «Формальные грамматики»: сентябрь 2014 г., 15 лекций,&lt;br /&gt;
лектор: [http://users.utu.fi/aleokh/ Александр Охотин] (университет Турку, Финляндия).&lt;br /&gt;
&lt;br /&gt;
== Содержание лекций ==&lt;br /&gt;
&lt;br /&gt;
Приветствуются любые замечания&lt;br /&gt;
по содержанию материалов к лекциям:&lt;br /&gt;
если что-то неправильно или плохо понятно,&lt;br /&gt;
то, пожалуйста, напишите, что именно.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 1: Введение, регулярные языки ===&lt;br /&gt;
&lt;br /&gt;
Математические модели синтаксиса.&lt;br /&gt;
Формальные языки.&lt;br /&gt;
Детерминированные и недетерминированные конечные автоматы, регулярные выражения, их равносильность.&lt;br /&gt;
Примеры. Замкнутость относительно основных действий.&lt;br /&gt;
Нерегулярные языки.&lt;br /&gt;
''(8 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 1.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 2: Обыкновенные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные формальные грамматики&lt;br /&gt;
(в терминологии Хомского, «бесконтекстные»).&lt;br /&gt;
Определения через перезапись строк,&lt;br /&gt;
через деревья разбора,&lt;br /&gt;
через логический вывод&lt;br /&gt;
и через языковые уравнения.&lt;br /&gt;
Равносильность определений.&lt;br /&gt;
Примеры грамматик.&lt;br /&gt;
Замкнутость относительно объединения, конкатенации, звёздочки,&lt;br /&gt;
а также циклического сдвига.&lt;br /&gt;
''(8 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 2 3 4.pdf]]&lt;br /&gt;
(редакция от 16 сентября, добавлены все недостающие разделы)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 3: Свойства обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Замкнутость относительно пересечения с регулярными языками.&lt;br /&gt;
Языки, не представимые грамматиками.&lt;br /&gt;
Лемма накачки, лемма Огдена.&lt;br /&gt;
Грамматики над односимвольным алфавитом.&lt;br /&gt;
Нормальный вид Хомского.&lt;br /&gt;
''(9 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 4: Представления обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Нормальный вид Грейбах.&lt;br /&gt;
Нормальный вид Розенкранца.&lt;br /&gt;
Теорема Хомского--Шюценберже о представлении обыкновенных языков через язык Дика.&lt;br /&gt;
Теорема Грейбах о «самом сложном языке».&lt;br /&gt;
''(9 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 5: Конъюнктивные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Определения конъюнктивных грамматик&lt;br /&gt;
через логический вывод, перезапись термов, деревья разбора и языковые уравнения.&lt;br /&gt;
Примеры грамматик: wcw, объявление перед использованием, степени четвёрки.&lt;br /&gt;
Приведение к нормальному виду Хомского.&lt;br /&gt;
Понятие о булевых грамматиках.&lt;br /&gt;
''(11 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 5.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 6: Однозначные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Неоднозначность в естественных языках и языках программирования.&lt;br /&gt;
Комбинаторные и аналитические методы доказательства существенной неоднозначности.&lt;br /&gt;
''(11 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 6.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 7: Линейные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные линейные грамматики, лемма накачки для них.&lt;br /&gt;
Линейные конъюнктивные грамматики и клеточные автоматы, их равносильность.&lt;br /&gt;
Лемма Терье.&lt;br /&gt;
''(12 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 7.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 8: Многокомпонентные грамматики, логика FO(LFP) ===&lt;br /&gt;
&lt;br /&gt;
Грамматики обёртывания пар и грамматики надстройки деревьев (tree-adjoining grammars).&lt;br /&gt;
Логика первого порядка над позициями в строке FO(LFP),&lt;br /&gt;
представление грамматик в этой логике.&lt;br /&gt;
Алгоритм проверки истинности формул логики FO(LFP)&lt;br /&gt;
как прототип алгоритмов синтаксического анализа.&lt;br /&gt;
''(12 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 8.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 9: Табличные алгоритмы синтаксического анализа ===&lt;br /&gt;
&lt;br /&gt;
Алгоритм Кокка-Касами-Янгера.&lt;br /&gt;
Использование умножения матриц для ускорения алгоритма.&lt;br /&gt;
Умножение матриц по методу Штрассена и по методу Арлазарова и др.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 9 10.pdf]]&lt;br /&gt;
(редакция от 30 сентября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 10: Табличные алгоритмы синтаксического анализа (окончание) ===&lt;br /&gt;
&lt;br /&gt;
Разбор через умножение матриц (алгоритм Валианта). Разбор однозначных грамматик за квадратичное время.&lt;br /&gt;
Разбор для грамматик обёртывания пар.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 11: Разбор сверху вниз ===&lt;br /&gt;
&lt;br /&gt;
LL(k) анализ для обыкновенных грамматик, рекурсивный спуск.&lt;br /&gt;
Удаление пустых правил из LL-грамматик.&lt;br /&gt;
Языки, не представимые LL-грамматиками.&lt;br /&gt;
Теорема Розенкранца--Стирнса&lt;br /&gt;
о регулярном объединении LL-языков.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 11.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 12: LR(k) анализ и детерминированные языки ===&lt;br /&gt;
&lt;br /&gt;
Анализ через сдвиг и свёртку.&lt;br /&gt;
Детерминированный конечный автомат, читающий стек.&lt;br /&gt;
Класс LR(k) грамматик.&lt;br /&gt;
Построение таблиц по методу SLR(k).&lt;br /&gt;
Магазинные автоматы и их равносильность LR(k) грамматикам.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 12 13.pdf]]&lt;br /&gt;
(весьма неполная редакция от 25 сентября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 13: Автоматы, управляемые входом; обобщённый LR ===&lt;br /&gt;
&lt;br /&gt;
Автоматы, управляемые входом (input-driven automata; visibly pushdown automata). Равносильность их детерминированных и недетерминированных разновидностей. Грамматики, управляемые входом.&lt;br /&gt;
Обобщённый LR: пример работы, оценки сложности.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 14: Вычислительная сложность разбора ===&lt;br /&gt;
&lt;br /&gt;
Разбор обыкновенных грамматик с использованием памяти &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;,&lt;br /&gt;
разбор схемой высоты &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;.&lt;br /&gt;
Линейная грамматика для NLOGSPACE-полного языка.&lt;br /&gt;
Задача принадлежности данной строки данной обыкновенной грамматике&lt;br /&gt;
и её P-полнота.&lt;br /&gt;
Равносильность грамматик 1-го порядка классу P.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 14.pdf]]&lt;br /&gt;
(редакция от 2 октября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 15: Разрешимость свойств грамматик ===&lt;br /&gt;
&lt;br /&gt;
Язык вычислений машины Тьюринга (VALC)&lt;br /&gt;
и его представление в виде пересечения двух LL(1) линейных языков.&lt;br /&gt;
Неразрешимость основных свойств линейных грамматик.&lt;br /&gt;
Разрешимость проверки равносильности LL(k) грамматик.&lt;br /&gt;
Разрешимость задачи включения для автоматов, управляемых входом.&lt;br /&gt;
Иерархия семейств грамматик.&lt;br /&gt;
''(26 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 15.pdf]]&lt;br /&gt;
(редакция от 30 сентября)&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
=== Задание 1: к 22 сентября ===&lt;br /&gt;
&lt;br /&gt;
# Построить обыкновенную грамматику для языка всех палиндромов: &amp;lt;math&amp;gt;L_1 = \{ w \in \{a, b\}^* \mid w=w^R \}&amp;lt;/math&amp;gt;. Показать, как строка &amp;lt;math&amp;gt;ababa&amp;lt;/math&amp;gt; выводится с помощью перезаписи строк. Показать, что эта же строка принадлежит наименьшему решению системы языковых уравнений, построив несколько шагов последовательности &amp;lt;math&amp;gt;\varphi^k(\bot)&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Доказать, что не существует обыкновенной грамматики для языка &amp;lt;math&amp;gt;L_2=\{ a^{k_1} b \ldots a^{k_n} b \mid n \geqslant 1, 0 \leqslant k_1 \leqslant \ldots \leqslant k_n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Построить конъюнктивную грамматику для языка &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Построить однозначную обыкновенную грамматику для языка &amp;lt;math&amp;gt;L_3=\{c^m a^{\ell_0}b \ldots a^{\ell_{m-1}}b a^{\ell_m}b \ldots a^{\ell_z}b d^n \mid m,n, \ell_i \geqslant 0, z \geqslant 1, \ell_m=n\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Является ли язык &amp;lt;math&amp;gt;L_3&amp;lt;/math&amp;gt; линейным конъюнктивным?&lt;br /&gt;
# Пусть &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; --- язык Дика над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Существует ли грамматика обёртывания пар для языка &amp;lt;math&amp;gt;L_4 = \{wc^{|w|} \mid w \in D\} = \{\varepsilon, abcc, aabbcccc, ababcccc, aaabbbcccccc, \ldots\}&amp;lt;/math&amp;gt;?&lt;br /&gt;
# Построить грамматику 1-го порядка для языка &amp;lt;math&amp;gt;\{ww \mid w \in \{a, b\}^*\}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Задание 2: к 13 октября ===&lt;br /&gt;
&lt;br /&gt;
# Постоить обыкновенную грамматику ''в нормальном виде Хомского'' для языка Дика &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Для этой грамматики и для входной строки &amp;lt;math&amp;gt;w=abaabba \notin D&amp;lt;/math&amp;gt;, построить таблицу разбора &amp;lt;math&amp;gt;T_{i,j}&amp;lt;/math&amp;gt;, как в алгоритме Кокка–Касами–Янгера.&lt;br /&gt;
# Рассмотреть работу алгоритма Валианта (синтаксический анализ через умножение матриц, лекции 9-10) для грамматики, построенной в прошлом упражнении. Среди всех действий, производимых алгоритмом, найти то произведение булевых матриц, после вычисления которого  станет верным условие &amp;lt;math&amp;gt;S \in f(P_{0,6})&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; — начальный символ грамматики. Описать, когда и как именно вычисляется это произведение — то есть, какая процедура, вызванная с какими значениями, и какой оператор в ней умножает какие две булевы матрицы какого размера, каков результат умножения, и какие элементы &amp;lt;math&amp;gt;P_{i,j}&amp;lt;/math&amp;gt; будут этим затронуты?&lt;br /&gt;
# Замкнут ли класс LL языков относительно пересечения с регулярными языками? Если замкнут, привести построение (см. построение такого рода для всего класса обыкновенных грамматик в материалах к лекциям 2-4), а если незамкнут, привести пример LL грамматики и регулярного языка с доказательством несуществования LL грамматики для их пересечения (см. доказательства такого рода в материалах к лекции 11).&lt;br /&gt;
# Построить линейную грамматику для языка &amp;lt;math&amp;gt;f(L_0)&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;L_0 = \{ w\$w^R \mid w \in \{a,b\}^* \}&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;f(L) = \{ [w_{1,1} \# \ldots \# w_{1, k_1}] \ldots [w_{m,1} \# \ldots \# w_{m, k_m}] \mid \exists i_1, \ldots, i_m: \; w_{1,i_1} w_{2,i_2} \ldots w_{m,i_m} \in L \}&amp;lt;/math&amp;gt; (это NLOGSPACE-полный язык, приведённый на лекции).&lt;br /&gt;
# Разрешима ли такая задача: «по данной обыкновенной грамматике, определить, порождает ли она хотя бы одну строку чётной длины»? Если разрешима, привести алгоритм, а если неразрешима, доказать это с помощью методов лекции 15 (использовав язык VALC в готовом виде, или же определив новый его вариант).&lt;br /&gt;
# Разрешима ли такая задача: «по данной обыкновенной грамматике, определить, порождает ли она хотя бы одну строку-палиндром &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt;, т.е., строку, для которой &amp;lt;math&amp;gt;w=w^R&amp;lt;/math&amp;gt;»?&lt;br /&gt;
# Для произвольной данной линейной грамматики G, пусть &amp;lt;math&amp;gt;L=\{vu \mid uv \in L(G)\}&amp;lt;/math&amp;gt; — циклический сдвиг порождаемого ею языка. Построить алгоритм, определяющий принадлежность данной на входе строки языку &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt;, и ''использующий как можно меньше памяти''. Объём памяти считать функцией &amp;lt;math&amp;gt;s(n)&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; — длина входной строки, и этот объём должен быть по крайней мере меньше, чем линейным. Примечания: алгоритм строится по грамматике, и потому зависимостью требуемого объёма памяти от размера этой грамматики можно пренебречь; алгоритм должен быть детерминированным; если получится использовать алгоритмы, приведённые на лекциях, то их можно не повторять, но нужно указать, как именно и к чему именно они применяются.&lt;/div&gt;</summary>
		<author><name>Okhotin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Formal_grammars_2014_lecture_14.pdf&amp;diff=4102</id>
		<title>Файл:Formal grammars 2014 lecture 14.pdf</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Formal_grammars_2014_lecture_14.pdf&amp;diff=4102"/>
				<updated>2014-10-02T17:03:18Z</updated>
		
		<summary type="html">&lt;p&gt;Okhotin: загружена новая версия «Файл:Formal grammars 2014 lecture 14.pdf»:&amp;amp;#32;В раздел о P-полноте добавлена картинка.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Формальные грамматики 2014, материалы к лекции 14 (англ. яз.).&lt;/div&gt;</summary>
		<author><name>Okhotin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=4101</id>
		<title>Формальные грамматики 2014</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=4101"/>
				<updated>2014-10-02T15:54:26Z</updated>
		
		<summary type="html">&lt;p&gt;Okhotin: /* Лекция 14: Вычислительная сложность разбора */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Курс «Формальные грамматики»: сентябрь 2014 г., 15 лекций,&lt;br /&gt;
лектор: [http://users.utu.fi/aleokh/ Александр Охотин] (университет Турку, Финляндия).&lt;br /&gt;
&lt;br /&gt;
== Содержание лекций ==&lt;br /&gt;
&lt;br /&gt;
Приветствуются любые замечания&lt;br /&gt;
по содержанию материалов к лекциям:&lt;br /&gt;
если что-то неправильно или плохо понятно,&lt;br /&gt;
то, пожалуйста, напишите, что именно.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 1: Введение, регулярные языки ===&lt;br /&gt;
&lt;br /&gt;
Математические модели синтаксиса.&lt;br /&gt;
Формальные языки.&lt;br /&gt;
Детерминированные и недетерминированные конечные автоматы, регулярные выражения, их равносильность.&lt;br /&gt;
Примеры. Замкнутость относительно основных действий.&lt;br /&gt;
Нерегулярные языки.&lt;br /&gt;
''(8 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 1.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 2: Обыкновенные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные формальные грамматики&lt;br /&gt;
(в терминологии Хомского, «бесконтекстные»).&lt;br /&gt;
Определения через перезапись строк,&lt;br /&gt;
через деревья разбора,&lt;br /&gt;
через логический вывод&lt;br /&gt;
и через языковые уравнения.&lt;br /&gt;
Равносильность определений.&lt;br /&gt;
Примеры грамматик.&lt;br /&gt;
Замкнутость относительно объединения, конкатенации, звёздочки,&lt;br /&gt;
а также циклического сдвига.&lt;br /&gt;
''(8 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 2 3 4.pdf]]&lt;br /&gt;
(редакция от 16 сентября, добавлены все недостающие разделы)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 3: Свойства обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Замкнутость относительно пересечения с регулярными языками.&lt;br /&gt;
Языки, не представимые грамматиками.&lt;br /&gt;
Лемма накачки, лемма Огдена.&lt;br /&gt;
Грамматики над односимвольным алфавитом.&lt;br /&gt;
Нормальный вид Хомского.&lt;br /&gt;
''(9 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 4: Представления обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Нормальный вид Грейбах.&lt;br /&gt;
Нормальный вид Розенкранца.&lt;br /&gt;
Теорема Хомского--Шюценберже о представлении обыкновенных языков через язык Дика.&lt;br /&gt;
Теорема Грейбах о «самом сложном языке».&lt;br /&gt;
''(9 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 5: Конъюнктивные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Определения конъюнктивных грамматик&lt;br /&gt;
через логический вывод, перезапись термов, деревья разбора и языковые уравнения.&lt;br /&gt;
Примеры грамматик: wcw, объявление перед использованием, степени четвёрки.&lt;br /&gt;
Приведение к нормальному виду Хомского.&lt;br /&gt;
Понятие о булевых грамматиках.&lt;br /&gt;
''(11 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 5.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 6: Однозначные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Неоднозначность в естественных языках и языках программирования.&lt;br /&gt;
Комбинаторные и аналитические методы доказательства существенной неоднозначности.&lt;br /&gt;
''(11 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 6.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 7: Линейные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные линейные грамматики, лемма накачки для них.&lt;br /&gt;
Линейные конъюнктивные грамматики и клеточные автоматы, их равносильность.&lt;br /&gt;
Лемма Терье.&lt;br /&gt;
''(12 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 7.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 8: Многокомпонентные грамматики, логика FO(LFP) ===&lt;br /&gt;
&lt;br /&gt;
Грамматики обёртывания пар и грамматики надстройки деревьев (tree-adjoining grammars).&lt;br /&gt;
Логика первого порядка над позициями в строке FO(LFP),&lt;br /&gt;
представление грамматик в этой логике.&lt;br /&gt;
Алгоритм проверки истинности формул логики FO(LFP)&lt;br /&gt;
как прототип алгоритмов синтаксического анализа.&lt;br /&gt;
''(12 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 8.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 9: Табличные алгоритмы синтаксического анализа ===&lt;br /&gt;
&lt;br /&gt;
Алгоритм Кокка-Касами-Янгера.&lt;br /&gt;
Использование умножения матриц для ускорения алгоритма.&lt;br /&gt;
Умножение матриц по методу Штрассена и по методу Арлазарова и др.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 9 10.pdf]]&lt;br /&gt;
(редакция от 30 сентября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 10: Табличные алгоритмы синтаксического анализа (окончание) ===&lt;br /&gt;
&lt;br /&gt;
Разбор через умножение матриц (алгоритм Валианта). Разбор однозначных грамматик за квадратичное время.&lt;br /&gt;
Разбор для грамматик обёртывания пар.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 11: Разбор сверху вниз ===&lt;br /&gt;
&lt;br /&gt;
LL(k) анализ для обыкновенных грамматик, рекурсивный спуск.&lt;br /&gt;
Удаление пустых правил из LL-грамматик.&lt;br /&gt;
Языки, не представимые LL-грамматиками.&lt;br /&gt;
Теорема Розенкранца--Стирнса&lt;br /&gt;
о регулярном объединении LL-языков.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 11.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 12: LR(k) анализ и детерминированные языки ===&lt;br /&gt;
&lt;br /&gt;
Анализ через сдвиг и свёртку.&lt;br /&gt;
Детерминированный конечный автомат, читающий стек.&lt;br /&gt;
Класс LR(k) грамматик.&lt;br /&gt;
Построение таблиц по методу SLR(k).&lt;br /&gt;
Магазинные автоматы и их равносильность LR(k) грамматикам.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 12 13.pdf]]&lt;br /&gt;
(весьма неполная редакция от 25 сентября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 13: Автоматы, управляемые входом; обобщённый LR ===&lt;br /&gt;
&lt;br /&gt;
Автоматы, управляемые входом (input-driven automata; visibly pushdown automata). Равносильность их детерминированных и недетерминированных разновидностей. Грамматики, управляемые входом.&lt;br /&gt;
Обобщённый LR: пример работы, оценки сложности.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 14: Вычислительная сложность разбора ===&lt;br /&gt;
&lt;br /&gt;
Разбор обыкновенных грамматик с использованием памяти &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;,&lt;br /&gt;
разбор схемой высоты &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;.&lt;br /&gt;
Линейная грамматика для NLOGSPACE-полного языка.&lt;br /&gt;
Задача принадлежности данной строки данной обыкновенной грамматике&lt;br /&gt;
и её P-полнота.&lt;br /&gt;
Равносильность грамматик 1-го порядка классу P.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 14.pdf]]&lt;br /&gt;
(редакция от 2 октября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 15: Разрешимость свойств грамматик ===&lt;br /&gt;
&lt;br /&gt;
Язык вычислений машины Тьюринга (VALC)&lt;br /&gt;
и его представление в виде пересечения двух LL(1) линейных языков.&lt;br /&gt;
Неразрешимость основных свойств линейных грамматик.&lt;br /&gt;
Разрешимость проверки равносильности LL(k) грамматик.&lt;br /&gt;
Разрешимость задачи включения для автоматов, управляемых входом.&lt;br /&gt;
Иерархия семейств грамматик.&lt;br /&gt;
''(26 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 15.pdf]]&lt;br /&gt;
(редакция от 30 сентября)&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
=== Задание 1: к 22 сентября ===&lt;br /&gt;
&lt;br /&gt;
# Построить обыкновенную грамматику для языка всех палиндромов: &amp;lt;math&amp;gt;L_1 = \{ w \in \{a, b\}^* \mid w=w^R \}&amp;lt;/math&amp;gt;. Показать, как строка &amp;lt;math&amp;gt;ababa&amp;lt;/math&amp;gt; выводится с помощью перезаписи строк. Показать, что эта же строка принадлежит наименьшему решению системы языковых уравнений, построив несколько шагов последовательности &amp;lt;math&amp;gt;\varphi^k(\bot)&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Доказать, что не существует обыкновенной грамматики для языка &amp;lt;math&amp;gt;L_2=\{ a^{k_1} b \ldots a^{k_n} b \mid n \geqslant 1, 0 \leqslant k_1 \leqslant \ldots \leqslant k_n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Построить конъюнктивную грамматику для языка &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Построить однозначную обыкновенную грамматику для языка &amp;lt;math&amp;gt;L_3=\{c^m a^{\ell_0}b \ldots a^{\ell_{m-1}}b a^{\ell_m}b \ldots a^{\ell_z}b d^n \mid m,n, \ell_i \geqslant 0, z \geqslant 1, \ell_m=n\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Является ли язык &amp;lt;math&amp;gt;L_3&amp;lt;/math&amp;gt; линейным конъюнктивным?&lt;br /&gt;
# Пусть &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; --- язык Дика над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Существует ли грамматика обёртывания пар для языка &amp;lt;math&amp;gt;L_4 = \{wc^{|w|} \mid w \in D\} = \{\varepsilon, abcc, aabbcccc, ababcccc, aaabbbcccccc, \ldots\}&amp;lt;/math&amp;gt;?&lt;br /&gt;
# Построить грамматику 1-го порядка для языка &amp;lt;math&amp;gt;\{ww \mid w \in \{a, b\}^*\}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Задание 2: (есть шесть задач из семи, последняя сочиняется) ===&lt;br /&gt;
&lt;br /&gt;
# Постоить обыкновенную грамматику ''в нормальном виде Хомского'' для языка Дика &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Для этой грамматики и для входной строки &amp;lt;math&amp;gt;w=abaabba \notin D&amp;lt;/math&amp;gt;, построить таблицу разбора &amp;lt;math&amp;gt;T_{i,j}&amp;lt;/math&amp;gt;, как в алгоритме Кокка--Касами--Янгера.&lt;br /&gt;
# Рассмотреть работу алгоритма Валианта (синтаксический анализ через умножение матриц, лекции 9-10) для грамматики, построенной в прошлом упражнении. Среди всех действий, производимых алгоритмом, найти то произведение булевых матриц, после вычисления которого  станет верным условие &amp;lt;math&amp;gt;S \in f(P_{0,6})&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; --- начальный символ грамматики. Описать, когда и как именно вычисляется это произведение --- то есть, какая процедура, вызванная с какими значениями, и какой оператор в ней умножает какие две булевы матрицы какого размера, каков результат умножения, и какие элементы &amp;lt;math&amp;gt;P_{i,j}&amp;lt;/math&amp;gt; будут этим затронуты?&lt;br /&gt;
# Замкнут ли класс LL языков относительно пересечения с регулярными языками? Если замкнут, привести построение (см. построение такого рода для всего класса обыкновенных грамматик в материалах к лекциям 2-4), а если незамкнут, привести пример LL грамматики и регулярного языка с доказательством несуществования LL грамматики для их пересечения (см. доказательства такого рода в материалах к лекции 11).&lt;br /&gt;
# Построить линейную грамматику для языка &amp;lt;math&amp;gt;f(L_0)&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;L_0 = \{ w\$w^R \mid w \in \{a,b\}^* \}&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;f(L) = \{ [w_{1,1} \# \ldots \# w_{1, k_1}] \ldots [w_{m,1} \# \ldots \# w_{m, k_m}] \mid \exists i_1, \ldots, i_m: \; w_{1,i_1} w_{2,i_2} \ldots w_{m,i_m} \in L \}&amp;lt;/math&amp;gt; (это NLOGSPACE-полный язык, приведённый на лекции).&lt;br /&gt;
# Разрешима ли такая задача: «по данной обыкновенной грамматике, определить, порождает ли она хотя бы одну строку чётной длины»? Если разрешима, привести алгоритм, а если неразрешима, доказать это с помощью методов лекции 15 (использовав язык VALC в готовом виде, или же определив новый его вариант).&lt;br /&gt;
# Разрешима ли такая задача: «по данной обыкновенной грамматике, определить, порождает ли она хотя бы одну строку-палиндром &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt;, т.е., строку, для которой &amp;lt;math&amp;gt;w=w^R&amp;lt;/math&amp;gt;»?&lt;br /&gt;
# '''(сочиняется)'''&lt;/div&gt;</summary>
		<author><name>Okhotin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Formal_grammars_2014_lecture_14.pdf&amp;diff=4100</id>
		<title>Файл:Formal grammars 2014 lecture 14.pdf</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Formal_grammars_2014_lecture_14.pdf&amp;diff=4100"/>
				<updated>2014-10-02T15:53:55Z</updated>
		
		<summary type="html">&lt;p&gt;Okhotin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Формальные грамматики 2014, материалы к лекции 14 (англ. яз.).&lt;/div&gt;</summary>
		<author><name>Okhotin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Formal_grammars_2014_lecture_14.pdf&amp;diff=4099</id>
		<title>Файл:Formal grammars 2014 lecture 14.pdf</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Formal_grammars_2014_lecture_14.pdf&amp;diff=4099"/>
				<updated>2014-10-02T10:23:58Z</updated>
		
		<summary type="html">&lt;p&gt;Okhotin: загружена новая версия «Файл:Formal grammars 2014 lecture 14.pdf»:&amp;amp;#32;В раздел про память (\log n)^2 добавлен рекурсивный алгоритм.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Формальные грамматики 2014, материалы к лекции 14 (англ. яз.).&lt;/div&gt;</summary>
		<author><name>Okhotin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=4089</id>
		<title>Формальные грамматики 2014</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=4089"/>
				<updated>2014-10-01T15:34:42Z</updated>
		
		<summary type="html">&lt;p&gt;Okhotin: /* Задание 2: (есть шесть задач из семи, последняя сочиняется) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Курс «Формальные грамматики»: сентябрь 2014 г., 15 лекций,&lt;br /&gt;
лектор: [http://users.utu.fi/aleokh/ Александр Охотин] (университет Турку, Финляндия).&lt;br /&gt;
&lt;br /&gt;
== Содержание лекций ==&lt;br /&gt;
&lt;br /&gt;
Приветствуются любые замечания&lt;br /&gt;
по содержанию материалов к лекциям:&lt;br /&gt;
если что-то неправильно или плохо понятно,&lt;br /&gt;
то, пожалуйста, напишите, что именно.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 1: Введение, регулярные языки ===&lt;br /&gt;
&lt;br /&gt;
Математические модели синтаксиса.&lt;br /&gt;
Формальные языки.&lt;br /&gt;
Детерминированные и недетерминированные конечные автоматы, регулярные выражения, их равносильность.&lt;br /&gt;
Примеры. Замкнутость относительно основных действий.&lt;br /&gt;
Нерегулярные языки.&lt;br /&gt;
''(8 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 1.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 2: Обыкновенные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные формальные грамматики&lt;br /&gt;
(в терминологии Хомского, «бесконтекстные»).&lt;br /&gt;
Определения через перезапись строк,&lt;br /&gt;
через деревья разбора,&lt;br /&gt;
через логический вывод&lt;br /&gt;
и через языковые уравнения.&lt;br /&gt;
Равносильность определений.&lt;br /&gt;
Примеры грамматик.&lt;br /&gt;
Замкнутость относительно объединения, конкатенации, звёздочки,&lt;br /&gt;
а также циклического сдвига.&lt;br /&gt;
''(8 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 2 3 4.pdf]]&lt;br /&gt;
(редакция от 16 сентября, добавлены все недостающие разделы)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 3: Свойства обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Замкнутость относительно пересечения с регулярными языками.&lt;br /&gt;
Языки, не представимые грамматиками.&lt;br /&gt;
Лемма накачки, лемма Огдена.&lt;br /&gt;
Грамматики над односимвольным алфавитом.&lt;br /&gt;
Нормальный вид Хомского.&lt;br /&gt;
''(9 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 4: Представления обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Нормальный вид Грейбах.&lt;br /&gt;
Нормальный вид Розенкранца.&lt;br /&gt;
Теорема Хомского--Шюценберже о представлении обыкновенных языков через язык Дика.&lt;br /&gt;
Теорема Грейбах о «самом сложном языке».&lt;br /&gt;
''(9 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 5: Конъюнктивные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Определения конъюнктивных грамматик&lt;br /&gt;
через логический вывод, перезапись термов, деревья разбора и языковые уравнения.&lt;br /&gt;
Примеры грамматик: wcw, объявление перед использованием, степени четвёрки.&lt;br /&gt;
Приведение к нормальному виду Хомского.&lt;br /&gt;
Понятие о булевых грамматиках.&lt;br /&gt;
''(11 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 5.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 6: Однозначные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Неоднозначность в естественных языках и языках программирования.&lt;br /&gt;
Комбинаторные и аналитические методы доказательства существенной неоднозначности.&lt;br /&gt;
''(11 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 6.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 7: Линейные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные линейные грамматики, лемма накачки для них.&lt;br /&gt;
Линейные конъюнктивные грамматики и клеточные автоматы, их равносильность.&lt;br /&gt;
Лемма Терье.&lt;br /&gt;
''(12 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 7.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 8: Многокомпонентные грамматики, логика FO(LFP) ===&lt;br /&gt;
&lt;br /&gt;
Грамматики обёртывания пар и грамматики надстройки деревьев (tree-adjoining grammars).&lt;br /&gt;
Логика первого порядка над позициями в строке FO(LFP),&lt;br /&gt;
представление грамматик в этой логике.&lt;br /&gt;
Алгоритм проверки истинности формул логики FO(LFP)&lt;br /&gt;
как прототип алгоритмов синтаксического анализа.&lt;br /&gt;
''(12 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 8.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 9: Табличные алгоритмы синтаксического анализа ===&lt;br /&gt;
&lt;br /&gt;
Алгоритм Кокка-Касами-Янгера.&lt;br /&gt;
Использование умножения матриц для ускорения алгоритма.&lt;br /&gt;
Умножение матриц по методу Штрассена и по методу Арлазарова и др.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 9 10.pdf]]&lt;br /&gt;
(редакция от 30 сентября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 10: Табличные алгоритмы синтаксического анализа (окончание) ===&lt;br /&gt;
&lt;br /&gt;
Разбор через умножение матриц (алгоритм Валианта). Разбор однозначных грамматик за квадратичное время.&lt;br /&gt;
Разбор для грамматик обёртывания пар.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 11: Разбор сверху вниз ===&lt;br /&gt;
&lt;br /&gt;
LL(k) анализ для обыкновенных грамматик, рекурсивный спуск.&lt;br /&gt;
Удаление пустых правил из LL-грамматик.&lt;br /&gt;
Языки, не представимые LL-грамматиками.&lt;br /&gt;
Теорема Розенкранца--Стирнса&lt;br /&gt;
о регулярном объединении LL-языков.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 11.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 12: LR(k) анализ и детерминированные языки ===&lt;br /&gt;
&lt;br /&gt;
Анализ через сдвиг и свёртку.&lt;br /&gt;
Детерминированный конечный автомат, читающий стек.&lt;br /&gt;
Класс LR(k) грамматик.&lt;br /&gt;
Построение таблиц по методу SLR(k).&lt;br /&gt;
Магазинные автоматы и их равносильность LR(k) грамматикам.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 12 13.pdf]]&lt;br /&gt;
(весьма неполная редакция от 25 сентября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 13: Автоматы, управляемые входом; обобщённый LR ===&lt;br /&gt;
&lt;br /&gt;
Автоматы, управляемые входом (input-driven automata; visibly pushdown automata). Равносильность их детерминированных и недетерминированных разновидностей. Грамматики, управляемые входом.&lt;br /&gt;
Обобщённый LR: пример работы, оценки сложности.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 14: Вычислительная сложность разбора ===&lt;br /&gt;
&lt;br /&gt;
Разбор обыкновенных грамматик с использованием памяти &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;,&lt;br /&gt;
разбор схемой высоты &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;.&lt;br /&gt;
Линейная грамматика для NLOGSPACE-полного языка.&lt;br /&gt;
Задача принадлежности данной строки данной обыкновенной грамматике&lt;br /&gt;
и её P-полнота.&lt;br /&gt;
Равносильность грамматик 1-го порядка классу P.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 14.pdf]]&lt;br /&gt;
(редакция от 1 октября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 15: Разрешимость свойств грамматик ===&lt;br /&gt;
&lt;br /&gt;
Язык вычислений машины Тьюринга (VALC)&lt;br /&gt;
и его представление в виде пересечения двух LL(1) линейных языков.&lt;br /&gt;
Неразрешимость основных свойств линейных грамматик.&lt;br /&gt;
Разрешимость проверки равносильности LL(k) грамматик.&lt;br /&gt;
Разрешимость задачи включения для автоматов, управляемых входом.&lt;br /&gt;
Иерархия семейств грамматик.&lt;br /&gt;
''(26 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 15.pdf]]&lt;br /&gt;
(редакция от 30 сентября)&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
=== Задание 1: к 22 сентября ===&lt;br /&gt;
&lt;br /&gt;
# Построить обыкновенную грамматику для языка всех палиндромов: &amp;lt;math&amp;gt;L_1 = \{ w \in \{a, b\}^* \mid w=w^R \}&amp;lt;/math&amp;gt;. Показать, как строка &amp;lt;math&amp;gt;ababa&amp;lt;/math&amp;gt; выводится с помощью перезаписи строк. Показать, что эта же строка принадлежит наименьшему решению системы языковых уравнений, построив несколько шагов последовательности &amp;lt;math&amp;gt;\varphi^k(\bot)&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Доказать, что не существует обыкновенной грамматики для языка &amp;lt;math&amp;gt;L_2=\{ a^{k_1} b \ldots a^{k_n} b \mid n \geqslant 1, 0 \leqslant k_1 \leqslant \ldots \leqslant k_n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Построить конъюнктивную грамматику для языка &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Построить однозначную обыкновенную грамматику для языка &amp;lt;math&amp;gt;L_3=\{c^m a^{\ell_0}b \ldots a^{\ell_{m-1}}b a^{\ell_m}b \ldots a^{\ell_z}b d^n \mid m,n, \ell_i \geqslant 0, z \geqslant 1, \ell_m=n\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Является ли язык &amp;lt;math&amp;gt;L_3&amp;lt;/math&amp;gt; линейным конъюнктивным?&lt;br /&gt;
# Пусть &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; --- язык Дика над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Существует ли грамматика обёртывания пар для языка &amp;lt;math&amp;gt;L_4 = \{wc^{|w|} \mid w \in D\} = \{\varepsilon, abcc, aabbcccc, ababcccc, aaabbbcccccc, \ldots\}&amp;lt;/math&amp;gt;?&lt;br /&gt;
# Построить грамматику 1-го порядка для языка &amp;lt;math&amp;gt;\{ww \mid w \in \{a, b\}^*\}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Задание 2: (есть шесть задач из семи, последняя сочиняется) ===&lt;br /&gt;
&lt;br /&gt;
# Постоить обыкновенную грамматику ''в нормальном виде Хомского'' для языка Дика &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Для этой грамматики и для входной строки &amp;lt;math&amp;gt;w=abaabba \notin D&amp;lt;/math&amp;gt;, построить таблицу разбора &amp;lt;math&amp;gt;T_{i,j}&amp;lt;/math&amp;gt;, как в алгоритме Кокка--Касами--Янгера.&lt;br /&gt;
# Рассмотреть работу алгоритма Валианта (синтаксический анализ через умножение матриц, лекции 9-10) для грамматики, построенной в прошлом упражнении. Среди всех действий, производимых алгоритмом, найти то произведение булевых матриц, после вычисления которого  станет верным условие &amp;lt;math&amp;gt;S \in f(P_{0,6})&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; --- начальный символ грамматики. Описать, когда и как именно вычисляется это произведение --- то есть, какая процедура, вызванная с какими значениями, и какой оператор в ней умножает какие две булевы матрицы какого размера, каков результат умножения, и какие элементы &amp;lt;math&amp;gt;P_{i,j}&amp;lt;/math&amp;gt; будут этим затронуты?&lt;br /&gt;
# Замкнут ли класс LL языков относительно пересечения с регулярными языками? Если замкнут, привести построение (см. построение такого рода для всего класса обыкновенных грамматик в материалах к лекциям 2-4), а если незамкнут, привести пример LL грамматики и регулярного языка с доказательством несуществования LL грамматики для их пересечения (см. доказательства такого рода в материалах к лекции 11).&lt;br /&gt;
# Построить линейную грамматику для языка &amp;lt;math&amp;gt;f(L_0)&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;L_0 = \{ w\$w^R \mid w \in \{a,b\}^* \}&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;f(L) = \{ [w_{1,1} \# \ldots \# w_{1, k_1}] \ldots [w_{m,1} \# \ldots \# w_{m, k_m}] \mid \exists i_1, \ldots, i_m: \; w_{1,i_1} w_{2,i_2} \ldots w_{m,i_m} \in L \}&amp;lt;/math&amp;gt; (это NLOGSPACE-полный язык, приведённый на лекции).&lt;br /&gt;
# Разрешима ли такая задача: «по данной обыкновенной грамматике, определить, порождает ли она хотя бы одну строку чётной длины»? Если разрешима, привести алгоритм, а если неразрешима, доказать это с помощью методов лекции 15 (использовав язык VALC в готовом виде, или же определив новый его вариант).&lt;br /&gt;
# Разрешима ли такая задача: «по данной обыкновенной грамматике, определить, порождает ли она хотя бы одну строку-палиндром &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt;, т.е., строку, для которой &amp;lt;math&amp;gt;w=w^R&amp;lt;/math&amp;gt;»?&lt;br /&gt;
# '''(сочиняется)'''&lt;/div&gt;</summary>
		<author><name>Okhotin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=4088</id>
		<title>Формальные грамматики 2014</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=4088"/>
				<updated>2014-10-01T15:34:08Z</updated>
		
		<summary type="html">&lt;p&gt;Okhotin: /* Задание 2: (одно упражнение есть, остальные сочиняются) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Курс «Формальные грамматики»: сентябрь 2014 г., 15 лекций,&lt;br /&gt;
лектор: [http://users.utu.fi/aleokh/ Александр Охотин] (университет Турку, Финляндия).&lt;br /&gt;
&lt;br /&gt;
== Содержание лекций ==&lt;br /&gt;
&lt;br /&gt;
Приветствуются любые замечания&lt;br /&gt;
по содержанию материалов к лекциям:&lt;br /&gt;
если что-то неправильно или плохо понятно,&lt;br /&gt;
то, пожалуйста, напишите, что именно.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 1: Введение, регулярные языки ===&lt;br /&gt;
&lt;br /&gt;
Математические модели синтаксиса.&lt;br /&gt;
Формальные языки.&lt;br /&gt;
Детерминированные и недетерминированные конечные автоматы, регулярные выражения, их равносильность.&lt;br /&gt;
Примеры. Замкнутость относительно основных действий.&lt;br /&gt;
Нерегулярные языки.&lt;br /&gt;
''(8 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 1.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 2: Обыкновенные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные формальные грамматики&lt;br /&gt;
(в терминологии Хомского, «бесконтекстные»).&lt;br /&gt;
Определения через перезапись строк,&lt;br /&gt;
через деревья разбора,&lt;br /&gt;
через логический вывод&lt;br /&gt;
и через языковые уравнения.&lt;br /&gt;
Равносильность определений.&lt;br /&gt;
Примеры грамматик.&lt;br /&gt;
Замкнутость относительно объединения, конкатенации, звёздочки,&lt;br /&gt;
а также циклического сдвига.&lt;br /&gt;
''(8 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 2 3 4.pdf]]&lt;br /&gt;
(редакция от 16 сентября, добавлены все недостающие разделы)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 3: Свойства обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Замкнутость относительно пересечения с регулярными языками.&lt;br /&gt;
Языки, не представимые грамматиками.&lt;br /&gt;
Лемма накачки, лемма Огдена.&lt;br /&gt;
Грамматики над односимвольным алфавитом.&lt;br /&gt;
Нормальный вид Хомского.&lt;br /&gt;
''(9 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 4: Представления обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Нормальный вид Грейбах.&lt;br /&gt;
Нормальный вид Розенкранца.&lt;br /&gt;
Теорема Хомского--Шюценберже о представлении обыкновенных языков через язык Дика.&lt;br /&gt;
Теорема Грейбах о «самом сложном языке».&lt;br /&gt;
''(9 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 5: Конъюнктивные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Определения конъюнктивных грамматик&lt;br /&gt;
через логический вывод, перезапись термов, деревья разбора и языковые уравнения.&lt;br /&gt;
Примеры грамматик: wcw, объявление перед использованием, степени четвёрки.&lt;br /&gt;
Приведение к нормальному виду Хомского.&lt;br /&gt;
Понятие о булевых грамматиках.&lt;br /&gt;
''(11 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 5.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 6: Однозначные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Неоднозначность в естественных языках и языках программирования.&lt;br /&gt;
Комбинаторные и аналитические методы доказательства существенной неоднозначности.&lt;br /&gt;
''(11 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 6.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 7: Линейные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные линейные грамматики, лемма накачки для них.&lt;br /&gt;
Линейные конъюнктивные грамматики и клеточные автоматы, их равносильность.&lt;br /&gt;
Лемма Терье.&lt;br /&gt;
''(12 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 7.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 8: Многокомпонентные грамматики, логика FO(LFP) ===&lt;br /&gt;
&lt;br /&gt;
Грамматики обёртывания пар и грамматики надстройки деревьев (tree-adjoining grammars).&lt;br /&gt;
Логика первого порядка над позициями в строке FO(LFP),&lt;br /&gt;
представление грамматик в этой логике.&lt;br /&gt;
Алгоритм проверки истинности формул логики FO(LFP)&lt;br /&gt;
как прототип алгоритмов синтаксического анализа.&lt;br /&gt;
''(12 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 8.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 9: Табличные алгоритмы синтаксического анализа ===&lt;br /&gt;
&lt;br /&gt;
Алгоритм Кокка-Касами-Янгера.&lt;br /&gt;
Использование умножения матриц для ускорения алгоритма.&lt;br /&gt;
Умножение матриц по методу Штрассена и по методу Арлазарова и др.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 9 10.pdf]]&lt;br /&gt;
(редакция от 30 сентября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 10: Табличные алгоритмы синтаксического анализа (окончание) ===&lt;br /&gt;
&lt;br /&gt;
Разбор через умножение матриц (алгоритм Валианта). Разбор однозначных грамматик за квадратичное время.&lt;br /&gt;
Разбор для грамматик обёртывания пар.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 11: Разбор сверху вниз ===&lt;br /&gt;
&lt;br /&gt;
LL(k) анализ для обыкновенных грамматик, рекурсивный спуск.&lt;br /&gt;
Удаление пустых правил из LL-грамматик.&lt;br /&gt;
Языки, не представимые LL-грамматиками.&lt;br /&gt;
Теорема Розенкранца--Стирнса&lt;br /&gt;
о регулярном объединении LL-языков.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 11.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 12: LR(k) анализ и детерминированные языки ===&lt;br /&gt;
&lt;br /&gt;
Анализ через сдвиг и свёртку.&lt;br /&gt;
Детерминированный конечный автомат, читающий стек.&lt;br /&gt;
Класс LR(k) грамматик.&lt;br /&gt;
Построение таблиц по методу SLR(k).&lt;br /&gt;
Магазинные автоматы и их равносильность LR(k) грамматикам.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 12 13.pdf]]&lt;br /&gt;
(весьма неполная редакция от 25 сентября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 13: Автоматы, управляемые входом; обобщённый LR ===&lt;br /&gt;
&lt;br /&gt;
Автоматы, управляемые входом (input-driven automata; visibly pushdown automata). Равносильность их детерминированных и недетерминированных разновидностей. Грамматики, управляемые входом.&lt;br /&gt;
Обобщённый LR: пример работы, оценки сложности.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 14: Вычислительная сложность разбора ===&lt;br /&gt;
&lt;br /&gt;
Разбор обыкновенных грамматик с использованием памяти &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;,&lt;br /&gt;
разбор схемой высоты &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;.&lt;br /&gt;
Линейная грамматика для NLOGSPACE-полного языка.&lt;br /&gt;
Задача принадлежности данной строки данной обыкновенной грамматике&lt;br /&gt;
и её P-полнота.&lt;br /&gt;
Равносильность грамматик 1-го порядка классу P.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 14.pdf]]&lt;br /&gt;
(редакция от 1 октября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 15: Разрешимость свойств грамматик ===&lt;br /&gt;
&lt;br /&gt;
Язык вычислений машины Тьюринга (VALC)&lt;br /&gt;
и его представление в виде пересечения двух LL(1) линейных языков.&lt;br /&gt;
Неразрешимость основных свойств линейных грамматик.&lt;br /&gt;
Разрешимость проверки равносильности LL(k) грамматик.&lt;br /&gt;
Разрешимость задачи включения для автоматов, управляемых входом.&lt;br /&gt;
Иерархия семейств грамматик.&lt;br /&gt;
''(26 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 15.pdf]]&lt;br /&gt;
(редакция от 30 сентября)&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
=== Задание 1: к 22 сентября ===&lt;br /&gt;
&lt;br /&gt;
# Построить обыкновенную грамматику для языка всех палиндромов: &amp;lt;math&amp;gt;L_1 = \{ w \in \{a, b\}^* \mid w=w^R \}&amp;lt;/math&amp;gt;. Показать, как строка &amp;lt;math&amp;gt;ababa&amp;lt;/math&amp;gt; выводится с помощью перезаписи строк. Показать, что эта же строка принадлежит наименьшему решению системы языковых уравнений, построив несколько шагов последовательности &amp;lt;math&amp;gt;\varphi^k(\bot)&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Доказать, что не существует обыкновенной грамматики для языка &amp;lt;math&amp;gt;L_2=\{ a^{k_1} b \ldots a^{k_n} b \mid n \geqslant 1, 0 \leqslant k_1 \leqslant \ldots \leqslant k_n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Построить конъюнктивную грамматику для языка &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Построить однозначную обыкновенную грамматику для языка &amp;lt;math&amp;gt;L_3=\{c^m a^{\ell_0}b \ldots a^{\ell_{m-1}}b a^{\ell_m}b \ldots a^{\ell_z}b d^n \mid m,n, \ell_i \geqslant 0, z \geqslant 1, \ell_m=n\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Является ли язык &amp;lt;math&amp;gt;L_3&amp;lt;/math&amp;gt; линейным конъюнктивным?&lt;br /&gt;
# Пусть &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; --- язык Дика над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Существует ли грамматика обёртывания пар для языка &amp;lt;math&amp;gt;L_4 = \{wc^{|w|} \mid w \in D\} = \{\varepsilon, abcc, aabbcccc, ababcccc, aaabbbcccccc, \ldots\}&amp;lt;/math&amp;gt;?&lt;br /&gt;
# Построить грамматику 1-го порядка для языка &amp;lt;math&amp;gt;\{ww \mid w \in \{a, b\}^*\}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Задание 2: (есть шесть задач из семи, последняя сочиняется) ===&lt;br /&gt;
&lt;br /&gt;
# Постоить обыкновенную грамматику ''в нормальном виде Хомского'' для языка Дика &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Для этой грамматики и для входной строки &amp;lt;math&amp;gt;w=abaabba \notin D&amp;lt;/math&amp;gt;, построить таблицу разбора &amp;lt;math&amp;gt;T_{i,j}&amp;lt;/math&amp;gt;, как в алгоритме Кокка--Касами--Янгера.&lt;br /&gt;
# Рассмотреть работу алгоритма Валианта (синтаксический анализ через умножение матриц, лекции 9-10) для грамматики, построенной в прошлом упражнении. Среди всех действий, производимых алгоритмом, найти то произведение булевых матриц, после вычисления которого  станет верным условие &amp;lt;math&amp;gt;S \in f(P_{0,6})&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; --- начальный символ грамматики. Описать, когда и как именно вычисляется это произведение --- то есть, какая процедура, вызванная с какими значениями, и какой оператор в ней умножает какие две булевы матрицы какого размера, каков результат умножения, и какие элементы &amp;lt;math&amp;gt;P_{i,j}&amp;lt;/math&amp;gt; будут этим затронуты?&lt;br /&gt;
# Замкнут ли класс LL языков относительно пересечения с регулярными языками? Если замкнут, привести построение (см. построение такого рода для всего класса обыкновенных грамматик в материалах к лекциям 2-4), а если незамкнут, привести пример LL грамматики и регулярного языка с доказательством несуществования LL грамматики для их пересечения (см. доказательства такого рода в материалах к лекции 11).&lt;br /&gt;
# Построить линейную грамматику для языка &amp;lt;math&amp;gt;f(L_0)&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;L_0 = \{ w\$w^R \mid w \in \{a,b\}^* \}&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;f(L) = \{ [w_{1,1} \# \ldots \# w_{1, k_1}] \ldots [w_{m,1} \# \ldots \# w_{m, k_m}] \mid \exists i_1, \ldots, i_m: \; w_{1,i_1} w_{2,i_2} \ldots w_{m,i_m} \in L \}&amp;lt;/math&amp;gt; (это NLOGSPACE-полный язык, приведённый на лекции).&lt;br /&gt;
# Разрешима ли такая задача: «по данной обыкновенной грамматике, определить, порождает ли она хотя бы одну строку чётной длины»? Если разрешима, привести алгоритм, а если неразрешима, доказать это с помощью методов лекции 15 (использовав язык VALC в готовом виде, или же определив новый его вариант).&lt;br /&gt;
# Разрешима ли такая задача: «по данной обыкновенной грамматике, определить, порождает ли она хотя бы одну строку-палиндром $w$, т.е., строку, для которой &amp;lt;math&amp;gt;w=w^R&amp;lt;/math&amp;gt;»?&lt;br /&gt;
# '''(сочиняется)'''&lt;/div&gt;</summary>
		<author><name>Okhotin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=4082</id>
		<title>Формальные грамматики 2014</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=4082"/>
				<updated>2014-10-01T15:14:44Z</updated>
		
		<summary type="html">&lt;p&gt;Okhotin: /* Лекция 14: Вычислительная сложность разбора */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Курс «Формальные грамматики»: сентябрь 2014 г., 15 лекций,&lt;br /&gt;
лектор: [http://users.utu.fi/aleokh/ Александр Охотин] (университет Турку, Финляндия).&lt;br /&gt;
&lt;br /&gt;
== Содержание лекций ==&lt;br /&gt;
&lt;br /&gt;
Приветствуются любые замечания&lt;br /&gt;
по содержанию материалов к лекциям:&lt;br /&gt;
если что-то неправильно или плохо понятно,&lt;br /&gt;
то, пожалуйста, напишите, что именно.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 1: Введение, регулярные языки ===&lt;br /&gt;
&lt;br /&gt;
Математические модели синтаксиса.&lt;br /&gt;
Формальные языки.&lt;br /&gt;
Детерминированные и недетерминированные конечные автоматы, регулярные выражения, их равносильность.&lt;br /&gt;
Примеры. Замкнутость относительно основных действий.&lt;br /&gt;
Нерегулярные языки.&lt;br /&gt;
''(8 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 1.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 2: Обыкновенные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные формальные грамматики&lt;br /&gt;
(в терминологии Хомского, «бесконтекстные»).&lt;br /&gt;
Определения через перезапись строк,&lt;br /&gt;
через деревья разбора,&lt;br /&gt;
через логический вывод&lt;br /&gt;
и через языковые уравнения.&lt;br /&gt;
Равносильность определений.&lt;br /&gt;
Примеры грамматик.&lt;br /&gt;
Замкнутость относительно объединения, конкатенации, звёздочки,&lt;br /&gt;
а также циклического сдвига.&lt;br /&gt;
''(8 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 2 3 4.pdf]]&lt;br /&gt;
(редакция от 16 сентября, добавлены все недостающие разделы)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 3: Свойства обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Замкнутость относительно пересечения с регулярными языками.&lt;br /&gt;
Языки, не представимые грамматиками.&lt;br /&gt;
Лемма накачки, лемма Огдена.&lt;br /&gt;
Грамматики над односимвольным алфавитом.&lt;br /&gt;
Нормальный вид Хомского.&lt;br /&gt;
''(9 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 4: Представления обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Нормальный вид Грейбах.&lt;br /&gt;
Нормальный вид Розенкранца.&lt;br /&gt;
Теорема Хомского--Шюценберже о представлении обыкновенных языков через язык Дика.&lt;br /&gt;
Теорема Грейбах о «самом сложном языке».&lt;br /&gt;
''(9 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 5: Конъюнктивные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Определения конъюнктивных грамматик&lt;br /&gt;
через логический вывод, перезапись термов, деревья разбора и языковые уравнения.&lt;br /&gt;
Примеры грамматик: wcw, объявление перед использованием, степени четвёрки.&lt;br /&gt;
Приведение к нормальному виду Хомского.&lt;br /&gt;
Понятие о булевых грамматиках.&lt;br /&gt;
''(11 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 5.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 6: Однозначные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Неоднозначность в естественных языках и языках программирования.&lt;br /&gt;
Комбинаторные и аналитические методы доказательства существенной неоднозначности.&lt;br /&gt;
''(11 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 6.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 7: Линейные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные линейные грамматики, лемма накачки для них.&lt;br /&gt;
Линейные конъюнктивные грамматики и клеточные автоматы, их равносильность.&lt;br /&gt;
Лемма Терье.&lt;br /&gt;
''(12 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 7.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 8: Многокомпонентные грамматики, логика FO(LFP) ===&lt;br /&gt;
&lt;br /&gt;
Грамматики обёртывания пар и грамматики надстройки деревьев (tree-adjoining grammars).&lt;br /&gt;
Логика первого порядка над позициями в строке FO(LFP),&lt;br /&gt;
представление грамматик в этой логике.&lt;br /&gt;
Алгоритм проверки истинности формул логики FO(LFP)&lt;br /&gt;
как прототип алгоритмов синтаксического анализа.&lt;br /&gt;
''(12 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 8.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 9: Табличные алгоритмы синтаксического анализа ===&lt;br /&gt;
&lt;br /&gt;
Алгоритм Кокка-Касами-Янгера.&lt;br /&gt;
Использование умножения матриц для ускорения алгоритма.&lt;br /&gt;
Умножение матриц по методу Штрассена и по методу Арлазарова и др.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 9 10.pdf]]&lt;br /&gt;
(редакция от 30 сентября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 10: Табличные алгоритмы синтаксического анализа (окончание) ===&lt;br /&gt;
&lt;br /&gt;
Разбор через умножение матриц (алгоритм Валианта). Разбор однозначных грамматик за квадратичное время.&lt;br /&gt;
Разбор для грамматик обёртывания пар.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 11: Разбор сверху вниз ===&lt;br /&gt;
&lt;br /&gt;
LL(k) анализ для обыкновенных грамматик, рекурсивный спуск.&lt;br /&gt;
Удаление пустых правил из LL-грамматик.&lt;br /&gt;
Языки, не представимые LL-грамматиками.&lt;br /&gt;
Теорема Розенкранца--Стирнса&lt;br /&gt;
о регулярном объединении LL-языков.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 11.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 12: LR(k) анализ и детерминированные языки ===&lt;br /&gt;
&lt;br /&gt;
Анализ через сдвиг и свёртку.&lt;br /&gt;
Детерминированный конечный автомат, читающий стек.&lt;br /&gt;
Класс LR(k) грамматик.&lt;br /&gt;
Построение таблиц по методу SLR(k).&lt;br /&gt;
Магазинные автоматы и их равносильность LR(k) грамматикам.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 12 13.pdf]]&lt;br /&gt;
(весьма неполная редакция от 25 сентября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 13: Автоматы, управляемые входом; обобщённый LR ===&lt;br /&gt;
&lt;br /&gt;
Автоматы, управляемые входом (input-driven automata; visibly pushdown automata). Равносильность их детерминированных и недетерминированных разновидностей. Грамматики, управляемые входом.&lt;br /&gt;
Обобщённый LR: пример работы, оценки сложности.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 14: Вычислительная сложность разбора ===&lt;br /&gt;
&lt;br /&gt;
Разбор обыкновенных грамматик с использованием памяти &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;,&lt;br /&gt;
разбор схемой высоты &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;.&lt;br /&gt;
Линейная грамматика для NLOGSPACE-полного языка.&lt;br /&gt;
Задача принадлежности данной строки данной обыкновенной грамматике&lt;br /&gt;
и её P-полнота.&lt;br /&gt;
Равносильность грамматик 1-го порядка классу P.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 14.pdf]]&lt;br /&gt;
(редакция от 1 октября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 15: Разрешимость свойств грамматик ===&lt;br /&gt;
&lt;br /&gt;
Язык вычислений машины Тьюринга (VALC)&lt;br /&gt;
и его представление в виде пересечения двух LL(1) линейных языков.&lt;br /&gt;
Неразрешимость основных свойств линейных грамматик.&lt;br /&gt;
Разрешимость проверки равносильности LL(k) грамматик.&lt;br /&gt;
Разрешимость задачи включения для автоматов, управляемых входом.&lt;br /&gt;
Иерархия семейств грамматик.&lt;br /&gt;
''(26 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 15.pdf]]&lt;br /&gt;
(редакция от 30 сентября)&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
=== Задание 1: к 22 сентября ===&lt;br /&gt;
&lt;br /&gt;
# Построить обыкновенную грамматику для языка всех палиндромов: &amp;lt;math&amp;gt;L_1 = \{ w \in \{a, b\}^* \mid w=w^R \}&amp;lt;/math&amp;gt;. Показать, как строка &amp;lt;math&amp;gt;ababa&amp;lt;/math&amp;gt; выводится с помощью перезаписи строк. Показать, что эта же строка принадлежит наименьшему решению системы языковых уравнений, построив несколько шагов последовательности &amp;lt;math&amp;gt;\varphi^k(\bot)&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Доказать, что не существует обыкновенной грамматики для языка &amp;lt;math&amp;gt;L_2=\{ a^{k_1} b \ldots a^{k_n} b \mid n \geqslant 1, 0 \leqslant k_1 \leqslant \ldots \leqslant k_n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Построить конъюнктивную грамматику для языка &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Построить однозначную обыкновенную грамматику для языка &amp;lt;math&amp;gt;L_3=\{c^m a^{\ell_0}b \ldots a^{\ell_{m-1}}b a^{\ell_m}b \ldots a^{\ell_z}b d^n \mid m,n, \ell_i \geqslant 0, z \geqslant 1, \ell_m=n\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Является ли язык &amp;lt;math&amp;gt;L_3&amp;lt;/math&amp;gt; линейным конъюнктивным?&lt;br /&gt;
# Пусть &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; --- язык Дика над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Существует ли грамматика обёртывания пар для языка &amp;lt;math&amp;gt;L_4 = \{wc^{|w|} \mid w \in D\} = \{\varepsilon, abcc, aabbcccc, ababcccc, aaabbbcccccc, \ldots\}&amp;lt;/math&amp;gt;?&lt;br /&gt;
# Построить грамматику 1-го порядка для языка &amp;lt;math&amp;gt;\{ww \mid w \in \{a, b\}^*\}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Задание 2: (одно упражнение есть, остальные сочиняются) ===&lt;br /&gt;
&lt;br /&gt;
# Постоить обыкновенную грамматику ''в нормальном виде Хомского'' для языка Дика &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Для этой грамматики и для входной строки &amp;lt;math&amp;gt;w=abaabba \notin D&amp;lt;/math&amp;gt;, построить таблицу разбора &amp;lt;math&amp;gt;T_{i,j}&amp;lt;/math&amp;gt;, как в алгоритме Кокка--Касами--Янгера.&lt;br /&gt;
&lt;br /&gt;
(остальные задания сочиняются и будут выданы к вечеру 1 октября)&lt;/div&gt;</summary>
		<author><name>Okhotin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Formal_grammars_2014_lecture_14.pdf&amp;diff=4081</id>
		<title>Файл:Formal grammars 2014 lecture 14.pdf</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Formal_grammars_2014_lecture_14.pdf&amp;diff=4081"/>
				<updated>2014-10-01T15:14:19Z</updated>
		
		<summary type="html">&lt;p&gt;Okhotin: загружена новая версия «Файл:Formal grammars 2014 lecture 14.pdf»:&amp;amp;#32;Исправлено несколько опечаток.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Формальные грамматики 2014, материалы к лекции 14 (англ. яз.).&lt;/div&gt;</summary>
		<author><name>Okhotin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=4080</id>
		<title>Формальные грамматики 2014</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=4080"/>
				<updated>2014-10-01T15:05:28Z</updated>
		
		<summary type="html">&lt;p&gt;Okhotin: /* Содержание лекций */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Курс «Формальные грамматики»: сентябрь 2014 г., 15 лекций,&lt;br /&gt;
лектор: [http://users.utu.fi/aleokh/ Александр Охотин] (университет Турку, Финляндия).&lt;br /&gt;
&lt;br /&gt;
== Содержание лекций ==&lt;br /&gt;
&lt;br /&gt;
Приветствуются любые замечания&lt;br /&gt;
по содержанию материалов к лекциям:&lt;br /&gt;
если что-то неправильно или плохо понятно,&lt;br /&gt;
то, пожалуйста, напишите, что именно.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 1: Введение, регулярные языки ===&lt;br /&gt;
&lt;br /&gt;
Математические модели синтаксиса.&lt;br /&gt;
Формальные языки.&lt;br /&gt;
Детерминированные и недетерминированные конечные автоматы, регулярные выражения, их равносильность.&lt;br /&gt;
Примеры. Замкнутость относительно основных действий.&lt;br /&gt;
Нерегулярные языки.&lt;br /&gt;
''(8 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 1.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 2: Обыкновенные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные формальные грамматики&lt;br /&gt;
(в терминологии Хомского, «бесконтекстные»).&lt;br /&gt;
Определения через перезапись строк,&lt;br /&gt;
через деревья разбора,&lt;br /&gt;
через логический вывод&lt;br /&gt;
и через языковые уравнения.&lt;br /&gt;
Равносильность определений.&lt;br /&gt;
Примеры грамматик.&lt;br /&gt;
Замкнутость относительно объединения, конкатенации, звёздочки,&lt;br /&gt;
а также циклического сдвига.&lt;br /&gt;
''(8 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 2 3 4.pdf]]&lt;br /&gt;
(редакция от 16 сентября, добавлены все недостающие разделы)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 3: Свойства обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Замкнутость относительно пересечения с регулярными языками.&lt;br /&gt;
Языки, не представимые грамматиками.&lt;br /&gt;
Лемма накачки, лемма Огдена.&lt;br /&gt;
Грамматики над односимвольным алфавитом.&lt;br /&gt;
Нормальный вид Хомского.&lt;br /&gt;
''(9 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 4: Представления обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Нормальный вид Грейбах.&lt;br /&gt;
Нормальный вид Розенкранца.&lt;br /&gt;
Теорема Хомского--Шюценберже о представлении обыкновенных языков через язык Дика.&lt;br /&gt;
Теорема Грейбах о «самом сложном языке».&lt;br /&gt;
''(9 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 5: Конъюнктивные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Определения конъюнктивных грамматик&lt;br /&gt;
через логический вывод, перезапись термов, деревья разбора и языковые уравнения.&lt;br /&gt;
Примеры грамматик: wcw, объявление перед использованием, степени четвёрки.&lt;br /&gt;
Приведение к нормальному виду Хомского.&lt;br /&gt;
Понятие о булевых грамматиках.&lt;br /&gt;
''(11 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 5.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 6: Однозначные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Неоднозначность в естественных языках и языках программирования.&lt;br /&gt;
Комбинаторные и аналитические методы доказательства существенной неоднозначности.&lt;br /&gt;
''(11 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 6.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 7: Линейные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные линейные грамматики, лемма накачки для них.&lt;br /&gt;
Линейные конъюнктивные грамматики и клеточные автоматы, их равносильность.&lt;br /&gt;
Лемма Терье.&lt;br /&gt;
''(12 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 7.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 8: Многокомпонентные грамматики, логика FO(LFP) ===&lt;br /&gt;
&lt;br /&gt;
Грамматики обёртывания пар и грамматики надстройки деревьев (tree-adjoining grammars).&lt;br /&gt;
Логика первого порядка над позициями в строке FO(LFP),&lt;br /&gt;
представление грамматик в этой логике.&lt;br /&gt;
Алгоритм проверки истинности формул логики FO(LFP)&lt;br /&gt;
как прототип алгоритмов синтаксического анализа.&lt;br /&gt;
''(12 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 8.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 9: Табличные алгоритмы синтаксического анализа ===&lt;br /&gt;
&lt;br /&gt;
Алгоритм Кокка-Касами-Янгера.&lt;br /&gt;
Использование умножения матриц для ускорения алгоритма.&lt;br /&gt;
Умножение матриц по методу Штрассена и по методу Арлазарова и др.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 9 10.pdf]]&lt;br /&gt;
(редакция от 30 сентября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 10: Табличные алгоритмы синтаксического анализа (окончание) ===&lt;br /&gt;
&lt;br /&gt;
Разбор через умножение матриц (алгоритм Валианта). Разбор однозначных грамматик за квадратичное время.&lt;br /&gt;
Разбор для грамматик обёртывания пар.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 11: Разбор сверху вниз ===&lt;br /&gt;
&lt;br /&gt;
LL(k) анализ для обыкновенных грамматик, рекурсивный спуск.&lt;br /&gt;
Удаление пустых правил из LL-грамматик.&lt;br /&gt;
Языки, не представимые LL-грамматиками.&lt;br /&gt;
Теорема Розенкранца--Стирнса&lt;br /&gt;
о регулярном объединении LL-языков.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 11.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 12: LR(k) анализ и детерминированные языки ===&lt;br /&gt;
&lt;br /&gt;
Анализ через сдвиг и свёртку.&lt;br /&gt;
Детерминированный конечный автомат, читающий стек.&lt;br /&gt;
Класс LR(k) грамматик.&lt;br /&gt;
Построение таблиц по методу SLR(k).&lt;br /&gt;
Магазинные автоматы и их равносильность LR(k) грамматикам.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 12 13.pdf]]&lt;br /&gt;
(весьма неполная редакция от 25 сентября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 13: Автоматы, управляемые входом; обобщённый LR ===&lt;br /&gt;
&lt;br /&gt;
Автоматы, управляемые входом (input-driven automata; visibly pushdown automata). Равносильность их детерминированных и недетерминированных разновидностей. Грамматики, управляемые входом.&lt;br /&gt;
Обобщённый LR: пример работы, оценки сложности.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 14: Вычислительная сложность разбора ===&lt;br /&gt;
&lt;br /&gt;
Разбор обыкновенных грамматик с использованием памяти &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;,&lt;br /&gt;
разбор схемой высоты &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;.&lt;br /&gt;
Линейная грамматика для NLOGSPACE-полного языка.&lt;br /&gt;
Задача принадлежности данной строки данной обыкновенной грамматике&lt;br /&gt;
и её P-полнота.&lt;br /&gt;
Равносильность грамматик 1-го порядка классу P.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 14.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 15: Разрешимость свойств грамматик ===&lt;br /&gt;
&lt;br /&gt;
Язык вычислений машины Тьюринга (VALC)&lt;br /&gt;
и его представление в виде пересечения двух LL(1) линейных языков.&lt;br /&gt;
Неразрешимость основных свойств линейных грамматик.&lt;br /&gt;
Разрешимость проверки равносильности LL(k) грамматик.&lt;br /&gt;
Разрешимость задачи включения для автоматов, управляемых входом.&lt;br /&gt;
Иерархия семейств грамматик.&lt;br /&gt;
''(26 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 15.pdf]]&lt;br /&gt;
(редакция от 30 сентября)&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
=== Задание 1: к 22 сентября ===&lt;br /&gt;
&lt;br /&gt;
# Построить обыкновенную грамматику для языка всех палиндромов: &amp;lt;math&amp;gt;L_1 = \{ w \in \{a, b\}^* \mid w=w^R \}&amp;lt;/math&amp;gt;. Показать, как строка &amp;lt;math&amp;gt;ababa&amp;lt;/math&amp;gt; выводится с помощью перезаписи строк. Показать, что эта же строка принадлежит наименьшему решению системы языковых уравнений, построив несколько шагов последовательности &amp;lt;math&amp;gt;\varphi^k(\bot)&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Доказать, что не существует обыкновенной грамматики для языка &amp;lt;math&amp;gt;L_2=\{ a^{k_1} b \ldots a^{k_n} b \mid n \geqslant 1, 0 \leqslant k_1 \leqslant \ldots \leqslant k_n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Построить конъюнктивную грамматику для языка &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Построить однозначную обыкновенную грамматику для языка &amp;lt;math&amp;gt;L_3=\{c^m a^{\ell_0}b \ldots a^{\ell_{m-1}}b a^{\ell_m}b \ldots a^{\ell_z}b d^n \mid m,n, \ell_i \geqslant 0, z \geqslant 1, \ell_m=n\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Является ли язык &amp;lt;math&amp;gt;L_3&amp;lt;/math&amp;gt; линейным конъюнктивным?&lt;br /&gt;
# Пусть &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; --- язык Дика над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Существует ли грамматика обёртывания пар для языка &amp;lt;math&amp;gt;L_4 = \{wc^{|w|} \mid w \in D\} = \{\varepsilon, abcc, aabbcccc, ababcccc, aaabbbcccccc, \ldots\}&amp;lt;/math&amp;gt;?&lt;br /&gt;
# Построить грамматику 1-го порядка для языка &amp;lt;math&amp;gt;\{ww \mid w \in \{a, b\}^*\}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Задание 2: (одно упражнение есть, остальные сочиняются) ===&lt;br /&gt;
&lt;br /&gt;
# Постоить обыкновенную грамматику ''в нормальном виде Хомского'' для языка Дика &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Для этой грамматики и для входной строки &amp;lt;math&amp;gt;w=abaabba \notin D&amp;lt;/math&amp;gt;, построить таблицу разбора &amp;lt;math&amp;gt;T_{i,j}&amp;lt;/math&amp;gt;, как в алгоритме Кокка--Касами--Янгера.&lt;br /&gt;
&lt;br /&gt;
(остальные задания сочиняются и будут выданы к вечеру 1 октября)&lt;/div&gt;</summary>
		<author><name>Okhotin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=4042</id>
		<title>Формальные грамматики 2014</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=4042"/>
				<updated>2014-09-30T17:22:57Z</updated>
		
		<summary type="html">&lt;p&gt;Okhotin: /* Задание 2: (сочиняется) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Курс «Формальные грамматики»: сентябрь 2014 г., 15 лекций,&lt;br /&gt;
лектор: [http://users.utu.fi/aleokh/ Александр Охотин] (университет Турку, Финляндия).&lt;br /&gt;
&lt;br /&gt;
== Содержание лекций ==&lt;br /&gt;
&lt;br /&gt;
=== Лекция 1: Введение, регулярные языки ===&lt;br /&gt;
&lt;br /&gt;
Математические модели синтаксиса.&lt;br /&gt;
Формальные языки.&lt;br /&gt;
Детерминированные и недетерминированные конечные автоматы, регулярные выражения, их равносильность.&lt;br /&gt;
Примеры. Замкнутость относительно основных действий.&lt;br /&gt;
Нерегулярные языки.&lt;br /&gt;
''(8 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 1.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 2: Обыкновенные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные формальные грамматики&lt;br /&gt;
(в терминологии Хомского, «бесконтекстные»).&lt;br /&gt;
Определения через перезапись строк,&lt;br /&gt;
через деревья разбора,&lt;br /&gt;
через логический вывод&lt;br /&gt;
и через языковые уравнения.&lt;br /&gt;
Равносильность определений.&lt;br /&gt;
Примеры грамматик.&lt;br /&gt;
Замкнутость относительно объединения, конкатенации, звёздочки,&lt;br /&gt;
а также циклического сдвига.&lt;br /&gt;
''(8 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 2 3 4.pdf]]&lt;br /&gt;
(редакция от 16 сентября, добавлены все недостающие разделы)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 3: Свойства обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Замкнутость относительно пересечения с регулярными языками.&lt;br /&gt;
Языки, не представимые грамматиками.&lt;br /&gt;
Лемма накачки, лемма Огдена.&lt;br /&gt;
Грамматики над односимвольным алфавитом.&lt;br /&gt;
Нормальный вид Хомского.&lt;br /&gt;
''(9 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 4: Представления обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Нормальный вид Грейбах.&lt;br /&gt;
Нормальный вид Розенкранца.&lt;br /&gt;
Теорема Хомского--Шюценберже о представлении обыкновенных языков через язык Дика.&lt;br /&gt;
Теорема Грейбах о «самом сложном языке».&lt;br /&gt;
''(9 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 5: Конъюнктивные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Определения конъюнктивных грамматик&lt;br /&gt;
через логический вывод, перезапись термов, деревья разбора и языковые уравнения.&lt;br /&gt;
Примеры грамматик: wcw, объявление перед использованием, степени четвёрки.&lt;br /&gt;
Приведение к нормальному виду Хомского.&lt;br /&gt;
Понятие о булевых грамматиках.&lt;br /&gt;
''(11 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 5.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 6: Однозначные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Неоднозначность в естественных языках и языках программирования.&lt;br /&gt;
Комбинаторные и аналитические методы доказательства существенной неоднозначности.&lt;br /&gt;
''(11 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 6.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 7: Линейные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные линейные грамматики, лемма накачки для них.&lt;br /&gt;
Линейные конъюнктивные грамматики и клеточные автоматы, их равносильность.&lt;br /&gt;
Лемма Терье.&lt;br /&gt;
''(12 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 7.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 8: Многокомпонентные грамматики, логика FO(LFP) ===&lt;br /&gt;
&lt;br /&gt;
Грамматики обёртывания пар и грамматики надстройки деревьев (tree-adjoining grammars).&lt;br /&gt;
Логика первого порядка над позициями в строке FO(LFP),&lt;br /&gt;
представление грамматик в этой логике.&lt;br /&gt;
Алгоритм проверки истинности формул логики FO(LFP)&lt;br /&gt;
как прототип алгоритмов синтаксического анализа.&lt;br /&gt;
''(12 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 8.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 9: Табличные алгоритмы синтаксического анализа ===&lt;br /&gt;
&lt;br /&gt;
Алгоритм Кокка-Касами-Янгера.&lt;br /&gt;
Использование умножения матриц для ускорения алгоритма.&lt;br /&gt;
Умножение матриц по методу Штрассена и по методу Арлазарова и др.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 9 10.pdf]]&lt;br /&gt;
(редакция от 30 сентября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 10: Табличные алгоритмы синтаксического анализа (окончание) ===&lt;br /&gt;
&lt;br /&gt;
Разбор через умножение матриц (алгоритм Валианта). Разбор однозначных грамматик за квадратичное время.&lt;br /&gt;
Разбор для грамматик обёртывания пар.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 11: Разбор сверху вниз ===&lt;br /&gt;
&lt;br /&gt;
LL(k) анализ для обыкновенных грамматик, рекурсивный спуск.&lt;br /&gt;
Удаление пустых правил из LL-грамматик.&lt;br /&gt;
Языки, не представимые LL-грамматиками.&lt;br /&gt;
Теорема Розенкранца--Стирнса&lt;br /&gt;
о регулярном объединении LL-языков.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 11.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 12: LR(k) анализ и детерминированные языки ===&lt;br /&gt;
&lt;br /&gt;
Анализ через сдвиг и свёртку.&lt;br /&gt;
Детерминированный конечный автомат, читающий стек.&lt;br /&gt;
Класс LR(k) грамматик.&lt;br /&gt;
Построение таблиц по методу SLR(k).&lt;br /&gt;
Магазинные автоматы и их равносильность LR(k) грамматикам.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 12 13.pdf]]&lt;br /&gt;
(весьма неполная редакция от 25 сентября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 13: Автоматы, управляемые входом; обобщённый LR ===&lt;br /&gt;
&lt;br /&gt;
Автоматы, управляемые входом (input-driven automata; visibly pushdown automata). Равносильность их детерминированных и недетерминированных разновидностей. Грамматики, управляемые входом.&lt;br /&gt;
Обобщённый LR: пример работы, оценки сложности.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 14: Вычислительная сложность разбора ===&lt;br /&gt;
&lt;br /&gt;
Разбор обыкновенных грамматик с использованием памяти &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;,&lt;br /&gt;
разбор схемой высоты &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;.&lt;br /&gt;
Линейная грамматика для NLOGSPACE-полного языка.&lt;br /&gt;
Задача принадлежности данной строки данной обыкновенной грамматике&lt;br /&gt;
и её P-полнота.&lt;br /&gt;
Равносильность грамматик 1-го порядка классу P.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 14.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 15: Разрешимость свойств грамматик ===&lt;br /&gt;
&lt;br /&gt;
Язык вычислений машины Тьюринга (VALC)&lt;br /&gt;
и его представление в виде пересечения двух LL(1) линейных языков.&lt;br /&gt;
Неразрешимость основных свойств линейных грамматик.&lt;br /&gt;
Разрешимость проверки равносильности LL(k) грамматик.&lt;br /&gt;
Разрешимость задачи включения для автоматов, управляемых входом.&lt;br /&gt;
Иерархия семейств грамматик.&lt;br /&gt;
''(26 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 15.pdf]]&lt;br /&gt;
(редакция от 30 сентября)&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
=== Задание 1: к 22 сентября ===&lt;br /&gt;
&lt;br /&gt;
# Построить обыкновенную грамматику для языка всех палиндромов: &amp;lt;math&amp;gt;L_1 = \{ w \in \{a, b\}^* \mid w=w^R \}&amp;lt;/math&amp;gt;. Показать, как строка &amp;lt;math&amp;gt;ababa&amp;lt;/math&amp;gt; выводится с помощью перезаписи строк. Показать, что эта же строка принадлежит наименьшему решению системы языковых уравнений, построив несколько шагов последовательности &amp;lt;math&amp;gt;\varphi^k(\bot)&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Доказать, что не существует обыкновенной грамматики для языка &amp;lt;math&amp;gt;L_2=\{ a^{k_1} b \ldots a^{k_n} b \mid n \geqslant 1, 0 \leqslant k_1 \leqslant \ldots \leqslant k_n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Построить конъюнктивную грамматику для языка &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Построить однозначную обыкновенную грамматику для языка &amp;lt;math&amp;gt;L_3=\{c^m a^{\ell_0}b \ldots a^{\ell_{m-1}}b a^{\ell_m}b \ldots a^{\ell_z}b d^n \mid m,n, \ell_i \geqslant 0, z \geqslant 1, \ell_m=n\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Является ли язык &amp;lt;math&amp;gt;L_3&amp;lt;/math&amp;gt; линейным конъюнктивным?&lt;br /&gt;
# Пусть &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; --- язык Дика над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Существует ли грамматика обёртывания пар для языка &amp;lt;math&amp;gt;L_4 = \{wc^{|w|} \mid w \in D\} = \{\varepsilon, abcc, aabbcccc, ababcccc, aaabbbcccccc, \ldots\}&amp;lt;/math&amp;gt;?&lt;br /&gt;
# Построить грамматику 1-го порядка для языка &amp;lt;math&amp;gt;\{ww \mid w \in \{a, b\}^*\}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Задание 2: (одно упражнение есть, остальные сочиняются) ===&lt;br /&gt;
&lt;br /&gt;
# Постоить обыкновенную грамматику ''в нормальном виде Хомского'' для языка Дика &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Для этой грамматики и для входной строки &amp;lt;math&amp;gt;w=abaabba \notin D&amp;lt;/math&amp;gt;, построить таблицу разбора &amp;lt;math&amp;gt;T_{i,j}&amp;lt;/math&amp;gt;, как в алгоритме Кокка--Касами--Янгера.&lt;br /&gt;
&lt;br /&gt;
(остальные задания сочиняются и будут выданы к вечеру 1 октября)&lt;/div&gt;</summary>
		<author><name>Okhotin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=4037</id>
		<title>Формальные грамматики 2014</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=4037"/>
				<updated>2014-09-30T14:51:07Z</updated>
		
		<summary type="html">&lt;p&gt;Okhotin: /* Лекция 15: Разрешимость свойств грамматик */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Курс «Формальные грамматики»: сентябрь 2014 г., 15 лекций,&lt;br /&gt;
лектор: [http://users.utu.fi/aleokh/ Александр Охотин] (университет Турку, Финляндия).&lt;br /&gt;
&lt;br /&gt;
== Содержание лекций ==&lt;br /&gt;
&lt;br /&gt;
=== Лекция 1: Введение, регулярные языки ===&lt;br /&gt;
&lt;br /&gt;
Математические модели синтаксиса.&lt;br /&gt;
Формальные языки.&lt;br /&gt;
Детерминированные и недетерминированные конечные автоматы, регулярные выражения, их равносильность.&lt;br /&gt;
Примеры. Замкнутость относительно основных действий.&lt;br /&gt;
Нерегулярные языки.&lt;br /&gt;
''(8 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 1.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 2: Обыкновенные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные формальные грамматики&lt;br /&gt;
(в терминологии Хомского, «бесконтекстные»).&lt;br /&gt;
Определения через перезапись строк,&lt;br /&gt;
через деревья разбора,&lt;br /&gt;
через логический вывод&lt;br /&gt;
и через языковые уравнения.&lt;br /&gt;
Равносильность определений.&lt;br /&gt;
Примеры грамматик.&lt;br /&gt;
Замкнутость относительно объединения, конкатенации, звёздочки,&lt;br /&gt;
а также циклического сдвига.&lt;br /&gt;
''(8 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 2 3 4.pdf]]&lt;br /&gt;
(редакция от 16 сентября, добавлены все недостающие разделы)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 3: Свойства обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Замкнутость относительно пересечения с регулярными языками.&lt;br /&gt;
Языки, не представимые грамматиками.&lt;br /&gt;
Лемма накачки, лемма Огдена.&lt;br /&gt;
Грамматики над односимвольным алфавитом.&lt;br /&gt;
Нормальный вид Хомского.&lt;br /&gt;
''(9 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 4: Представления обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Нормальный вид Грейбах.&lt;br /&gt;
Нормальный вид Розенкранца.&lt;br /&gt;
Теорема Хомского--Шюценберже о представлении обыкновенных языков через язык Дика.&lt;br /&gt;
Теорема Грейбах о «самом сложном языке».&lt;br /&gt;
''(9 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 5: Конъюнктивные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Определения конъюнктивных грамматик&lt;br /&gt;
через логический вывод, перезапись термов, деревья разбора и языковые уравнения.&lt;br /&gt;
Примеры грамматик: wcw, объявление перед использованием, степени четвёрки.&lt;br /&gt;
Приведение к нормальному виду Хомского.&lt;br /&gt;
Понятие о булевых грамматиках.&lt;br /&gt;
''(11 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 5.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 6: Однозначные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Неоднозначность в естественных языках и языках программирования.&lt;br /&gt;
Комбинаторные и аналитические методы доказательства существенной неоднозначности.&lt;br /&gt;
''(11 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 6.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 7: Линейные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные линейные грамматики, лемма накачки для них.&lt;br /&gt;
Линейные конъюнктивные грамматики и клеточные автоматы, их равносильность.&lt;br /&gt;
Лемма Терье.&lt;br /&gt;
''(12 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 7.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 8: Многокомпонентные грамматики, логика FO(LFP) ===&lt;br /&gt;
&lt;br /&gt;
Грамматики обёртывания пар и грамматики надстройки деревьев (tree-adjoining grammars).&lt;br /&gt;
Логика первого порядка над позициями в строке FO(LFP),&lt;br /&gt;
представление грамматик в этой логике.&lt;br /&gt;
Алгоритм проверки истинности формул логики FO(LFP)&lt;br /&gt;
как прототип алгоритмов синтаксического анализа.&lt;br /&gt;
''(12 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 8.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 9: Табличные алгоритмы синтаксического анализа ===&lt;br /&gt;
&lt;br /&gt;
Алгоритм Кокка-Касами-Янгера.&lt;br /&gt;
Использование умножения матриц для ускорения алгоритма.&lt;br /&gt;
Умножение матриц по методу Штрассена и по методу Арлазарова и др.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 9 10.pdf]]&lt;br /&gt;
(редакция от 30 сентября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 10: Табличные алгоритмы синтаксического анализа (окончание) ===&lt;br /&gt;
&lt;br /&gt;
Разбор через умножение матриц (алгоритм Валианта). Разбор однозначных грамматик за квадратичное время.&lt;br /&gt;
Разбор для грамматик обёртывания пар.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 11: Разбор сверху вниз ===&lt;br /&gt;
&lt;br /&gt;
LL(k) анализ для обыкновенных грамматик, рекурсивный спуск.&lt;br /&gt;
Удаление пустых правил из LL-грамматик.&lt;br /&gt;
Языки, не представимые LL-грамматиками.&lt;br /&gt;
Теорема Розенкранца--Стирнса&lt;br /&gt;
о регулярном объединении LL-языков.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 11.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 12: LR(k) анализ и детерминированные языки ===&lt;br /&gt;
&lt;br /&gt;
Анализ через сдвиг и свёртку.&lt;br /&gt;
Детерминированный конечный автомат, читающий стек.&lt;br /&gt;
Класс LR(k) грамматик.&lt;br /&gt;
Построение таблиц по методу SLR(k).&lt;br /&gt;
Магазинные автоматы и их равносильность LR(k) грамматикам.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 12 13.pdf]]&lt;br /&gt;
(весьма неполная редакция от 25 сентября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 13: Автоматы, управляемые входом; обобщённый LR ===&lt;br /&gt;
&lt;br /&gt;
Автоматы, управляемые входом (input-driven automata; visibly pushdown automata). Равносильность их детерминированных и недетерминированных разновидностей. Грамматики, управляемые входом.&lt;br /&gt;
Обобщённый LR: пример работы, оценки сложности.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 14: Вычислительная сложность разбора ===&lt;br /&gt;
&lt;br /&gt;
Разбор обыкновенных грамматик с использованием памяти &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;,&lt;br /&gt;
разбор схемой высоты &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;.&lt;br /&gt;
Линейная грамматика для NLOGSPACE-полного языка.&lt;br /&gt;
Задача принадлежности данной строки данной обыкновенной грамматике&lt;br /&gt;
и её P-полнота.&lt;br /&gt;
Равносильность грамматик 1-го порядка классу P.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 14.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 15: Разрешимость свойств грамматик ===&lt;br /&gt;
&lt;br /&gt;
Язык вычислений машины Тьюринга (VALC)&lt;br /&gt;
и его представление в виде пересечения двух LL(1) линейных языков.&lt;br /&gt;
Неразрешимость основных свойств линейных грамматик.&lt;br /&gt;
Разрешимость проверки равносильности LL(k) грамматик.&lt;br /&gt;
Разрешимость задачи включения для автоматов, управляемых входом.&lt;br /&gt;
Иерархия семейств грамматик.&lt;br /&gt;
''(26 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 15.pdf]]&lt;br /&gt;
(редакция от 30 сентября)&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
=== Задание 1: к 22 сентября ===&lt;br /&gt;
&lt;br /&gt;
# Построить обыкновенную грамматику для языка всех палиндромов: &amp;lt;math&amp;gt;L_1 = \{ w \in \{a, b\}^* \mid w=w^R \}&amp;lt;/math&amp;gt;. Показать, как строка &amp;lt;math&amp;gt;ababa&amp;lt;/math&amp;gt; выводится с помощью перезаписи строк. Показать, что эта же строка принадлежит наименьшему решению системы языковых уравнений, построив несколько шагов последовательности &amp;lt;math&amp;gt;\varphi^k(\bot)&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Доказать, что не существует обыкновенной грамматики для языка &amp;lt;math&amp;gt;L_2=\{ a^{k_1} b \ldots a^{k_n} b \mid n \geqslant 1, 0 \leqslant k_1 \leqslant \ldots \leqslant k_n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Построить конъюнктивную грамматику для языка &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Построить однозначную обыкновенную грамматику для языка &amp;lt;math&amp;gt;L_3=\{c^m a^{\ell_0}b \ldots a^{\ell_{m-1}}b a^{\ell_m}b \ldots a^{\ell_z}b d^n \mid m,n, \ell_i \geqslant 0, z \geqslant 1, \ell_m=n\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Является ли язык &amp;lt;math&amp;gt;L_3&amp;lt;/math&amp;gt; линейным конъюнктивным?&lt;br /&gt;
# Пусть &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; --- язык Дика над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Существует ли грамматика обёртывания пар для языка &amp;lt;math&amp;gt;L_4 = \{wc^{|w|} \mid w \in D\} = \{\varepsilon, abcc, aabbcccc, ababcccc, aaabbbcccccc, \ldots\}&amp;lt;/math&amp;gt;?&lt;br /&gt;
# Построить грамматику 1-го порядка для языка &amp;lt;math&amp;gt;\{ww \mid w \in \{a, b\}^*\}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Задание 2: (сочиняется) ===&lt;/div&gt;</summary>
		<author><name>Okhotin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Formal_grammars_2014_lecture_15.pdf&amp;diff=4036</id>
		<title>Файл:Formal grammars 2014 lecture 15.pdf</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Formal_grammars_2014_lecture_15.pdf&amp;diff=4036"/>
				<updated>2014-09-30T14:50:35Z</updated>
		
		<summary type="html">&lt;p&gt;Okhotin: загружена новая версия «Файл:Formal grammars 2014 lecture 15.pdf»:&amp;amp;#32;Добавлена вторая картинка про VALC.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Формальные грамматики 2014, материалы к лекции 15 (англ. яз.).&lt;/div&gt;</summary>
		<author><name>Okhotin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=4035</id>
		<title>Формальные грамматики 2014</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=4035"/>
				<updated>2014-09-30T12:41:16Z</updated>
		
		<summary type="html">&lt;p&gt;Okhotin: /* Лекция 9: Табличные алгоритмы синтаксического анализа */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Курс «Формальные грамматики»: сентябрь 2014 г., 15 лекций,&lt;br /&gt;
лектор: [http://users.utu.fi/aleokh/ Александр Охотин] (университет Турку, Финляндия).&lt;br /&gt;
&lt;br /&gt;
== Содержание лекций ==&lt;br /&gt;
&lt;br /&gt;
=== Лекция 1: Введение, регулярные языки ===&lt;br /&gt;
&lt;br /&gt;
Математические модели синтаксиса.&lt;br /&gt;
Формальные языки.&lt;br /&gt;
Детерминированные и недетерминированные конечные автоматы, регулярные выражения, их равносильность.&lt;br /&gt;
Примеры. Замкнутость относительно основных действий.&lt;br /&gt;
Нерегулярные языки.&lt;br /&gt;
''(8 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 1.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 2: Обыкновенные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные формальные грамматики&lt;br /&gt;
(в терминологии Хомского, «бесконтекстные»).&lt;br /&gt;
Определения через перезапись строк,&lt;br /&gt;
через деревья разбора,&lt;br /&gt;
через логический вывод&lt;br /&gt;
и через языковые уравнения.&lt;br /&gt;
Равносильность определений.&lt;br /&gt;
Примеры грамматик.&lt;br /&gt;
Замкнутость относительно объединения, конкатенации, звёздочки,&lt;br /&gt;
а также циклического сдвига.&lt;br /&gt;
''(8 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 2 3 4.pdf]]&lt;br /&gt;
(редакция от 16 сентября, добавлены все недостающие разделы)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 3: Свойства обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Замкнутость относительно пересечения с регулярными языками.&lt;br /&gt;
Языки, не представимые грамматиками.&lt;br /&gt;
Лемма накачки, лемма Огдена.&lt;br /&gt;
Грамматики над односимвольным алфавитом.&lt;br /&gt;
Нормальный вид Хомского.&lt;br /&gt;
''(9 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 4: Представления обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Нормальный вид Грейбах.&lt;br /&gt;
Нормальный вид Розенкранца.&lt;br /&gt;
Теорема Хомского--Шюценберже о представлении обыкновенных языков через язык Дика.&lt;br /&gt;
Теорема Грейбах о «самом сложном языке».&lt;br /&gt;
''(9 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 5: Конъюнктивные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Определения конъюнктивных грамматик&lt;br /&gt;
через логический вывод, перезапись термов, деревья разбора и языковые уравнения.&lt;br /&gt;
Примеры грамматик: wcw, объявление перед использованием, степени четвёрки.&lt;br /&gt;
Приведение к нормальному виду Хомского.&lt;br /&gt;
Понятие о булевых грамматиках.&lt;br /&gt;
''(11 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 5.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 6: Однозначные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Неоднозначность в естественных языках и языках программирования.&lt;br /&gt;
Комбинаторные и аналитические методы доказательства существенной неоднозначности.&lt;br /&gt;
''(11 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 6.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 7: Линейные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные линейные грамматики, лемма накачки для них.&lt;br /&gt;
Линейные конъюнктивные грамматики и клеточные автоматы, их равносильность.&lt;br /&gt;
Лемма Терье.&lt;br /&gt;
''(12 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 7.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 8: Многокомпонентные грамматики, логика FO(LFP) ===&lt;br /&gt;
&lt;br /&gt;
Грамматики обёртывания пар и грамматики надстройки деревьев (tree-adjoining grammars).&lt;br /&gt;
Логика первого порядка над позициями в строке FO(LFP),&lt;br /&gt;
представление грамматик в этой логике.&lt;br /&gt;
Алгоритм проверки истинности формул логики FO(LFP)&lt;br /&gt;
как прототип алгоритмов синтаксического анализа.&lt;br /&gt;
''(12 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 8.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 9: Табличные алгоритмы синтаксического анализа ===&lt;br /&gt;
&lt;br /&gt;
Алгоритм Кокка-Касами-Янгера.&lt;br /&gt;
Использование умножения матриц для ускорения алгоритма.&lt;br /&gt;
Умножение матриц по методу Штрассена и по методу Арлазарова и др.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 9 10.pdf]]&lt;br /&gt;
(редакция от 30 сентября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 10: Табличные алгоритмы синтаксического анализа (окончание) ===&lt;br /&gt;
&lt;br /&gt;
Разбор через умножение матриц (алгоритм Валианта). Разбор однозначных грамматик за квадратичное время.&lt;br /&gt;
Разбор для грамматик обёртывания пар.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 11: Разбор сверху вниз ===&lt;br /&gt;
&lt;br /&gt;
LL(k) анализ для обыкновенных грамматик, рекурсивный спуск.&lt;br /&gt;
Удаление пустых правил из LL-грамматик.&lt;br /&gt;
Языки, не представимые LL-грамматиками.&lt;br /&gt;
Теорема Розенкранца--Стирнса&lt;br /&gt;
о регулярном объединении LL-языков.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 11.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 12: LR(k) анализ и детерминированные языки ===&lt;br /&gt;
&lt;br /&gt;
Анализ через сдвиг и свёртку.&lt;br /&gt;
Детерминированный конечный автомат, читающий стек.&lt;br /&gt;
Класс LR(k) грамматик.&lt;br /&gt;
Построение таблиц по методу SLR(k).&lt;br /&gt;
Магазинные автоматы и их равносильность LR(k) грамматикам.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 12 13.pdf]]&lt;br /&gt;
(весьма неполная редакция от 25 сентября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 13: Автоматы, управляемые входом; обобщённый LR ===&lt;br /&gt;
&lt;br /&gt;
Автоматы, управляемые входом (input-driven automata; visibly pushdown automata). Равносильность их детерминированных и недетерминированных разновидностей. Грамматики, управляемые входом.&lt;br /&gt;
Обобщённый LR: пример работы, оценки сложности.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 14: Вычислительная сложность разбора ===&lt;br /&gt;
&lt;br /&gt;
Разбор обыкновенных грамматик с использованием памяти &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;,&lt;br /&gt;
разбор схемой высоты &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;.&lt;br /&gt;
Линейная грамматика для NLOGSPACE-полного языка.&lt;br /&gt;
Задача принадлежности данной строки данной обыкновенной грамматике&lt;br /&gt;
и её P-полнота.&lt;br /&gt;
Равносильность грамматик 1-го порядка классу P.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 14.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 15: Разрешимость свойств грамматик ===&lt;br /&gt;
&lt;br /&gt;
Язык вычислений машины Тьюринга (VALC)&lt;br /&gt;
и его представление в виде пересечения двух LL(1) линейных языков.&lt;br /&gt;
Неразрешимость основных свойств линейных грамматик.&lt;br /&gt;
Разрешимость проверки равносильности LL(k) грамматик.&lt;br /&gt;
Разрешимость задачи включения для автоматов, управляемых входом.&lt;br /&gt;
Иерархия семейств грамматик.&lt;br /&gt;
''(26 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 15.pdf]]&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
=== Задание 1: к 22 сентября ===&lt;br /&gt;
&lt;br /&gt;
# Построить обыкновенную грамматику для языка всех палиндромов: &amp;lt;math&amp;gt;L_1 = \{ w \in \{a, b\}^* \mid w=w^R \}&amp;lt;/math&amp;gt;. Показать, как строка &amp;lt;math&amp;gt;ababa&amp;lt;/math&amp;gt; выводится с помощью перезаписи строк. Показать, что эта же строка принадлежит наименьшему решению системы языковых уравнений, построив несколько шагов последовательности &amp;lt;math&amp;gt;\varphi^k(\bot)&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Доказать, что не существует обыкновенной грамматики для языка &amp;lt;math&amp;gt;L_2=\{ a^{k_1} b \ldots a^{k_n} b \mid n \geqslant 1, 0 \leqslant k_1 \leqslant \ldots \leqslant k_n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Построить конъюнктивную грамматику для языка &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Построить однозначную обыкновенную грамматику для языка &amp;lt;math&amp;gt;L_3=\{c^m a^{\ell_0}b \ldots a^{\ell_{m-1}}b a^{\ell_m}b \ldots a^{\ell_z}b d^n \mid m,n, \ell_i \geqslant 0, z \geqslant 1, \ell_m=n\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Является ли язык &amp;lt;math&amp;gt;L_3&amp;lt;/math&amp;gt; линейным конъюнктивным?&lt;br /&gt;
# Пусть &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; --- язык Дика над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Существует ли грамматика обёртывания пар для языка &amp;lt;math&amp;gt;L_4 = \{wc^{|w|} \mid w \in D\} = \{\varepsilon, abcc, aabbcccc, ababcccc, aaabbbcccccc, \ldots\}&amp;lt;/math&amp;gt;?&lt;br /&gt;
# Построить грамматику 1-го порядка для языка &amp;lt;math&amp;gt;\{ww \mid w \in \{a, b\}^*\}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Задание 2: (сочиняется) ===&lt;/div&gt;</summary>
		<author><name>Okhotin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Formal_grammars_2014_lectures_9_10.pdf&amp;diff=4034</id>
		<title>Файл:Formal grammars 2014 lectures 9 10.pdf</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Formal_grammars_2014_lectures_9_10.pdf&amp;diff=4034"/>
				<updated>2014-09-30T12:40:47Z</updated>
		
		<summary type="html">&lt;p&gt;Okhotin: загружена новая версия «Файл:Formal grammars 2014 lectures 9 10.pdf»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Формальные грамматики 2014, материалы к лекциям 9--10 (англ. яз).&lt;/div&gt;</summary>
		<author><name>Okhotin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=4027</id>
		<title>Формальные грамматики 2014</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=4027"/>
				<updated>2014-09-29T16:56:31Z</updated>
		
		<summary type="html">&lt;p&gt;Okhotin: /* Лекция 15: Разрешимость свойств грамматик */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Курс «Формальные грамматики»: сентябрь 2014 г., 15 лекций,&lt;br /&gt;
лектор: [http://users.utu.fi/aleokh/ Александр Охотин] (университет Турку, Финляндия).&lt;br /&gt;
&lt;br /&gt;
== Содержание лекций ==&lt;br /&gt;
&lt;br /&gt;
=== Лекция 1: Введение, регулярные языки ===&lt;br /&gt;
&lt;br /&gt;
Математические модели синтаксиса.&lt;br /&gt;
Формальные языки.&lt;br /&gt;
Детерминированные и недетерминированные конечные автоматы, регулярные выражения, их равносильность.&lt;br /&gt;
Примеры. Замкнутость относительно основных действий.&lt;br /&gt;
Нерегулярные языки.&lt;br /&gt;
''(8 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 1.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 2: Обыкновенные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные формальные грамматики&lt;br /&gt;
(в терминологии Хомского, «бесконтекстные»).&lt;br /&gt;
Определения через перезапись строк,&lt;br /&gt;
через деревья разбора,&lt;br /&gt;
через логический вывод&lt;br /&gt;
и через языковые уравнения.&lt;br /&gt;
Равносильность определений.&lt;br /&gt;
Примеры грамматик.&lt;br /&gt;
Замкнутость относительно объединения, конкатенации, звёздочки,&lt;br /&gt;
а также циклического сдвига.&lt;br /&gt;
''(8 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 2 3 4.pdf]]&lt;br /&gt;
(редакция от 16 сентября, добавлены все недостающие разделы)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 3: Свойства обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Замкнутость относительно пересечения с регулярными языками.&lt;br /&gt;
Языки, не представимые грамматиками.&lt;br /&gt;
Лемма накачки, лемма Огдена.&lt;br /&gt;
Грамматики над односимвольным алфавитом.&lt;br /&gt;
Нормальный вид Хомского.&lt;br /&gt;
''(9 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 4: Представления обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Нормальный вид Грейбах.&lt;br /&gt;
Нормальный вид Розенкранца.&lt;br /&gt;
Теорема Хомского--Шюценберже о представлении обыкновенных языков через язык Дика.&lt;br /&gt;
Теорема Грейбах о «самом сложном языке».&lt;br /&gt;
''(9 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 5: Конъюнктивные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Определения конъюнктивных грамматик&lt;br /&gt;
через логический вывод, перезапись термов, деревья разбора и языковые уравнения.&lt;br /&gt;
Примеры грамматик: wcw, объявление перед использованием, степени четвёрки.&lt;br /&gt;
Приведение к нормальному виду Хомского.&lt;br /&gt;
Понятие о булевых грамматиках.&lt;br /&gt;
''(11 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 5.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 6: Однозначные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Неоднозначность в естественных языках и языках программирования.&lt;br /&gt;
Комбинаторные и аналитические методы доказательства существенной неоднозначности.&lt;br /&gt;
''(11 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 6.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 7: Линейные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные линейные грамматики, лемма накачки для них.&lt;br /&gt;
Линейные конъюнктивные грамматики и клеточные автоматы, их равносильность.&lt;br /&gt;
Лемма Терье.&lt;br /&gt;
''(12 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 7.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 8: Многокомпонентные грамматики, логика FO(LFP) ===&lt;br /&gt;
&lt;br /&gt;
Грамматики обёртывания пар и грамматики надстройки деревьев (tree-adjoining grammars).&lt;br /&gt;
Логика первого порядка над позициями в строке FO(LFP),&lt;br /&gt;
представление грамматик в этой логике.&lt;br /&gt;
Алгоритм проверки истинности формул логики FO(LFP)&lt;br /&gt;
как прототип алгоритмов синтаксического анализа.&lt;br /&gt;
''(12 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 8.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 9: Табличные алгоритмы синтаксического анализа ===&lt;br /&gt;
&lt;br /&gt;
Алгоритм Кокка-Касами-Янгера.&lt;br /&gt;
Использование умножения матриц для ускорения алгоритма.&lt;br /&gt;
Умножение матриц по методу Штрассена и по методу Арлазарова и др.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 9 10.pdf]]&lt;br /&gt;
(всё есть, но многoe нуждаeтся в редактировании; новая редакция будет позднее)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 10: Табличные алгоритмы синтаксического анализа (окончание) ===&lt;br /&gt;
&lt;br /&gt;
Разбор через умножение матриц (алгоритм Валианта). Разбор однозначных грамматик за квадратичное время.&lt;br /&gt;
Разбор для грамматик обёртывания пар.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 11: Разбор сверху вниз ===&lt;br /&gt;
&lt;br /&gt;
LL(k) анализ для обыкновенных грамматик, рекурсивный спуск.&lt;br /&gt;
Удаление пустых правил из LL-грамматик.&lt;br /&gt;
Языки, не представимые LL-грамматиками.&lt;br /&gt;
Теорема Розенкранца--Стирнса&lt;br /&gt;
о регулярном объединении LL-языков.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 11.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 12: LR(k) анализ и детерминированные языки ===&lt;br /&gt;
&lt;br /&gt;
Анализ через сдвиг и свёртку.&lt;br /&gt;
Детерминированный конечный автомат, читающий стек.&lt;br /&gt;
Класс LR(k) грамматик.&lt;br /&gt;
Построение таблиц по методу SLR(k).&lt;br /&gt;
Магазинные автоматы и их равносильность LR(k) грамматикам.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 12 13.pdf]]&lt;br /&gt;
(весьма неполная редакция от 25 сентября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 13: Автоматы, управляемые входом; обобщённый LR ===&lt;br /&gt;
&lt;br /&gt;
Автоматы, управляемые входом (input-driven automata; visibly pushdown automata). Равносильность их детерминированных и недетерминированных разновидностей. Грамматики, управляемые входом.&lt;br /&gt;
Обобщённый LR: пример работы, оценки сложности.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 14: Вычислительная сложность разбора ===&lt;br /&gt;
&lt;br /&gt;
Разбор обыкновенных грамматик с использованием памяти &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;,&lt;br /&gt;
разбор схемой высоты &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;.&lt;br /&gt;
Линейная грамматика для NLOGSPACE-полного языка.&lt;br /&gt;
Задача принадлежности данной строки данной обыкновенной грамматике&lt;br /&gt;
и её P-полнота.&lt;br /&gt;
Равносильность грамматик 1-го порядка классу P.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 14.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 15: Разрешимость свойств грамматик ===&lt;br /&gt;
&lt;br /&gt;
Язык вычислений машины Тьюринга (VALC)&lt;br /&gt;
и его представление в виде пересечения двух LL(1) линейных языков.&lt;br /&gt;
Неразрешимость основных свойств линейных грамматик.&lt;br /&gt;
Разрешимость проверки равносильности LL(k) грамматик.&lt;br /&gt;
Разрешимость задачи включения для автоматов, управляемых входом.&lt;br /&gt;
Иерархия семейств грамматик.&lt;br /&gt;
''(26 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 15.pdf]]&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
=== Задание 1: к 22 сентября ===&lt;br /&gt;
&lt;br /&gt;
# Построить обыкновенную грамматику для языка всех палиндромов: &amp;lt;math&amp;gt;L_1 = \{ w \in \{a, b\}^* \mid w=w^R \}&amp;lt;/math&amp;gt;. Показать, как строка &amp;lt;math&amp;gt;ababa&amp;lt;/math&amp;gt; выводится с помощью перезаписи строк. Показать, что эта же строка принадлежит наименьшему решению системы языковых уравнений, построив несколько шагов последовательности &amp;lt;math&amp;gt;\varphi^k(\bot)&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Доказать, что не существует обыкновенной грамматики для языка &amp;lt;math&amp;gt;L_2=\{ a^{k_1} b \ldots a^{k_n} b \mid n \geqslant 1, 0 \leqslant k_1 \leqslant \ldots \leqslant k_n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Построить конъюнктивную грамматику для языка &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Построить однозначную обыкновенную грамматику для языка &amp;lt;math&amp;gt;L_3=\{c^m a^{\ell_0}b \ldots a^{\ell_{m-1}}b a^{\ell_m}b \ldots a^{\ell_z}b d^n \mid m,n, \ell_i \geqslant 0, z \geqslant 1, \ell_m=n\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Является ли язык &amp;lt;math&amp;gt;L_3&amp;lt;/math&amp;gt; линейным конъюнктивным?&lt;br /&gt;
# Пусть &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; --- язык Дика над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Существует ли грамматика обёртывания пар для языка &amp;lt;math&amp;gt;L_4 = \{wc^{|w|} \mid w \in D\} = \{\varepsilon, abcc, aabbcccc, ababcccc, aaabbbcccccc, \ldots\}&amp;lt;/math&amp;gt;?&lt;br /&gt;
# Построить грамматику 1-го порядка для языка &amp;lt;math&amp;gt;\{ww \mid w \in \{a, b\}^*\}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Задание 2: (сочиняется) ===&lt;/div&gt;</summary>
		<author><name>Okhotin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Formal_grammars_2014_lecture_15.pdf&amp;diff=4026</id>
		<title>Файл:Formal grammars 2014 lecture 15.pdf</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Formal_grammars_2014_lecture_15.pdf&amp;diff=4026"/>
				<updated>2014-09-29T16:55:35Z</updated>
		
		<summary type="html">&lt;p&gt;Okhotin: Формальные грамматики 2014, материалы к лекции 15 (англ. яз.).&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Формальные грамматики 2014, материалы к лекции 15 (англ. яз.).&lt;/div&gt;</summary>
		<author><name>Okhotin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=4017</id>
		<title>Формальные грамматики 2014</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=4017"/>
				<updated>2014-09-29T10:02:09Z</updated>
		
		<summary type="html">&lt;p&gt;Okhotin: Проставлены даты лекций&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Курс «Формальные грамматики»: сентябрь 2014 г., 15 лекций,&lt;br /&gt;
лектор: [http://users.utu.fi/aleokh/ Александр Охотин] (университет Турку, Финляндия).&lt;br /&gt;
&lt;br /&gt;
== Содержание лекций ==&lt;br /&gt;
&lt;br /&gt;
=== Лекция 1: Введение, регулярные языки ===&lt;br /&gt;
&lt;br /&gt;
Математические модели синтаксиса.&lt;br /&gt;
Формальные языки.&lt;br /&gt;
Детерминированные и недетерминированные конечные автоматы, регулярные выражения, их равносильность.&lt;br /&gt;
Примеры. Замкнутость относительно основных действий.&lt;br /&gt;
Нерегулярные языки.&lt;br /&gt;
''(8 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 1.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 2: Обыкновенные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные формальные грамматики&lt;br /&gt;
(в терминологии Хомского, «бесконтекстные»).&lt;br /&gt;
Определения через перезапись строк,&lt;br /&gt;
через деревья разбора,&lt;br /&gt;
через логический вывод&lt;br /&gt;
и через языковые уравнения.&lt;br /&gt;
Равносильность определений.&lt;br /&gt;
Примеры грамматик.&lt;br /&gt;
Замкнутость относительно объединения, конкатенации, звёздочки,&lt;br /&gt;
а также циклического сдвига.&lt;br /&gt;
''(8 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 2 3 4.pdf]]&lt;br /&gt;
(редакция от 16 сентября, добавлены все недостающие разделы)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 3: Свойства обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Замкнутость относительно пересечения с регулярными языками.&lt;br /&gt;
Языки, не представимые грамматиками.&lt;br /&gt;
Лемма накачки, лемма Огдена.&lt;br /&gt;
Грамматики над односимвольным алфавитом.&lt;br /&gt;
Нормальный вид Хомского.&lt;br /&gt;
''(9 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 4: Представления обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Нормальный вид Грейбах.&lt;br /&gt;
Нормальный вид Розенкранца.&lt;br /&gt;
Теорема Хомского--Шюценберже о представлении обыкновенных языков через язык Дика.&lt;br /&gt;
Теорема Грейбах о «самом сложном языке».&lt;br /&gt;
''(9 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 5: Конъюнктивные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Определения конъюнктивных грамматик&lt;br /&gt;
через логический вывод, перезапись термов, деревья разбора и языковые уравнения.&lt;br /&gt;
Примеры грамматик: wcw, объявление перед использованием, степени четвёрки.&lt;br /&gt;
Приведение к нормальному виду Хомского.&lt;br /&gt;
Понятие о булевых грамматиках.&lt;br /&gt;
''(11 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 5.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 6: Однозначные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Неоднозначность в естественных языках и языках программирования.&lt;br /&gt;
Комбинаторные и аналитические методы доказательства существенной неоднозначности.&lt;br /&gt;
''(11 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 6.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 7: Линейные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные линейные грамматики, лемма накачки для них.&lt;br /&gt;
Линейные конъюнктивные грамматики и клеточные автоматы, их равносильность.&lt;br /&gt;
Лемма Терье.&lt;br /&gt;
''(12 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 7.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 8: Многокомпонентные грамматики, логика FO(LFP) ===&lt;br /&gt;
&lt;br /&gt;
Грамматики обёртывания пар и грамматики надстройки деревьев (tree-adjoining grammars).&lt;br /&gt;
Логика первого порядка над позициями в строке FO(LFP),&lt;br /&gt;
представление грамматик в этой логике.&lt;br /&gt;
Алгоритм проверки истинности формул логики FO(LFP)&lt;br /&gt;
как прототип алгоритмов синтаксического анализа.&lt;br /&gt;
''(12 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 8.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 9: Табличные алгоритмы синтаксического анализа ===&lt;br /&gt;
&lt;br /&gt;
Алгоритм Кокка-Касами-Янгера.&lt;br /&gt;
Использование умножения матриц для ускорения алгоритма.&lt;br /&gt;
Умножение матриц по методу Штрассена и по методу Арлазарова и др.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 9 10.pdf]]&lt;br /&gt;
(всё есть, но многoe нуждаeтся в редактировании; новая редакция будет позднее)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 10: Табличные алгоритмы синтаксического анализа (окончание) ===&lt;br /&gt;
&lt;br /&gt;
Разбор через умножение матриц (алгоритм Валианта). Разбор однозначных грамматик за квадратичное время.&lt;br /&gt;
Разбор для грамматик обёртывания пар.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 11: Разбор сверху вниз ===&lt;br /&gt;
&lt;br /&gt;
LL(k) анализ для обыкновенных грамматик, рекурсивный спуск.&lt;br /&gt;
Удаление пустых правил из LL-грамматик.&lt;br /&gt;
Языки, не представимые LL-грамматиками.&lt;br /&gt;
Теорема Розенкранца--Стирнса&lt;br /&gt;
о регулярном объединении LL-языков.&lt;br /&gt;
''(22 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 11.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 12: LR(k) анализ и детерминированные языки ===&lt;br /&gt;
&lt;br /&gt;
Анализ через сдвиг и свёртку.&lt;br /&gt;
Детерминированный конечный автомат, читающий стек.&lt;br /&gt;
Класс LR(k) грамматик.&lt;br /&gt;
Построение таблиц по методу SLR(k).&lt;br /&gt;
Магазинные автоматы и их равносильность LR(k) грамматикам.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 12 13.pdf]]&lt;br /&gt;
(весьма неполная редакция от 25 сентября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 13: Автоматы, управляемые входом; обобщённый LR ===&lt;br /&gt;
&lt;br /&gt;
Автоматы, управляемые входом (input-driven automata; visibly pushdown automata). Равносильность их детерминированных и недетерминированных разновидностей. Грамматики, управляемые входом.&lt;br /&gt;
Обобщённый LR: пример работы, оценки сложности.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
=== Лекция 14: Вычислительная сложность разбора ===&lt;br /&gt;
&lt;br /&gt;
Разбор обыкновенных грамматик с использованием памяти &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;,&lt;br /&gt;
разбор схемой высоты &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;.&lt;br /&gt;
Линейная грамматика для NLOGSPACE-полного языка.&lt;br /&gt;
Задача принадлежности данной строки данной обыкновенной грамматике&lt;br /&gt;
и её P-полнота.&lt;br /&gt;
Равносильность грамматик 1-го порядка классу P.&lt;br /&gt;
''(24 сентября)''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 14.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 15: Разрешимость свойств грамматик ===&lt;br /&gt;
&lt;br /&gt;
Язык вычислений машины Тьюринга (VALC)&lt;br /&gt;
и его представление в виде пересечения двух LL(1) линейных языков.&lt;br /&gt;
Неразрешимость основных свойств линейных грамматик.&lt;br /&gt;
Разрешимость проверки равносильности LL(k) грамматик.&lt;br /&gt;
Разрешимость задачи включения для автоматов, управляемых входом.&lt;br /&gt;
Иерархия семейств грамматик.&lt;br /&gt;
''(26 сентября)''&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
=== Задание 1: к 22 сентября ===&lt;br /&gt;
&lt;br /&gt;
# Построить обыкновенную грамматику для языка всех палиндромов: &amp;lt;math&amp;gt;L_1 = \{ w \in \{a, b\}^* \mid w=w^R \}&amp;lt;/math&amp;gt;. Показать, как строка &amp;lt;math&amp;gt;ababa&amp;lt;/math&amp;gt; выводится с помощью перезаписи строк. Показать, что эта же строка принадлежит наименьшему решению системы языковых уравнений, построив несколько шагов последовательности &amp;lt;math&amp;gt;\varphi^k(\bot)&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Доказать, что не существует обыкновенной грамматики для языка &amp;lt;math&amp;gt;L_2=\{ a^{k_1} b \ldots a^{k_n} b \mid n \geqslant 1, 0 \leqslant k_1 \leqslant \ldots \leqslant k_n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Построить конъюнктивную грамматику для языка &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Построить однозначную обыкновенную грамматику для языка &amp;lt;math&amp;gt;L_3=\{c^m a^{\ell_0}b \ldots a^{\ell_{m-1}}b a^{\ell_m}b \ldots a^{\ell_z}b d^n \mid m,n, \ell_i \geqslant 0, z \geqslant 1, \ell_m=n\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Является ли язык &amp;lt;math&amp;gt;L_3&amp;lt;/math&amp;gt; линейным конъюнктивным?&lt;br /&gt;
# Пусть &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; --- язык Дика над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Существует ли грамматика обёртывания пар для языка &amp;lt;math&amp;gt;L_4 = \{wc^{|w|} \mid w \in D\} = \{\varepsilon, abcc, aabbcccc, ababcccc, aaabbbcccccc, \ldots\}&amp;lt;/math&amp;gt;?&lt;br /&gt;
# Построить грамматику 1-го порядка для языка &amp;lt;math&amp;gt;\{ww \mid w \in \{a, b\}^*\}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Задание 2: (сочиняется) ===&lt;/div&gt;</summary>
		<author><name>Okhotin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=4016</id>
		<title>Формальные грамматики 2014</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=4016"/>
				<updated>2014-09-29T09:09:19Z</updated>
		
		<summary type="html">&lt;p&gt;Okhotin: /* Упражнения */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Курс «Формальные грамматики»: сентябрь 2014 г., 15 лекций,&lt;br /&gt;
лектор: [http://users.utu.fi/aleokh/ Александр Охотин] (университет Турку, Финляндия).&lt;br /&gt;
&lt;br /&gt;
== Содержание лекций ==&lt;br /&gt;
&lt;br /&gt;
=== Лекция 1: Введение, регулярные языки ===&lt;br /&gt;
&lt;br /&gt;
Математические модели синтаксиса.&lt;br /&gt;
Формальные языки.&lt;br /&gt;
Детерминированные и недетерминированные конечные автоматы, регулярные выражения, их равносильность.&lt;br /&gt;
Примеры. Замкнутость относительно основных действий.&lt;br /&gt;
Нерегулярные языки.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 1.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 2: Обыкновенные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные формальные грамматики&lt;br /&gt;
(в терминологии Хомского, «бесконтекстные»).&lt;br /&gt;
Определения через перезапись строк,&lt;br /&gt;
через деревья разбора,&lt;br /&gt;
через логический вывод&lt;br /&gt;
и через языковые уравнения.&lt;br /&gt;
Равносильность определений.&lt;br /&gt;
Примеры грамматик.&lt;br /&gt;
Замкнутость относительно объединения, конкатенации, звёздочки,&lt;br /&gt;
а также циклического сдвига.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 2 3 4.pdf]]&lt;br /&gt;
(редакция от 16 сентября, добавлены все недостающие разделы)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 3: Свойства обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Замкнутость относительно пересечения с регулярными языками.&lt;br /&gt;
Языки, не представимые грамматиками.&lt;br /&gt;
Лемма накачки, лемма Огдена.&lt;br /&gt;
Грамматики над односимвольным алфавитом.&lt;br /&gt;
Нормальный вид Хомского.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 4: Представления обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Нормальный вид Грейбах.&lt;br /&gt;
Нормальный вид Розенкранца.&lt;br /&gt;
Теорема Хомского--Шюценберже о представлении обыкновенных языков через язык Дика.&lt;br /&gt;
Теорема Грейбах о «самом сложном языке».&lt;br /&gt;
&lt;br /&gt;
=== Лекция 5: Конъюнктивные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Определения конъюнктивных грамматик через логический вывод, перезапись термов, деревья разбора и языковые уравнения. Примеры грамматик: wcw, объявление перед использованием, степени четвёрки. Приведение к нормальному виду Хомского. Понятие о булевых грамматиках.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 5.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 6: Однозначные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Неоднозначность в естественных языках и языках программирования. Комбинаторные и аналитические методы доказательства существенной неоднозначности.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 6.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 7: Линейные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные линейные грамматики, лемма накачки для них.&lt;br /&gt;
Линейные конъюнктивные грамматики и клеточные автоматы, их равносильность.&lt;br /&gt;
Лемма Терье.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 7.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 8: Многокомпонентные грамматики, логика FO(LFP) ===&lt;br /&gt;
&lt;br /&gt;
Грамматики обёртывания пар и грамматики надстройки деревьев (tree-adjoining grammars).&lt;br /&gt;
Логика первого порядка над позициями в строке FO(LFP),&lt;br /&gt;
представление грамматик в этой логике.&lt;br /&gt;
Алгоритм проверки истинности формул логики FO(LFP)&lt;br /&gt;
как прототип алгоритмов синтаксического анализа.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 8.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 9: Табличные алгоритмы синтаксического анализа ===&lt;br /&gt;
&lt;br /&gt;
Алгоритм Кокка-Касами-Янгера.&lt;br /&gt;
Использование умножения матриц для ускорения алгоритма.&lt;br /&gt;
Умножение матриц по методу Штрассена и по методу Арлазарова и др.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 9 10.pdf]]&lt;br /&gt;
(всё есть, но многoe нуждаeтся в редактировании; новая редакция будет позднее)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 10: Табличные алгоритмы синтаксического анализа (окончание) ===&lt;br /&gt;
&lt;br /&gt;
Разбор через умножение матриц (алгоритм Валианта). Разбор однозначных грамматик за квадратичное время.&lt;br /&gt;
Разбор для грамматик обёртывания пар.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 11: Разбор сверху вниз ===&lt;br /&gt;
&lt;br /&gt;
LL(k) анализ для обыкновенных грамматик, рекурсивный спуск.&lt;br /&gt;
Удаление пустых правил из LL-грамматик.&lt;br /&gt;
Языки, не представимые LL-грамматиками.&lt;br /&gt;
Теорема Розенкранца--Стирнса&lt;br /&gt;
о регулярном объединении LL-языков.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 11.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 12: LR(k) анализ и детерминированные языки ===&lt;br /&gt;
&lt;br /&gt;
Анализ через сдвиг и свёртку. Детерминированный конечный автомат, читающий стек. Класс LR(k) грамматик. Построение таблиц по методу SLR(k). Магазинные автоматы и их равносильность LR(k) грамматикам.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 12 13.pdf]]&lt;br /&gt;
(весьма неполная редакция от 25 сентября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 13: Автоматы, управляемые входом; обобщённый LR ===&lt;br /&gt;
&lt;br /&gt;
Автоматы, управляемые входом (input-driven automata; visibly pushdown automata). Равносильность их детерминированных и недетерминированных разновидностей. Грамматики, управляемые входом.&lt;br /&gt;
Обобщённый LR: пример работы, оценки сложности.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 14: Вычислительная сложность разбора ===&lt;br /&gt;
&lt;br /&gt;
Разбор обыкновенных грамматик с использованием памяти &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;,&lt;br /&gt;
разбор схемой высоты &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;.&lt;br /&gt;
Линейная грамматика для NLOGSPACE-полного языка.&lt;br /&gt;
Задача принадлежности данной строки данной обыкновенной грамматике&lt;br /&gt;
и её P-полнота.&lt;br /&gt;
Равносильность грамматик 1-го порядка классу P.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 14.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 15: Разрешимость свойств грамматик ===&lt;br /&gt;
&lt;br /&gt;
Язык вычислений машины Тьюринга (VALC)&lt;br /&gt;
и его представление в виде пересечения двух LL(1) линейных языков.&lt;br /&gt;
Неразрешимость основных свойств линейных грамматик.&lt;br /&gt;
Разрешимость проверки равносильности LL(k) грамматик.&lt;br /&gt;
Разрешимость задачи включения для автоматов, управляемых входом.&lt;br /&gt;
Иерархия семейств грамматик.&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
=== Задание 1: к 22 сентября ===&lt;br /&gt;
&lt;br /&gt;
# Построить обыкновенную грамматику для языка всех палиндромов: &amp;lt;math&amp;gt;L_1 = \{ w \in \{a, b\}^* \mid w=w^R \}&amp;lt;/math&amp;gt;. Показать, как строка &amp;lt;math&amp;gt;ababa&amp;lt;/math&amp;gt; выводится с помощью перезаписи строк. Показать, что эта же строка принадлежит наименьшему решению системы языковых уравнений, построив несколько шагов последовательности &amp;lt;math&amp;gt;\varphi^k(\bot)&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Доказать, что не существует обыкновенной грамматики для языка &amp;lt;math&amp;gt;L_2=\{ a^{k_1} b \ldots a^{k_n} b \mid n \geqslant 1, 0 \leqslant k_1 \leqslant \ldots \leqslant k_n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Построить конъюнктивную грамматику для языка &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Построить однозначную обыкновенную грамматику для языка &amp;lt;math&amp;gt;L_3=\{c^m a^{\ell_0}b \ldots a^{\ell_{m-1}}b a^{\ell_m}b \ldots a^{\ell_z}b d^n \mid m,n, \ell_i \geqslant 0, z \geqslant 1, \ell_m=n\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Является ли язык &amp;lt;math&amp;gt;L_3&amp;lt;/math&amp;gt; линейным конъюнктивным?&lt;br /&gt;
# Пусть &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; --- язык Дика над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Существует ли грамматика обёртывания пар для языка &amp;lt;math&amp;gt;L_4 = \{wc^{|w|} \mid w \in D\} = \{\varepsilon, abcc, aabbcccc, ababcccc, aaabbbcccccc, \ldots\}&amp;lt;/math&amp;gt;?&lt;br /&gt;
# Построить грамматику 1-го порядка для языка &amp;lt;math&amp;gt;\{ww \mid w \in \{a, b\}^*\}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Задание 2: (сочиняется) ===&lt;/div&gt;</summary>
		<author><name>Okhotin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=4015</id>
		<title>Формальные грамматики 2014</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=4015"/>
				<updated>2014-09-29T09:08:50Z</updated>
		
		<summary type="html">&lt;p&gt;Okhotin: /* Разрешимость свойств грамматик */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Курс «Формальные грамматики»: сентябрь 2014 г., 15 лекций,&lt;br /&gt;
лектор: [http://users.utu.fi/aleokh/ Александр Охотин] (университет Турку, Финляндия).&lt;br /&gt;
&lt;br /&gt;
== Содержание лекций ==&lt;br /&gt;
&lt;br /&gt;
=== Лекция 1: Введение, регулярные языки ===&lt;br /&gt;
&lt;br /&gt;
Математические модели синтаксиса.&lt;br /&gt;
Формальные языки.&lt;br /&gt;
Детерминированные и недетерминированные конечные автоматы, регулярные выражения, их равносильность.&lt;br /&gt;
Примеры. Замкнутость относительно основных действий.&lt;br /&gt;
Нерегулярные языки.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 1.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 2: Обыкновенные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные формальные грамматики&lt;br /&gt;
(в терминологии Хомского, «бесконтекстные»).&lt;br /&gt;
Определения через перезапись строк,&lt;br /&gt;
через деревья разбора,&lt;br /&gt;
через логический вывод&lt;br /&gt;
и через языковые уравнения.&lt;br /&gt;
Равносильность определений.&lt;br /&gt;
Примеры грамматик.&lt;br /&gt;
Замкнутость относительно объединения, конкатенации, звёздочки,&lt;br /&gt;
а также циклического сдвига.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 2 3 4.pdf]]&lt;br /&gt;
(редакция от 16 сентября, добавлены все недостающие разделы)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 3: Свойства обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Замкнутость относительно пересечения с регулярными языками.&lt;br /&gt;
Языки, не представимые грамматиками.&lt;br /&gt;
Лемма накачки, лемма Огдена.&lt;br /&gt;
Грамматики над односимвольным алфавитом.&lt;br /&gt;
Нормальный вид Хомского.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 4: Представления обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Нормальный вид Грейбах.&lt;br /&gt;
Нормальный вид Розенкранца.&lt;br /&gt;
Теорема Хомского--Шюценберже о представлении обыкновенных языков через язык Дика.&lt;br /&gt;
Теорема Грейбах о «самом сложном языке».&lt;br /&gt;
&lt;br /&gt;
=== Лекция 5: Конъюнктивные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Определения конъюнктивных грамматик через логический вывод, перезапись термов, деревья разбора и языковые уравнения. Примеры грамматик: wcw, объявление перед использованием, степени четвёрки. Приведение к нормальному виду Хомского. Понятие о булевых грамматиках.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 5.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 6: Однозначные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Неоднозначность в естественных языках и языках программирования. Комбинаторные и аналитические методы доказательства существенной неоднозначности.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 6.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 7: Линейные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные линейные грамматики, лемма накачки для них.&lt;br /&gt;
Линейные конъюнктивные грамматики и клеточные автоматы, их равносильность.&lt;br /&gt;
Лемма Терье.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 7.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 8: Многокомпонентные грамматики, логика FO(LFP) ===&lt;br /&gt;
&lt;br /&gt;
Грамматики обёртывания пар и грамматики надстройки деревьев (tree-adjoining grammars).&lt;br /&gt;
Логика первого порядка над позициями в строке FO(LFP),&lt;br /&gt;
представление грамматик в этой логике.&lt;br /&gt;
Алгоритм проверки истинности формул логики FO(LFP)&lt;br /&gt;
как прототип алгоритмов синтаксического анализа.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 8.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 9: Табличные алгоритмы синтаксического анализа ===&lt;br /&gt;
&lt;br /&gt;
Алгоритм Кокка-Касами-Янгера.&lt;br /&gt;
Использование умножения матриц для ускорения алгоритма.&lt;br /&gt;
Умножение матриц по методу Штрассена и по методу Арлазарова и др.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 9 10.pdf]]&lt;br /&gt;
(всё есть, но многoe нуждаeтся в редактировании; новая редакция будет позднее)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 10: Табличные алгоритмы синтаксического анализа (окончание) ===&lt;br /&gt;
&lt;br /&gt;
Разбор через умножение матриц (алгоритм Валианта). Разбор однозначных грамматик за квадратичное время.&lt;br /&gt;
Разбор для грамматик обёртывания пар.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 11: Разбор сверху вниз ===&lt;br /&gt;
&lt;br /&gt;
LL(k) анализ для обыкновенных грамматик, рекурсивный спуск.&lt;br /&gt;
Удаление пустых правил из LL-грамматик.&lt;br /&gt;
Языки, не представимые LL-грамматиками.&lt;br /&gt;
Теорема Розенкранца--Стирнса&lt;br /&gt;
о регулярном объединении LL-языков.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 11.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 12: LR(k) анализ и детерминированные языки ===&lt;br /&gt;
&lt;br /&gt;
Анализ через сдвиг и свёртку. Детерминированный конечный автомат, читающий стек. Класс LR(k) грамматик. Построение таблиц по методу SLR(k). Магазинные автоматы и их равносильность LR(k) грамматикам.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 12 13.pdf]]&lt;br /&gt;
(весьма неполная редакция от 25 сентября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 13: Автоматы, управляемые входом; обобщённый LR ===&lt;br /&gt;
&lt;br /&gt;
Автоматы, управляемые входом (input-driven automata; visibly pushdown automata). Равносильность их детерминированных и недетерминированных разновидностей. Грамматики, управляемые входом.&lt;br /&gt;
Обобщённый LR: пример работы, оценки сложности.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 14: Вычислительная сложность разбора ===&lt;br /&gt;
&lt;br /&gt;
Разбор обыкновенных грамматик с использованием памяти &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;,&lt;br /&gt;
разбор схемой высоты &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;.&lt;br /&gt;
Линейная грамматика для NLOGSPACE-полного языка.&lt;br /&gt;
Задача принадлежности данной строки данной обыкновенной грамматике&lt;br /&gt;
и её P-полнота.&lt;br /&gt;
Равносильность грамматик 1-го порядка классу P.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 14.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 15: Разрешимость свойств грамматик ===&lt;br /&gt;
&lt;br /&gt;
Язык вычислений машины Тьюринга (VALC)&lt;br /&gt;
и его представление в виде пересечения двух LL(1) линейных языков.&lt;br /&gt;
Неразрешимость основных свойств линейных грамматик.&lt;br /&gt;
Разрешимость проверки равносильности LL(k) грамматик.&lt;br /&gt;
Разрешимость задачи включения для автоматов, управляемых входом.&lt;br /&gt;
Иерархия семейств грамматик.&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
=== Задание 1: к 22 сентября ===&lt;br /&gt;
&lt;br /&gt;
# Построить обыкновенную грамматику для языка всех палиндромов: &amp;lt;math&amp;gt;L_1 = \{ w \in \{a, b\}^* \mid w=w^R \}&amp;lt;/math&amp;gt;. Показать, как строка &amp;lt;math&amp;gt;ababa&amp;lt;/math&amp;gt; выводится с помощью перезаписи строк. Показать, что эта же строка принадлежит наименьшему решению системы языковых уравнений, построив несколько шагов последовательности &amp;lt;math&amp;gt;\varphi^k(\bot)&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Доказать, что не существует обыкновенной грамматики для языка &amp;lt;math&amp;gt;L_2=\{ a^{k_1} b \ldots a^{k_n} b \mid n \geqslant 1, 0 \leqslant k_1 \leqslant \ldots \leqslant k_n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Построить конъюнктивную грамматику для языка &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Построить однозначную обыкновенную грамматику для языка &amp;lt;math&amp;gt;L_3=\{c^m a^{\ell_0}b \ldots a^{\ell_{m-1}}b a^{\ell_m}b \ldots a^{\ell_z}b d^n \mid m,n, \ell_i \geqslant 0, z \geqslant 1, \ell_m=n\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Является ли язык &amp;lt;math&amp;gt;L_3&amp;lt;/math&amp;gt; линейным конъюнктивным?&lt;br /&gt;
# Пусть &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; --- язык Дика над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Существует ли грамматика обёртывания пар для языка &amp;lt;math&amp;gt;L_4 = \{wc^{|w|} \mid w \in D\} = \{\varepsilon, abcc, aabbcccc, ababcccc, aaabbbcccccc, \ldots\}&amp;lt;/math&amp;gt;?&lt;br /&gt;
# Построить грамматику 1-го порядка для языка &amp;lt;math&amp;gt;\{ww \mid w \in \{a, b\}^*\}&amp;lt;/math&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Okhotin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=3983</id>
		<title>Формальные грамматики 2014</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=3983"/>
				<updated>2014-09-26T11:44:52Z</updated>
		
		<summary type="html">&lt;p&gt;Okhotin: /* Лекция 14: Вычислительная сложность разбора */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Курс «Формальные грамматики»: сентябрь 2014 г., 15 лекций,&lt;br /&gt;
лектор: [http://users.utu.fi/aleokh/ Александр Охотин] (университет Турку, Финляндия).&lt;br /&gt;
&lt;br /&gt;
== Содержание лекций ==&lt;br /&gt;
&lt;br /&gt;
=== Лекция 1: Введение, регулярные языки ===&lt;br /&gt;
&lt;br /&gt;
Математические модели синтаксиса.&lt;br /&gt;
Формальные языки.&lt;br /&gt;
Детерминированные и недетерминированные конечные автоматы, регулярные выражения, их равносильность.&lt;br /&gt;
Примеры. Замкнутость относительно основных действий.&lt;br /&gt;
Нерегулярные языки.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 1.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 2: Обыкновенные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные формальные грамматики&lt;br /&gt;
(в терминологии Хомского, «бесконтекстные»).&lt;br /&gt;
Определения через перезапись строк,&lt;br /&gt;
через деревья разбора,&lt;br /&gt;
через логический вывод&lt;br /&gt;
и через языковые уравнения.&lt;br /&gt;
Равносильность определений.&lt;br /&gt;
Примеры грамматик.&lt;br /&gt;
Замкнутость относительно объединения, конкатенации, звёздочки,&lt;br /&gt;
а также циклического сдвига.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 2 3 4.pdf]]&lt;br /&gt;
(редакция от 16 сентября, добавлены все недостающие разделы)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 3: Свойства обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Замкнутость относительно пересечения с регулярными языками.&lt;br /&gt;
Языки, не представимые грамматиками.&lt;br /&gt;
Лемма накачки, лемма Огдена.&lt;br /&gt;
Грамматики над односимвольным алфавитом.&lt;br /&gt;
Нормальный вид Хомского.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 4: Представления обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Нормальный вид Грейбах.&lt;br /&gt;
Нормальный вид Розенкранца.&lt;br /&gt;
Теорема Хомского--Шюценберже о представлении обыкновенных языков через язык Дика.&lt;br /&gt;
Теорема Грейбах о «самом сложном языке».&lt;br /&gt;
&lt;br /&gt;
=== Лекция 5: Конъюнктивные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Определения конъюнктивных грамматик через логический вывод, перезапись термов, деревья разбора и языковые уравнения. Примеры грамматик: wcw, объявление перед использованием, степени четвёрки. Приведение к нормальному виду Хомского. Понятие о булевых грамматиках.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 5.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 6: Однозначные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Неоднозначность в естественных языках и языках программирования. Комбинаторные и аналитические методы доказательства существенной неоднозначности.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 6.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 7: Линейные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные линейные грамматики, лемма накачки для них.&lt;br /&gt;
Линейные конъюнктивные грамматики и клеточные автоматы, их равносильность.&lt;br /&gt;
Лемма Терье.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 7.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 8: Многокомпонентные грамматики, логика FO(LFP) ===&lt;br /&gt;
&lt;br /&gt;
Грамматики обёртывания пар и грамматики надстройки деревьев (tree-adjoining grammars).&lt;br /&gt;
Логика первого порядка над позициями в строке FO(LFP),&lt;br /&gt;
представление грамматик в этой логике.&lt;br /&gt;
Алгоритм проверки истинности формул логики FO(LFP)&lt;br /&gt;
как прототип алгоритмов синтаксического анализа.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 8.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 9: Табличные алгоритмы синтаксического анализа ===&lt;br /&gt;
&lt;br /&gt;
Алгоритм Кокка-Касами-Янгера.&lt;br /&gt;
Использование умножения матриц для ускорения алгоритма.&lt;br /&gt;
Умножение матриц по методу Штрассена и по методу Арлазарова и др.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 9 10.pdf]]&lt;br /&gt;
(всё есть, но многoe нуждаeтся в редактировании; новая редакция будет позднее)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 10: Табличные алгоритмы синтаксического анализа (окончание) ===&lt;br /&gt;
&lt;br /&gt;
Разбор через умножение матриц (алгоритм Валианта). Разбор однозначных грамматик за квадратичное время.&lt;br /&gt;
Разбор для грамматик обёртывания пар.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 11: Разбор сверху вниз ===&lt;br /&gt;
&lt;br /&gt;
LL(k) анализ для обыкновенных грамматик, рекурсивный спуск.&lt;br /&gt;
Удаление пустых правил из LL-грамматик.&lt;br /&gt;
Языки, не представимые LL-грамматиками.&lt;br /&gt;
Теорема Розенкранца--Стирнса&lt;br /&gt;
о регулярном объединении LL-языков.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 11.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 12: LR(k) анализ и детерминированные языки ===&lt;br /&gt;
&lt;br /&gt;
Анализ через сдвиг и свёртку. Детерминированный конечный автомат, читающий стек. Класс LR(k) грамматик. Построение таблиц по методу SLR(k). Магазинные автоматы и их равносильность LR(k) грамматикам.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 12 13.pdf]]&lt;br /&gt;
(весьма неполная редакция от 25 сентября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 13: Автоматы, управляемые входом; обобщённый LR ===&lt;br /&gt;
&lt;br /&gt;
Автоматы, управляемые входом (input-driven automata; visibly pushdown automata). Равносильность их детерминированных и недетерминированных разновидностей. Грамматики, управляемые входом.&lt;br /&gt;
Обобщённый LR: пример работы, оценки сложности.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 14: Вычислительная сложность разбора ===&lt;br /&gt;
&lt;br /&gt;
Разбор обыкновенных грамматик с использованием памяти &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;,&lt;br /&gt;
разбор схемой высоты &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;.&lt;br /&gt;
Линейная грамматика для NLOGSPACE-полного языка.&lt;br /&gt;
Задача принадлежности данной строки данной обыкновенной грамматике&lt;br /&gt;
и её P-полнота.&lt;br /&gt;
Равносильность грамматик 1-го порядка классу P.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 14.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Разрешимость свойств грамматик ===&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
=== Задание 1: к 22 сентября ===&lt;br /&gt;
&lt;br /&gt;
# Построить обыкновенную грамматику для языка всех палиндромов: &amp;lt;math&amp;gt;L_1 = \{ w \in \{a, b\}^* \mid w=w^R \}&amp;lt;/math&amp;gt;. Показать, как строка &amp;lt;math&amp;gt;ababa&amp;lt;/math&amp;gt; выводится с помощью перезаписи строк. Показать, что эта же строка принадлежит наименьшему решению системы языковых уравнений, построив несколько шагов последовательности &amp;lt;math&amp;gt;\varphi^k(\bot)&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Доказать, что не существует обыкновенной грамматики для языка &amp;lt;math&amp;gt;L_2=\{ a^{k_1} b \ldots a^{k_n} b \mid n \geqslant 1, 0 \leqslant k_1 \leqslant \ldots \leqslant k_n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Построить конъюнктивную грамматику для языка &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Построить однозначную обыкновенную грамматику для языка &amp;lt;math&amp;gt;L_3=\{c^m a^{\ell_0}b \ldots a^{\ell_{m-1}}b a^{\ell_m}b \ldots a^{\ell_z}b d^n \mid m,n, \ell_i \geqslant 0, z \geqslant 1, \ell_m=n\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Является ли язык &amp;lt;math&amp;gt;L_3&amp;lt;/math&amp;gt; линейным конъюнктивным?&lt;br /&gt;
# Пусть &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; --- язык Дика над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Существует ли грамматика обёртывания пар для языка &amp;lt;math&amp;gt;L_4 = \{wc^{|w|} \mid w \in D\} = \{\varepsilon, abcc, aabbcccc, ababcccc, aaabbbcccccc, \ldots\}&amp;lt;/math&amp;gt;?&lt;br /&gt;
# Построить грамматику 1-го порядка для языка &amp;lt;math&amp;gt;\{ww \mid w \in \{a, b\}^*\}&amp;lt;/math&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Okhotin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=3977</id>
		<title>Формальные грамматики 2014</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=3977"/>
				<updated>2014-09-26T07:33:48Z</updated>
		
		<summary type="html">&lt;p&gt;Okhotin: /* Лекция 14: Вычислительная сложность разбора */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Курс «Формальные грамматики»: сентябрь 2014 г., 15 лекций,&lt;br /&gt;
лектор: [http://users.utu.fi/aleokh/ Александр Охотин] (университет Турку, Финляндия).&lt;br /&gt;
&lt;br /&gt;
== Содержание лекций ==&lt;br /&gt;
&lt;br /&gt;
=== Лекция 1: Введение, регулярные языки ===&lt;br /&gt;
&lt;br /&gt;
Математические модели синтаксиса.&lt;br /&gt;
Формальные языки.&lt;br /&gt;
Детерминированные и недетерминированные конечные автоматы, регулярные выражения, их равносильность.&lt;br /&gt;
Примеры. Замкнутость относительно основных действий.&lt;br /&gt;
Нерегулярные языки.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 1.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 2: Обыкновенные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные формальные грамматики&lt;br /&gt;
(в терминологии Хомского, «бесконтекстные»).&lt;br /&gt;
Определения через перезапись строк,&lt;br /&gt;
через деревья разбора,&lt;br /&gt;
через логический вывод&lt;br /&gt;
и через языковые уравнения.&lt;br /&gt;
Равносильность определений.&lt;br /&gt;
Примеры грамматик.&lt;br /&gt;
Замкнутость относительно объединения, конкатенации, звёздочки,&lt;br /&gt;
а также циклического сдвига.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 2 3 4.pdf]]&lt;br /&gt;
(редакция от 16 сентября, добавлены все недостающие разделы)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 3: Свойства обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Замкнутость относительно пересечения с регулярными языками.&lt;br /&gt;
Языки, не представимые грамматиками.&lt;br /&gt;
Лемма накачки, лемма Огдена.&lt;br /&gt;
Грамматики над односимвольным алфавитом.&lt;br /&gt;
Нормальный вид Хомского.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 4: Представления обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Нормальный вид Грейбах.&lt;br /&gt;
Нормальный вид Розенкранца.&lt;br /&gt;
Теорема Хомского--Шюценберже о представлении обыкновенных языков через язык Дика.&lt;br /&gt;
Теорема Грейбах о «самом сложном языке».&lt;br /&gt;
&lt;br /&gt;
=== Лекция 5: Конъюнктивные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Определения конъюнктивных грамматик через логический вывод, перезапись термов, деревья разбора и языковые уравнения. Примеры грамматик: wcw, объявление перед использованием, степени четвёрки. Приведение к нормальному виду Хомского. Понятие о булевых грамматиках.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 5.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 6: Однозначные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Неоднозначность в естественных языках и языках программирования. Комбинаторные и аналитические методы доказательства существенной неоднозначности.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 6.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 7: Линейные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные линейные грамматики, лемма накачки для них.&lt;br /&gt;
Линейные конъюнктивные грамматики и клеточные автоматы, их равносильность.&lt;br /&gt;
Лемма Терье.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 7.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 8: Многокомпонентные грамматики, логика FO(LFP) ===&lt;br /&gt;
&lt;br /&gt;
Грамматики обёртывания пар и грамматики надстройки деревьев (tree-adjoining grammars).&lt;br /&gt;
Логика первого порядка над позициями в строке FO(LFP),&lt;br /&gt;
представление грамматик в этой логике.&lt;br /&gt;
Алгоритм проверки истинности формул логики FO(LFP)&lt;br /&gt;
как прототип алгоритмов синтаксического анализа.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 8.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 9: Табличные алгоритмы синтаксического анализа ===&lt;br /&gt;
&lt;br /&gt;
Алгоритм Кокка-Касами-Янгера.&lt;br /&gt;
Использование умножения матриц для ускорения алгоритма.&lt;br /&gt;
Умножение матриц по методу Штрассена и по методу Арлазарова и др.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 9 10.pdf]]&lt;br /&gt;
(всё есть, но многoe нуждаeтся в редактировании; новая редакция будет позднее)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 10: Табличные алгоритмы синтаксического анализа (окончание) ===&lt;br /&gt;
&lt;br /&gt;
Разбор через умножение матриц (алгоритм Валианта). Разбор однозначных грамматик за квадратичное время.&lt;br /&gt;
Разбор для грамматик обёртывания пар.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 11: Разбор сверху вниз ===&lt;br /&gt;
&lt;br /&gt;
LL(k) анализ для обыкновенных грамматик, рекурсивный спуск.&lt;br /&gt;
Удаление пустых правил из LL-грамматик.&lt;br /&gt;
Языки, не представимые LL-грамматиками.&lt;br /&gt;
Теорема Розенкранца--Стирнса&lt;br /&gt;
о регулярном объединении LL-языков.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 11.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 12: LR(k) анализ и детерминированные языки ===&lt;br /&gt;
&lt;br /&gt;
Анализ через сдвиг и свёртку. Детерминированный конечный автомат, читающий стек. Класс LR(k) грамматик. Построение таблиц по методу SLR(k). Магазинные автоматы и их равносильность LR(k) грамматикам.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 12 13.pdf]]&lt;br /&gt;
(весьма неполная редакция от 25 сентября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 13: Автоматы, управляемые входом; обобщённый LR ===&lt;br /&gt;
&lt;br /&gt;
Автоматы, управляемые входом (input-driven automata; visibly pushdown automata). Равносильность их детерминированных и недетерминированных разновидностей. Грамматики, управляемые входом.&lt;br /&gt;
Обобщённый LR: пример работы, оценки сложности.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 14: Вычислительная сложность разбора ===&lt;br /&gt;
&lt;br /&gt;
Разбор обыкновенных грамматик с использованием памяти &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;,&lt;br /&gt;
разбор схемой высоты &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;.&lt;br /&gt;
Линейная грамматика для NLOGSPACE-полного языка.&lt;br /&gt;
Задача принадлежности данной строке данной обыкновенной грамматики&lt;br /&gt;
и её P-полнота.&lt;br /&gt;
Равносильность грамматик 1-го порядка классу P.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 14.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Разрешимость свойств грамматик ===&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
=== Задание 1: к 22 сентября ===&lt;br /&gt;
&lt;br /&gt;
# Построить обыкновенную грамматику для языка всех палиндромов: &amp;lt;math&amp;gt;L_1 = \{ w \in \{a, b\}^* \mid w=w^R \}&amp;lt;/math&amp;gt;. Показать, как строка &amp;lt;math&amp;gt;ababa&amp;lt;/math&amp;gt; выводится с помощью перезаписи строк. Показать, что эта же строка принадлежит наименьшему решению системы языковых уравнений, построив несколько шагов последовательности &amp;lt;math&amp;gt;\varphi^k(\bot)&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Доказать, что не существует обыкновенной грамматики для языка &amp;lt;math&amp;gt;L_2=\{ a^{k_1} b \ldots a^{k_n} b \mid n \geqslant 1, 0 \leqslant k_1 \leqslant \ldots \leqslant k_n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Построить конъюнктивную грамматику для языка &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Построить однозначную обыкновенную грамматику для языка &amp;lt;math&amp;gt;L_3=\{c^m a^{\ell_0}b \ldots a^{\ell_{m-1}}b a^{\ell_m}b \ldots a^{\ell_z}b d^n \mid m,n, \ell_i \geqslant 0, z \geqslant 1, \ell_m=n\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Является ли язык &amp;lt;math&amp;gt;L_3&amp;lt;/math&amp;gt; линейным конъюнктивным?&lt;br /&gt;
# Пусть &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; --- язык Дика над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Существует ли грамматика обёртывания пар для языка &amp;lt;math&amp;gt;L_4 = \{wc^{|w|} \mid w \in D\} = \{\varepsilon, abcc, aabbcccc, ababcccc, aaabbbcccccc, \ldots\}&amp;lt;/math&amp;gt;?&lt;br /&gt;
# Построить грамматику 1-го порядка для языка &amp;lt;math&amp;gt;\{ww \mid w \in \{a, b\}^*\}&amp;lt;/math&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Okhotin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Formal_grammars_2014_lecture_14.pdf&amp;diff=3976</id>
		<title>Файл:Formal grammars 2014 lecture 14.pdf</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Formal_grammars_2014_lecture_14.pdf&amp;diff=3976"/>
				<updated>2014-09-26T07:32:38Z</updated>
		
		<summary type="html">&lt;p&gt;Okhotin: Формальные грамматики 2014, материалы к лекции 14 (англ. яз.).&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Формальные грамматики 2014, материалы к лекции 14 (англ. яз.).&lt;/div&gt;</summary>
		<author><name>Okhotin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=3954</id>
		<title>Формальные грамматики 2014</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=3954"/>
				<updated>2014-09-25T08:44:19Z</updated>
		
		<summary type="html">&lt;p&gt;Okhotin: /* Лекция 12: LR(k) анализ и детерминированные языки */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Курс «Формальные грамматики»: сентябрь 2014 г., 15 лекций,&lt;br /&gt;
лектор: [http://users.utu.fi/aleokh/ Александр Охотин] (университет Турку, Финляндия).&lt;br /&gt;
&lt;br /&gt;
== Содержание лекций ==&lt;br /&gt;
&lt;br /&gt;
=== Лекция 1: Введение, регулярные языки ===&lt;br /&gt;
&lt;br /&gt;
Математические модели синтаксиса.&lt;br /&gt;
Формальные языки.&lt;br /&gt;
Детерминированные и недетерминированные конечные автоматы, регулярные выражения, их равносильность.&lt;br /&gt;
Примеры. Замкнутость относительно основных действий.&lt;br /&gt;
Нерегулярные языки.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 1.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 2: Обыкновенные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные формальные грамматики&lt;br /&gt;
(в терминологии Хомского, «бесконтекстные»).&lt;br /&gt;
Определения через перезапись строк,&lt;br /&gt;
через деревья разбора,&lt;br /&gt;
через логический вывод&lt;br /&gt;
и через языковые уравнения.&lt;br /&gt;
Равносильность определений.&lt;br /&gt;
Примеры грамматик.&lt;br /&gt;
Замкнутость относительно объединения, конкатенации, звёздочки,&lt;br /&gt;
а также циклического сдвига.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 2 3 4.pdf]]&lt;br /&gt;
(редакция от 16 сентября, добавлены все недостающие разделы)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 3: Свойства обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Замкнутость относительно пересечения с регулярными языками.&lt;br /&gt;
Языки, не представимые грамматиками.&lt;br /&gt;
Лемма накачки, лемма Огдена.&lt;br /&gt;
Грамматики над односимвольным алфавитом.&lt;br /&gt;
Нормальный вид Хомского.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 4: Представления обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Нормальный вид Грейбах.&lt;br /&gt;
Нормальный вид Розенкранца.&lt;br /&gt;
Теорема Хомского--Шюценберже о представлении обыкновенных языков через язык Дика.&lt;br /&gt;
Теорема Грейбах о «самом сложном языке».&lt;br /&gt;
&lt;br /&gt;
=== Лекция 5: Конъюнктивные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Определения конъюнктивных грамматик через логический вывод, перезапись термов, деревья разбора и языковые уравнения. Примеры грамматик: wcw, объявление перед использованием, степени четвёрки. Приведение к нормальному виду Хомского. Понятие о булевых грамматиках.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 5.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 6: Однозначные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Неоднозначность в естественных языках и языках программирования. Комбинаторные и аналитические методы доказательства существенной неоднозначности.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 6.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 7: Линейные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные линейные грамматики, лемма накачки для них.&lt;br /&gt;
Линейные конъюнктивные грамматики и клеточные автоматы, их равносильность.&lt;br /&gt;
Лемма Терье.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 7.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 8: Многокомпонентные грамматики, логика FO(LFP) ===&lt;br /&gt;
&lt;br /&gt;
Грамматики обёртывания пар и грамматики надстройки деревьев (tree-adjoining grammars).&lt;br /&gt;
Логика первого порядка над позициями в строке FO(LFP),&lt;br /&gt;
представление грамматик в этой логике.&lt;br /&gt;
Алгоритм проверки истинности формул логики FO(LFP)&lt;br /&gt;
как прототип алгоритмов синтаксического анализа.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 8.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 9: Табличные алгоритмы синтаксического анализа ===&lt;br /&gt;
&lt;br /&gt;
Алгоритм Кокка-Касами-Янгера.&lt;br /&gt;
Использование умножения матриц для ускорения алгоритма.&lt;br /&gt;
Умножение матриц по методу Штрассена и по методу Арлазарова и др.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 9 10.pdf]]&lt;br /&gt;
(всё есть, но многoe нуждаeтся в редактировании; новая редакция будет позднее)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 10: Табличные алгоритмы синтаксического анализа (окончание) ===&lt;br /&gt;
&lt;br /&gt;
Разбор через умножение матриц (алгоритм Валианта). Разбор однозначных грамматик за квадратичное время.&lt;br /&gt;
Разбор для грамматик обёртывания пар.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 11: Разбор сверху вниз ===&lt;br /&gt;
&lt;br /&gt;
LL(k) анализ для обыкновенных грамматик, рекурсивный спуск.&lt;br /&gt;
Удаление пустых правил из LL-грамматик.&lt;br /&gt;
Языки, не представимые LL-грамматиками.&lt;br /&gt;
Теорема Розенкранца--Стирнса&lt;br /&gt;
о регулярном объединении LL-языков.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 11.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 12: LR(k) анализ и детерминированные языки ===&lt;br /&gt;
&lt;br /&gt;
Анализ через сдвиг и свёртку. Детерминированный конечный автомат, читающий стек. Класс LR(k) грамматик. Построение таблиц по методу SLR(k). Магазинные автоматы и их равносильность LR(k) грамматикам.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 12 13.pdf]]&lt;br /&gt;
(весьма неполная редакция от 25 сентября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 13: Автоматы, управляемые входом; обобщённый LR ===&lt;br /&gt;
&lt;br /&gt;
Автоматы, управляемые входом (input-driven automata; visibly pushdown automata). Равносильность их детерминированных и недетерминированных разновидностей. Грамматики, управляемые входом.&lt;br /&gt;
Обобщённый LR: пример работы, оценки сложности.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 14: Вычислительная сложность разбора ===&lt;br /&gt;
&lt;br /&gt;
Разбор обыкновенных грамматик с использованием памяти &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;,&lt;br /&gt;
разбор схемой высоты &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;.&lt;br /&gt;
Линейная грамматика для NLOGSPACE-полного языка.&lt;br /&gt;
Задача принадлежности данной строке данной обыкновенной грамматики&lt;br /&gt;
и её P-полнота.&lt;br /&gt;
Равносильность грамматик 1-го порядка классу P.&lt;br /&gt;
&lt;br /&gt;
=== Разрешимость свойств грамматик ===&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
=== Задание 1: к 22 сентября ===&lt;br /&gt;
&lt;br /&gt;
# Построить обыкновенную грамматику для языка всех палиндромов: &amp;lt;math&amp;gt;L_1 = \{ w \in \{a, b\}^* \mid w=w^R \}&amp;lt;/math&amp;gt;. Показать, как строка &amp;lt;math&amp;gt;ababa&amp;lt;/math&amp;gt; выводится с помощью перезаписи строк. Показать, что эта же строка принадлежит наименьшему решению системы языковых уравнений, построив несколько шагов последовательности &amp;lt;math&amp;gt;\varphi^k(\bot)&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Доказать, что не существует обыкновенной грамматики для языка &amp;lt;math&amp;gt;L_2=\{ a^{k_1} b \ldots a^{k_n} b \mid n \geqslant 1, 0 \leqslant k_1 \leqslant \ldots \leqslant k_n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Построить конъюнктивную грамматику для языка &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Построить однозначную обыкновенную грамматику для языка &amp;lt;math&amp;gt;L_3=\{c^m a^{\ell_0}b \ldots a^{\ell_{m-1}}b a^{\ell_m}b \ldots a^{\ell_z}b d^n \mid m,n, \ell_i \geqslant 0, z \geqslant 1, \ell_m=n\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Является ли язык &amp;lt;math&amp;gt;L_3&amp;lt;/math&amp;gt; линейным конъюнктивным?&lt;br /&gt;
# Пусть &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; --- язык Дика над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Существует ли грамматика обёртывания пар для языка &amp;lt;math&amp;gt;L_4 = \{wc^{|w|} \mid w \in D\} = \{\varepsilon, abcc, aabbcccc, ababcccc, aaabbbcccccc, \ldots\}&amp;lt;/math&amp;gt;?&lt;br /&gt;
# Построить грамматику 1-го порядка для языка &amp;lt;math&amp;gt;\{ww \mid w \in \{a, b\}^*\}&amp;lt;/math&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Okhotin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Formal_grammars_2014_lectures_12_13.pdf&amp;diff=3953</id>
		<title>Файл:Formal grammars 2014 lectures 12 13.pdf</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Formal_grammars_2014_lectures_12_13.pdf&amp;diff=3953"/>
				<updated>2014-09-25T08:43:50Z</updated>
		
		<summary type="html">&lt;p&gt;Okhotin: загружена новая версия «Файл:Formal grammars 2014 lectures 12 13.pdf»:&amp;amp;#32;Исправлено несколько опечаток в разделе об автоматах, управляемых входом.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Okhotin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=3950</id>
		<title>Формальные грамматики 2014</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=3950"/>
				<updated>2014-09-24T22:41:38Z</updated>
		
		<summary type="html">&lt;p&gt;Okhotin: /* Лекция 12: LR(k) анализ и детерминированные языки */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Курс «Формальные грамматики»: сентябрь 2014 г., 15 лекций,&lt;br /&gt;
лектор: [http://users.utu.fi/aleokh/ Александр Охотин] (университет Турку, Финляндия).&lt;br /&gt;
&lt;br /&gt;
== Содержание лекций ==&lt;br /&gt;
&lt;br /&gt;
=== Лекция 1: Введение, регулярные языки ===&lt;br /&gt;
&lt;br /&gt;
Математические модели синтаксиса.&lt;br /&gt;
Формальные языки.&lt;br /&gt;
Детерминированные и недетерминированные конечные автоматы, регулярные выражения, их равносильность.&lt;br /&gt;
Примеры. Замкнутость относительно основных действий.&lt;br /&gt;
Нерегулярные языки.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 1.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 2: Обыкновенные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные формальные грамматики&lt;br /&gt;
(в терминологии Хомского, «бесконтекстные»).&lt;br /&gt;
Определения через перезапись строк,&lt;br /&gt;
через деревья разбора,&lt;br /&gt;
через логический вывод&lt;br /&gt;
и через языковые уравнения.&lt;br /&gt;
Равносильность определений.&lt;br /&gt;
Примеры грамматик.&lt;br /&gt;
Замкнутость относительно объединения, конкатенации, звёздочки,&lt;br /&gt;
а также циклического сдвига.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 2 3 4.pdf]]&lt;br /&gt;
(редакция от 16 сентября, добавлены все недостающие разделы)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 3: Свойства обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Замкнутость относительно пересечения с регулярными языками.&lt;br /&gt;
Языки, не представимые грамматиками.&lt;br /&gt;
Лемма накачки, лемма Огдена.&lt;br /&gt;
Грамматики над односимвольным алфавитом.&lt;br /&gt;
Нормальный вид Хомского.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 4: Представления обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Нормальный вид Грейбах.&lt;br /&gt;
Нормальный вид Розенкранца.&lt;br /&gt;
Теорема Хомского--Шюценберже о представлении обыкновенных языков через язык Дика.&lt;br /&gt;
Теорема Грейбах о «самом сложном языке».&lt;br /&gt;
&lt;br /&gt;
=== Лекция 5: Конъюнктивные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Определения конъюнктивных грамматик через логический вывод, перезапись термов, деревья разбора и языковые уравнения. Примеры грамматик: wcw, объявление перед использованием, степени четвёрки. Приведение к нормальному виду Хомского. Понятие о булевых грамматиках.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 5.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 6: Однозначные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Неоднозначность в естественных языках и языках программирования. Комбинаторные и аналитические методы доказательства существенной неоднозначности.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 6.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 7: Линейные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные линейные грамматики, лемма накачки для них.&lt;br /&gt;
Линейные конъюнктивные грамматики и клеточные автоматы, их равносильность.&lt;br /&gt;
Лемма Терье.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 7.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 8: Многокомпонентные грамматики, логика FO(LFP) ===&lt;br /&gt;
&lt;br /&gt;
Грамматики обёртывания пар и грамматики надстройки деревьев (tree-adjoining grammars).&lt;br /&gt;
Логика первого порядка над позициями в строке FO(LFP),&lt;br /&gt;
представление грамматик в этой логике.&lt;br /&gt;
Алгоритм проверки истинности формул логики FO(LFP)&lt;br /&gt;
как прототип алгоритмов синтаксического анализа.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 8.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 9: Табличные алгоритмы синтаксического анализа ===&lt;br /&gt;
&lt;br /&gt;
Алгоритм Кокка-Касами-Янгера.&lt;br /&gt;
Использование умножения матриц для ускорения алгоритма.&lt;br /&gt;
Умножение матриц по методу Штрассена и по методу Арлазарова и др.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 9 10.pdf]]&lt;br /&gt;
(всё есть, но многoe нуждаeтся в редактировании; новая редакция будет позднее)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 10: Табличные алгоритмы синтаксического анализа (окончание) ===&lt;br /&gt;
&lt;br /&gt;
Разбор через умножение матриц (алгоритм Валианта). Разбор однозначных грамматик за квадратичное время.&lt;br /&gt;
Разбор для грамматик обёртывания пар.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 11: Разбор сверху вниз ===&lt;br /&gt;
&lt;br /&gt;
LL(k) анализ для обыкновенных грамматик, рекурсивный спуск.&lt;br /&gt;
Удаление пустых правил из LL-грамматик.&lt;br /&gt;
Языки, не представимые LL-грамматиками.&lt;br /&gt;
Теорема Розенкранца--Стирнса&lt;br /&gt;
о регулярном объединении LL-языков.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 11.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 12: LR(k) анализ и детерминированные языки ===&lt;br /&gt;
&lt;br /&gt;
Анализ через сдвиг и свёртку. Детерминированный конечный автомат, читающий стек. Класс LR(k) грамматик. Построение таблиц по методу SLR(k). Магазинные автоматы и их равносильность LR(k) грамматикам.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 12 13.pdf]]&lt;br /&gt;
(весьма неполная редакция от 24 сентября)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 13: Автоматы, управляемые входом; обобщённый LR ===&lt;br /&gt;
&lt;br /&gt;
Автоматы, управляемые входом (input-driven automata; visibly pushdown automata). Равносильность их детерминированных и недетерминированных разновидностей. Грамматики, управляемые входом.&lt;br /&gt;
Обобщённый LR: пример работы, оценки сложности.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 14: Вычислительная сложность разбора ===&lt;br /&gt;
&lt;br /&gt;
Разбор обыкновенных грамматик с использованием памяти &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;,&lt;br /&gt;
разбор схемой высоты &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;.&lt;br /&gt;
Линейная грамматика для NLOGSPACE-полного языка.&lt;br /&gt;
Задача принадлежности данной строке данной обыкновенной грамматики&lt;br /&gt;
и её P-полнота.&lt;br /&gt;
Равносильность грамматик 1-го порядка классу P.&lt;br /&gt;
&lt;br /&gt;
=== Разрешимость свойств грамматик ===&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
=== Задание 1: к 22 сентября ===&lt;br /&gt;
&lt;br /&gt;
# Построить обыкновенную грамматику для языка всех палиндромов: &amp;lt;math&amp;gt;L_1 = \{ w \in \{a, b\}^* \mid w=w^R \}&amp;lt;/math&amp;gt;. Показать, как строка &amp;lt;math&amp;gt;ababa&amp;lt;/math&amp;gt; выводится с помощью перезаписи строк. Показать, что эта же строка принадлежит наименьшему решению системы языковых уравнений, построив несколько шагов последовательности &amp;lt;math&amp;gt;\varphi^k(\bot)&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Доказать, что не существует обыкновенной грамматики для языка &amp;lt;math&amp;gt;L_2=\{ a^{k_1} b \ldots a^{k_n} b \mid n \geqslant 1, 0 \leqslant k_1 \leqslant \ldots \leqslant k_n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Построить конъюнктивную грамматику для языка &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Построить однозначную обыкновенную грамматику для языка &amp;lt;math&amp;gt;L_3=\{c^m a^{\ell_0}b \ldots a^{\ell_{m-1}}b a^{\ell_m}b \ldots a^{\ell_z}b d^n \mid m,n, \ell_i \geqslant 0, z \geqslant 1, \ell_m=n\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Является ли язык &amp;lt;math&amp;gt;L_3&amp;lt;/math&amp;gt; линейным конъюнктивным?&lt;br /&gt;
# Пусть &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; --- язык Дика над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Существует ли грамматика обёртывания пар для языка &amp;lt;math&amp;gt;L_4 = \{wc^{|w|} \mid w \in D\} = \{\varepsilon, abcc, aabbcccc, ababcccc, aaabbbcccccc, \ldots\}&amp;lt;/math&amp;gt;?&lt;br /&gt;
# Построить грамматику 1-го порядка для языка &amp;lt;math&amp;gt;\{ww \mid w \in \{a, b\}^*\}&amp;lt;/math&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Okhotin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Formal_grammars_2014_lectures_12_13.pdf&amp;diff=3949</id>
		<title>Файл:Formal grammars 2014 lectures 12 13.pdf</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Formal_grammars_2014_lectures_12_13.pdf&amp;diff=3949"/>
				<updated>2014-09-24T22:41:15Z</updated>
		
		<summary type="html">&lt;p&gt;Okhotin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Okhotin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=3945</id>
		<title>Формальные грамматики 2014</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=3945"/>
				<updated>2014-09-24T15:05:00Z</updated>
		
		<summary type="html">&lt;p&gt;Okhotin: /* Вычислительная сложность разбора */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Курс «Формальные грамматики»: сентябрь 2014 г., 15 лекций,&lt;br /&gt;
лектор: [http://users.utu.fi/aleokh/ Александр Охотин] (университет Турку, Финляндия).&lt;br /&gt;
&lt;br /&gt;
== Содержание лекций ==&lt;br /&gt;
&lt;br /&gt;
=== Лекция 1: Введение, регулярные языки ===&lt;br /&gt;
&lt;br /&gt;
Математические модели синтаксиса.&lt;br /&gt;
Формальные языки.&lt;br /&gt;
Детерминированные и недетерминированные конечные автоматы, регулярные выражения, их равносильность.&lt;br /&gt;
Примеры. Замкнутость относительно основных действий.&lt;br /&gt;
Нерегулярные языки.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 1.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 2: Обыкновенные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные формальные грамматики&lt;br /&gt;
(в терминологии Хомского, «бесконтекстные»).&lt;br /&gt;
Определения через перезапись строк,&lt;br /&gt;
через деревья разбора,&lt;br /&gt;
через логический вывод&lt;br /&gt;
и через языковые уравнения.&lt;br /&gt;
Равносильность определений.&lt;br /&gt;
Примеры грамматик.&lt;br /&gt;
Замкнутость относительно объединения, конкатенации, звёздочки,&lt;br /&gt;
а также циклического сдвига.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 2 3 4.pdf]]&lt;br /&gt;
(редакция от 16 сентября, добавлены все недостающие разделы)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 3: Свойства обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Замкнутость относительно пересечения с регулярными языками.&lt;br /&gt;
Языки, не представимые грамматиками.&lt;br /&gt;
Лемма накачки, лемма Огдена.&lt;br /&gt;
Грамматики над односимвольным алфавитом.&lt;br /&gt;
Нормальный вид Хомского.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 4: Представления обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Нормальный вид Грейбах.&lt;br /&gt;
Нормальный вид Розенкранца.&lt;br /&gt;
Теорема Хомского--Шюценберже о представлении обыкновенных языков через язык Дика.&lt;br /&gt;
Теорема Грейбах о «самом сложном языке».&lt;br /&gt;
&lt;br /&gt;
=== Лекция 5: Конъюнктивные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Определения конъюнктивных грамматик через логический вывод, перезапись термов, деревья разбора и языковые уравнения. Примеры грамматик: wcw, объявление перед использованием, степени четвёрки. Приведение к нормальному виду Хомского. Понятие о булевых грамматиках.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 5.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 6: Однозначные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Неоднозначность в естественных языках и языках программирования. Комбинаторные и аналитические методы доказательства существенной неоднозначности.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 6.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 7: Линейные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные линейные грамматики, лемма накачки для них.&lt;br /&gt;
Линейные конъюнктивные грамматики и клеточные автоматы, их равносильность.&lt;br /&gt;
Лемма Терье.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 7.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 8: Многокомпонентные грамматики, логика FO(LFP) ===&lt;br /&gt;
&lt;br /&gt;
Грамматики обёртывания пар и грамматики надстройки деревьев (tree-adjoining grammars).&lt;br /&gt;
Логика первого порядка над позициями в строке FO(LFP),&lt;br /&gt;
представление грамматик в этой логике.&lt;br /&gt;
Алгоритм проверки истинности формул логики FO(LFP)&lt;br /&gt;
как прототип алгоритмов синтаксического анализа.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 8.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 9: Табличные алгоритмы синтаксического анализа ===&lt;br /&gt;
&lt;br /&gt;
Алгоритм Кокка-Касами-Янгера.&lt;br /&gt;
Использование умножения матриц для ускорения алгоритма.&lt;br /&gt;
Умножение матриц по методу Штрассена и по методу Арлазарова и др.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 9 10.pdf]]&lt;br /&gt;
(всё есть, но многoe нуждаeтся в редактировании; новая редакция будет позднее)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 10: Табличные алгоритмы синтаксического анализа (окончание) ===&lt;br /&gt;
&lt;br /&gt;
Разбор через умножение матриц (алгоритм Валианта). Разбор однозначных грамматик за квадратичное время.&lt;br /&gt;
Разбор для грамматик обёртывания пар.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 11: Разбор сверху вниз ===&lt;br /&gt;
&lt;br /&gt;
LL(k) анализ для обыкновенных грамматик, рекурсивный спуск.&lt;br /&gt;
Удаление пустых правил из LL-грамматик.&lt;br /&gt;
Языки, не представимые LL-грамматиками.&lt;br /&gt;
Теорема Розенкранца--Стирнса&lt;br /&gt;
о регулярном объединении LL-языков.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 11.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 12: LR(k) анализ и детерминированные языки ===&lt;br /&gt;
&lt;br /&gt;
Анализ через сдвиг и свёртку. Детерминированный конечный автомат, читающий стек. Класс LR(k) грамматик. Построение таблиц по методу SLR(k). Магазинные автоматы и их равносильность LR(k) грамматикам.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 13: Автоматы, управляемые входом; обобщённый LR ===&lt;br /&gt;
&lt;br /&gt;
Автоматы, управляемые входом (input-driven automata; visibly pushdown automata). Равносильность их детерминированных и недетерминированных разновидностей. Грамматики, управляемые входом.&lt;br /&gt;
Обобщённый LR: пример работы, оценки сложности.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 14: Вычислительная сложность разбора ===&lt;br /&gt;
&lt;br /&gt;
Разбор обыкновенных грамматик с использованием памяти &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;,&lt;br /&gt;
разбор схемой высоты &amp;lt;math&amp;gt;(\log n)^2&amp;lt;/math&amp;gt;.&lt;br /&gt;
Линейная грамматика для NLOGSPACE-полного языка.&lt;br /&gt;
Задача принадлежности данной строке данной обыкновенной грамматики&lt;br /&gt;
и её P-полнота.&lt;br /&gt;
Равносильность грамматик 1-го порядка классу P.&lt;br /&gt;
&lt;br /&gt;
=== Разрешимость свойств грамматик ===&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
=== Задание 1: к 22 сентября ===&lt;br /&gt;
&lt;br /&gt;
# Построить обыкновенную грамматику для языка всех палиндромов: &amp;lt;math&amp;gt;L_1 = \{ w \in \{a, b\}^* \mid w=w^R \}&amp;lt;/math&amp;gt;. Показать, как строка &amp;lt;math&amp;gt;ababa&amp;lt;/math&amp;gt; выводится с помощью перезаписи строк. Показать, что эта же строка принадлежит наименьшему решению системы языковых уравнений, построив несколько шагов последовательности &amp;lt;math&amp;gt;\varphi^k(\bot)&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Доказать, что не существует обыкновенной грамматики для языка &amp;lt;math&amp;gt;L_2=\{ a^{k_1} b \ldots a^{k_n} b \mid n \geqslant 1, 0 \leqslant k_1 \leqslant \ldots \leqslant k_n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Построить конъюнктивную грамматику для языка &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Построить однозначную обыкновенную грамматику для языка &amp;lt;math&amp;gt;L_3=\{c^m a^{\ell_0}b \ldots a^{\ell_{m-1}}b a^{\ell_m}b \ldots a^{\ell_z}b d^n \mid m,n, \ell_i \geqslant 0, z \geqslant 1, \ell_m=n\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Является ли язык &amp;lt;math&amp;gt;L_3&amp;lt;/math&amp;gt; линейным конъюнктивным?&lt;br /&gt;
# Пусть &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; --- язык Дика над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Существует ли грамматика обёртывания пар для языка &amp;lt;math&amp;gt;L_4 = \{wc^{|w|} \mid w \in D\} = \{\varepsilon, abcc, aabbcccc, ababcccc, aaabbbcccccc, \ldots\}&amp;lt;/math&amp;gt;?&lt;br /&gt;
# Построить грамматику 1-го порядка для языка &amp;lt;math&amp;gt;\{ww \mid w \in \{a, b\}^*\}&amp;lt;/math&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Okhotin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=3944</id>
		<title>Формальные грамматики 2014</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=3944"/>
				<updated>2014-09-24T14:59:55Z</updated>
		
		<summary type="html">&lt;p&gt;Okhotin: /* Обобщённый LR; автоматы, управляемые входом */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Курс «Формальные грамматики»: сентябрь 2014 г., 15 лекций,&lt;br /&gt;
лектор: [http://users.utu.fi/aleokh/ Александр Охотин] (университет Турку, Финляндия).&lt;br /&gt;
&lt;br /&gt;
== Содержание лекций ==&lt;br /&gt;
&lt;br /&gt;
=== Лекция 1: Введение, регулярные языки ===&lt;br /&gt;
&lt;br /&gt;
Математические модели синтаксиса.&lt;br /&gt;
Формальные языки.&lt;br /&gt;
Детерминированные и недетерминированные конечные автоматы, регулярные выражения, их равносильность.&lt;br /&gt;
Примеры. Замкнутость относительно основных действий.&lt;br /&gt;
Нерегулярные языки.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 1.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 2: Обыкновенные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные формальные грамматики&lt;br /&gt;
(в терминологии Хомского, «бесконтекстные»).&lt;br /&gt;
Определения через перезапись строк,&lt;br /&gt;
через деревья разбора,&lt;br /&gt;
через логический вывод&lt;br /&gt;
и через языковые уравнения.&lt;br /&gt;
Равносильность определений.&lt;br /&gt;
Примеры грамматик.&lt;br /&gt;
Замкнутость относительно объединения, конкатенации, звёздочки,&lt;br /&gt;
а также циклического сдвига.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 2 3 4.pdf]]&lt;br /&gt;
(редакция от 16 сентября, добавлены все недостающие разделы)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 3: Свойства обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Замкнутость относительно пересечения с регулярными языками.&lt;br /&gt;
Языки, не представимые грамматиками.&lt;br /&gt;
Лемма накачки, лемма Огдена.&lt;br /&gt;
Грамматики над односимвольным алфавитом.&lt;br /&gt;
Нормальный вид Хомского.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 4: Представления обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Нормальный вид Грейбах.&lt;br /&gt;
Нормальный вид Розенкранца.&lt;br /&gt;
Теорема Хомского--Шюценберже о представлении обыкновенных языков через язык Дика.&lt;br /&gt;
Теорема Грейбах о «самом сложном языке».&lt;br /&gt;
&lt;br /&gt;
=== Лекция 5: Конъюнктивные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Определения конъюнктивных грамматик через логический вывод, перезапись термов, деревья разбора и языковые уравнения. Примеры грамматик: wcw, объявление перед использованием, степени четвёрки. Приведение к нормальному виду Хомского. Понятие о булевых грамматиках.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 5.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 6: Однозначные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Неоднозначность в естественных языках и языках программирования. Комбинаторные и аналитические методы доказательства существенной неоднозначности.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 6.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 7: Линейные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные линейные грамматики, лемма накачки для них.&lt;br /&gt;
Линейные конъюнктивные грамматики и клеточные автоматы, их равносильность.&lt;br /&gt;
Лемма Терье.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 7.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 8: Многокомпонентные грамматики, логика FO(LFP) ===&lt;br /&gt;
&lt;br /&gt;
Грамматики обёртывания пар и грамматики надстройки деревьев (tree-adjoining grammars).&lt;br /&gt;
Логика первого порядка над позициями в строке FO(LFP),&lt;br /&gt;
представление грамматик в этой логике.&lt;br /&gt;
Алгоритм проверки истинности формул логики FO(LFP)&lt;br /&gt;
как прототип алгоритмов синтаксического анализа.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 8.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 9: Табличные алгоритмы синтаксического анализа ===&lt;br /&gt;
&lt;br /&gt;
Алгоритм Кокка-Касами-Янгера.&lt;br /&gt;
Использование умножения матриц для ускорения алгоритма.&lt;br /&gt;
Умножение матриц по методу Штрассена и по методу Арлазарова и др.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 9 10.pdf]]&lt;br /&gt;
(всё есть, но многoe нуждаeтся в редактировании; новая редакция будет позднее)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 10: Табличные алгоритмы синтаксического анализа (окончание) ===&lt;br /&gt;
&lt;br /&gt;
Разбор через умножение матриц (алгоритм Валианта). Разбор однозначных грамматик за квадратичное время.&lt;br /&gt;
Разбор для грамматик обёртывания пар.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 11: Разбор сверху вниз ===&lt;br /&gt;
&lt;br /&gt;
LL(k) анализ для обыкновенных грамматик, рекурсивный спуск.&lt;br /&gt;
Удаление пустых правил из LL-грамматик.&lt;br /&gt;
Языки, не представимые LL-грамматиками.&lt;br /&gt;
Теорема Розенкранца--Стирнса&lt;br /&gt;
о регулярном объединении LL-языков.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 11.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 12: LR(k) анализ и детерминированные языки ===&lt;br /&gt;
&lt;br /&gt;
Анализ через сдвиг и свёртку. Детерминированный конечный автомат, читающий стек. Класс LR(k) грамматик. Построение таблиц по методу SLR(k). Магазинные автоматы и их равносильность LR(k) грамматикам.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 13: Автоматы, управляемые входом; обобщённый LR ===&lt;br /&gt;
&lt;br /&gt;
Автоматы, управляемые входом (input-driven automata; visibly pushdown automata). Равносильность их детерминированных и недетерминированных разновидностей. Грамматики, управляемые входом.&lt;br /&gt;
Обобщённый LR: пример работы, оценки сложности.&lt;br /&gt;
&lt;br /&gt;
=== Вычислительная сложность разбора ===&lt;br /&gt;
&lt;br /&gt;
=== Разрешимость свойств грамматик ===&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
=== Задание 1: к 22 сентября ===&lt;br /&gt;
&lt;br /&gt;
# Построить обыкновенную грамматику для языка всех палиндромов: &amp;lt;math&amp;gt;L_1 = \{ w \in \{a, b\}^* \mid w=w^R \}&amp;lt;/math&amp;gt;. Показать, как строка &amp;lt;math&amp;gt;ababa&amp;lt;/math&amp;gt; выводится с помощью перезаписи строк. Показать, что эта же строка принадлежит наименьшему решению системы языковых уравнений, построив несколько шагов последовательности &amp;lt;math&amp;gt;\varphi^k(\bot)&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Доказать, что не существует обыкновенной грамматики для языка &amp;lt;math&amp;gt;L_2=\{ a^{k_1} b \ldots a^{k_n} b \mid n \geqslant 1, 0 \leqslant k_1 \leqslant \ldots \leqslant k_n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Построить конъюнктивную грамматику для языка &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Построить однозначную обыкновенную грамматику для языка &amp;lt;math&amp;gt;L_3=\{c^m a^{\ell_0}b \ldots a^{\ell_{m-1}}b a^{\ell_m}b \ldots a^{\ell_z}b d^n \mid m,n, \ell_i \geqslant 0, z \geqslant 1, \ell_m=n\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Является ли язык &amp;lt;math&amp;gt;L_3&amp;lt;/math&amp;gt; линейным конъюнктивным?&lt;br /&gt;
# Пусть &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; --- язык Дика над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Существует ли грамматика обёртывания пар для языка &amp;lt;math&amp;gt;L_4 = \{wc^{|w|} \mid w \in D\} = \{\varepsilon, abcc, aabbcccc, ababcccc, aaabbbcccccc, \ldots\}&amp;lt;/math&amp;gt;?&lt;br /&gt;
# Построить грамматику 1-го порядка для языка &amp;lt;math&amp;gt;\{ww \mid w \in \{a, b\}^*\}&amp;lt;/math&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Okhotin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=3938</id>
		<title>Формальные грамматики 2014</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=3938"/>
				<updated>2014-09-24T10:13:42Z</updated>
		
		<summary type="html">&lt;p&gt;Okhotin: /* LR(k) анализ и детерминированные языки */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Курс «Формальные грамматики»: сентябрь 2014 г., 15 лекций,&lt;br /&gt;
лектор: [http://users.utu.fi/aleokh/ Александр Охотин] (университет Турку, Финляндия).&lt;br /&gt;
&lt;br /&gt;
== Содержание лекций ==&lt;br /&gt;
&lt;br /&gt;
=== Лекция 1: Введение, регулярные языки ===&lt;br /&gt;
&lt;br /&gt;
Математические модели синтаксиса.&lt;br /&gt;
Формальные языки.&lt;br /&gt;
Детерминированные и недетерминированные конечные автоматы, регулярные выражения, их равносильность.&lt;br /&gt;
Примеры. Замкнутость относительно основных действий.&lt;br /&gt;
Нерегулярные языки.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 1.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 2: Обыкновенные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные формальные грамматики&lt;br /&gt;
(в терминологии Хомского, «бесконтекстные»).&lt;br /&gt;
Определения через перезапись строк,&lt;br /&gt;
через деревья разбора,&lt;br /&gt;
через логический вывод&lt;br /&gt;
и через языковые уравнения.&lt;br /&gt;
Равносильность определений.&lt;br /&gt;
Примеры грамматик.&lt;br /&gt;
Замкнутость относительно объединения, конкатенации, звёздочки,&lt;br /&gt;
а также циклического сдвига.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 2 3 4.pdf]]&lt;br /&gt;
(редакция от 16 сентября, добавлены все недостающие разделы)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 3: Свойства обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Замкнутость относительно пересечения с регулярными языками.&lt;br /&gt;
Языки, не представимые грамматиками.&lt;br /&gt;
Лемма накачки, лемма Огдена.&lt;br /&gt;
Грамматики над односимвольным алфавитом.&lt;br /&gt;
Нормальный вид Хомского.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 4: Представления обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Нормальный вид Грейбах.&lt;br /&gt;
Нормальный вид Розенкранца.&lt;br /&gt;
Теорема Хомского--Шюценберже о представлении обыкновенных языков через язык Дика.&lt;br /&gt;
Теорема Грейбах о «самом сложном языке».&lt;br /&gt;
&lt;br /&gt;
=== Лекция 5: Конъюнктивные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Определения конъюнктивных грамматик через логический вывод, перезапись термов, деревья разбора и языковые уравнения. Примеры грамматик: wcw, объявление перед использованием, степени четвёрки. Приведение к нормальному виду Хомского. Понятие о булевых грамматиках.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 5.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 6: Однозначные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Неоднозначность в естественных языках и языках программирования. Комбинаторные и аналитические методы доказательства существенной неоднозначности.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 6.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 7: Линейные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные линейные грамматики, лемма накачки для них.&lt;br /&gt;
Линейные конъюнктивные грамматики и клеточные автоматы, их равносильность.&lt;br /&gt;
Лемма Терье.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 7.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 8: Многокомпонентные грамматики, логика FO(LFP) ===&lt;br /&gt;
&lt;br /&gt;
Грамматики обёртывания пар и грамматики надстройки деревьев (tree-adjoining grammars).&lt;br /&gt;
Логика первого порядка над позициями в строке FO(LFP),&lt;br /&gt;
представление грамматик в этой логике.&lt;br /&gt;
Алгоритм проверки истинности формул логики FO(LFP)&lt;br /&gt;
как прототип алгоритмов синтаксического анализа.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 8.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 9: Табличные алгоритмы синтаксического анализа ===&lt;br /&gt;
&lt;br /&gt;
Алгоритм Кокка-Касами-Янгера.&lt;br /&gt;
Использование умножения матриц для ускорения алгоритма.&lt;br /&gt;
Умножение матриц по методу Штрассена и по методу Арлазарова и др.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 9 10.pdf]]&lt;br /&gt;
(всё есть, но многoe нуждаeтся в редактировании; новая редакция будет позднее)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 10: Табличные алгоритмы синтаксического анализа (окончание) ===&lt;br /&gt;
&lt;br /&gt;
Разбор через умножение матриц (алгоритм Валианта). Разбор однозначных грамматик за квадратичное время.&lt;br /&gt;
Разбор для грамматик обёртывания пар.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 11: Разбор сверху вниз ===&lt;br /&gt;
&lt;br /&gt;
LL(k) анализ для обыкновенных грамматик, рекурсивный спуск.&lt;br /&gt;
Удаление пустых правил из LL-грамматик.&lt;br /&gt;
Языки, не представимые LL-грамматиками.&lt;br /&gt;
Теорема Розенкранца--Стирнса&lt;br /&gt;
о регулярном объединении LL-языков.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 11.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 12: LR(k) анализ и детерминированные языки ===&lt;br /&gt;
&lt;br /&gt;
Анализ через сдвиг и свёртку. Детерминированный конечный автомат, читающий стек. Класс LR(k) грамматик. Построение таблиц по методу SLR(k). Магазинные автоматы и их равносильность LR(k) грамматикам.&lt;br /&gt;
&lt;br /&gt;
=== Обобщённый LR; автоматы, управляемые входом  ===&lt;br /&gt;
&lt;br /&gt;
=== Вычислительная сложность разбора ===&lt;br /&gt;
&lt;br /&gt;
=== Разрешимость свойств грамматик ===&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
=== Задание 1: к 22 сентября ===&lt;br /&gt;
&lt;br /&gt;
# Построить обыкновенную грамматику для языка всех палиндромов: &amp;lt;math&amp;gt;L_1 = \{ w \in \{a, b\}^* \mid w=w^R \}&amp;lt;/math&amp;gt;. Показать, как строка &amp;lt;math&amp;gt;ababa&amp;lt;/math&amp;gt; выводится с помощью перезаписи строк. Показать, что эта же строка принадлежит наименьшему решению системы языковых уравнений, построив несколько шагов последовательности &amp;lt;math&amp;gt;\varphi^k(\bot)&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Доказать, что не существует обыкновенной грамматики для языка &amp;lt;math&amp;gt;L_2=\{ a^{k_1} b \ldots a^{k_n} b \mid n \geqslant 1, 0 \leqslant k_1 \leqslant \ldots \leqslant k_n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Построить конъюнктивную грамматику для языка &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Построить однозначную обыкновенную грамматику для языка &amp;lt;math&amp;gt;L_3=\{c^m a^{\ell_0}b \ldots a^{\ell_{m-1}}b a^{\ell_m}b \ldots a^{\ell_z}b d^n \mid m,n, \ell_i \geqslant 0, z \geqslant 1, \ell_m=n\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Является ли язык &amp;lt;math&amp;gt;L_3&amp;lt;/math&amp;gt; линейным конъюнктивным?&lt;br /&gt;
# Пусть &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; --- язык Дика над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Существует ли грамматика обёртывания пар для языка &amp;lt;math&amp;gt;L_4 = \{wc^{|w|} \mid w \in D\} = \{\varepsilon, abcc, aabbcccc, ababcccc, aaabbbcccccc, \ldots\}&amp;lt;/math&amp;gt;?&lt;br /&gt;
# Построить грамматику 1-го порядка для языка &amp;lt;math&amp;gt;\{ww \mid w \in \{a, b\}^*\}&amp;lt;/math&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Okhotin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=3925</id>
		<title>Формальные грамматики 2014</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=3925"/>
				<updated>2014-09-24T06:54:48Z</updated>
		
		<summary type="html">&lt;p&gt;Okhotin: /* Содержание лекций */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Курс «Формальные грамматики»: сентябрь 2014 г., 15 лекций,&lt;br /&gt;
лектор: [http://users.utu.fi/aleokh/ Александр Охотин] (университет Турку, Финляндия).&lt;br /&gt;
&lt;br /&gt;
== Содержание лекций ==&lt;br /&gt;
&lt;br /&gt;
=== Лекция 1: Введение, регулярные языки ===&lt;br /&gt;
&lt;br /&gt;
Математические модели синтаксиса.&lt;br /&gt;
Формальные языки.&lt;br /&gt;
Детерминированные и недетерминированные конечные автоматы, регулярные выражения, их равносильность.&lt;br /&gt;
Примеры. Замкнутость относительно основных действий.&lt;br /&gt;
Нерегулярные языки.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 1.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 2: Обыкновенные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные формальные грамматики&lt;br /&gt;
(в терминологии Хомского, «бесконтекстные»).&lt;br /&gt;
Определения через перезапись строк,&lt;br /&gt;
через деревья разбора,&lt;br /&gt;
через логический вывод&lt;br /&gt;
и через языковые уравнения.&lt;br /&gt;
Равносильность определений.&lt;br /&gt;
Примеры грамматик.&lt;br /&gt;
Замкнутость относительно объединения, конкатенации, звёздочки,&lt;br /&gt;
а также циклического сдвига.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 2 3 4.pdf]]&lt;br /&gt;
(редакция от 16 сентября, добавлены все недостающие разделы)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 3: Свойства обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Замкнутость относительно пересечения с регулярными языками.&lt;br /&gt;
Языки, не представимые грамматиками.&lt;br /&gt;
Лемма накачки, лемма Огдена.&lt;br /&gt;
Грамматики над односимвольным алфавитом.&lt;br /&gt;
Нормальный вид Хомского.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 4: Представления обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Нормальный вид Грейбах.&lt;br /&gt;
Нормальный вид Розенкранца.&lt;br /&gt;
Теорема Хомского--Шюценберже о представлении обыкновенных языков через язык Дика.&lt;br /&gt;
Теорема Грейбах о «самом сложном языке».&lt;br /&gt;
&lt;br /&gt;
=== Лекция 5: Конъюнктивные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Определения конъюнктивных грамматик через логический вывод, перезапись термов, деревья разбора и языковые уравнения. Примеры грамматик: wcw, объявление перед использованием, степени четвёрки. Приведение к нормальному виду Хомского. Понятие о булевых грамматиках.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 5.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 6: Однозначные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Неоднозначность в естественных языках и языках программирования. Комбинаторные и аналитические методы доказательства существенной неоднозначности.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 6.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 7: Линейные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные линейные грамматики, лемма накачки для них.&lt;br /&gt;
Линейные конъюнктивные грамматики и клеточные автоматы, их равносильность.&lt;br /&gt;
Лемма Терье.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 7.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 8: Многокомпонентные грамматики, логика FO(LFP) ===&lt;br /&gt;
&lt;br /&gt;
Грамматики обёртывания пар и грамматики надстройки деревьев (tree-adjoining grammars).&lt;br /&gt;
Логика первого порядка над позициями в строке FO(LFP),&lt;br /&gt;
представление грамматик в этой логике.&lt;br /&gt;
Алгоритм проверки истинности формул логики FO(LFP)&lt;br /&gt;
как прототип алгоритмов синтаксического анализа.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 8.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 9: Табличные алгоритмы синтаксического анализа ===&lt;br /&gt;
&lt;br /&gt;
Алгоритм Кокка-Касами-Янгера.&lt;br /&gt;
Использование умножения матриц для ускорения алгоритма.&lt;br /&gt;
Умножение матриц по методу Штрассена и по методу Арлазарова и др.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 9 10.pdf]]&lt;br /&gt;
(всё есть, но многoe нуждаeтся в редактировании; новая редакция будет позднее)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 10: Табличные алгоритмы синтаксического анализа (окончание) ===&lt;br /&gt;
&lt;br /&gt;
Разбор через умножение матриц (алгоритм Валианта). Разбор однозначных грамматик за квадратичное время.&lt;br /&gt;
Разбор для грамматик обёртывания пар.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 11: Разбор сверху вниз ===&lt;br /&gt;
&lt;br /&gt;
LL(k) анализ для обыкновенных грамматик, рекурсивный спуск.&lt;br /&gt;
Удаление пустых правил из LL-грамматик.&lt;br /&gt;
Языки, не представимые LL-грамматиками.&lt;br /&gt;
Теорема Розенкранца--Стирнса&lt;br /&gt;
о регулярном объединении LL-языков.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 11.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== LR(k) анализ и детерминированные языки ===&lt;br /&gt;
&lt;br /&gt;
=== Обобщённый LR; автоматы, управляемые входом  ===&lt;br /&gt;
&lt;br /&gt;
=== Вычислительная сложность разбора ===&lt;br /&gt;
&lt;br /&gt;
=== Разрешимость свойств грамматик ===&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
=== Задание 1: к 22 сентября ===&lt;br /&gt;
&lt;br /&gt;
# Построить обыкновенную грамматику для языка всех палиндромов: &amp;lt;math&amp;gt;L_1 = \{ w \in \{a, b\}^* \mid w=w^R \}&amp;lt;/math&amp;gt;. Показать, как строка &amp;lt;math&amp;gt;ababa&amp;lt;/math&amp;gt; выводится с помощью перезаписи строк. Показать, что эта же строка принадлежит наименьшему решению системы языковых уравнений, построив несколько шагов последовательности &amp;lt;math&amp;gt;\varphi^k(\bot)&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Доказать, что не существует обыкновенной грамматики для языка &amp;lt;math&amp;gt;L_2=\{ a^{k_1} b \ldots a^{k_n} b \mid n \geqslant 1, 0 \leqslant k_1 \leqslant \ldots \leqslant k_n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Построить конъюнктивную грамматику для языка &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Построить однозначную обыкновенную грамматику для языка &amp;lt;math&amp;gt;L_3=\{c^m a^{\ell_0}b \ldots a^{\ell_{m-1}}b a^{\ell_m}b \ldots a^{\ell_z}b d^n \mid m,n, \ell_i \geqslant 0, z \geqslant 1, \ell_m=n\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Является ли язык &amp;lt;math&amp;gt;L_3&amp;lt;/math&amp;gt; линейным конъюнктивным?&lt;br /&gt;
# Пусть &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; --- язык Дика над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Существует ли грамматика обёртывания пар для языка &amp;lt;math&amp;gt;L_4 = \{wc^{|w|} \mid w \in D\} = \{\varepsilon, abcc, aabbcccc, ababcccc, aaabbbcccccc, \ldots\}&amp;lt;/math&amp;gt;?&lt;br /&gt;
# Построить грамматику 1-го порядка для языка &amp;lt;math&amp;gt;\{ww \mid w \in \{a, b\}^*\}&amp;lt;/math&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Okhotin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Formal_grammars_2014_lecture_11.pdf&amp;diff=3913</id>
		<title>Файл:Formal grammars 2014 lecture 11.pdf</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Formal_grammars_2014_lecture_11.pdf&amp;diff=3913"/>
				<updated>2014-09-23T20:21:07Z</updated>
		
		<summary type="html">&lt;p&gt;Okhotin: загружена новая версия «Файл:Formal grammars 2014 lecture 11.pdf»:&amp;amp;#32;Добавлена картинка, поясняющая мн-ва First и Follow.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Формальные грамматики 2014, материалы к лекции 11 (англ. яз.).&lt;/div&gt;</summary>
		<author><name>Okhotin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Formal_grammars_2014_lecture_11.pdf&amp;diff=3911</id>
		<title>Файл:Formal grammars 2014 lecture 11.pdf</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Formal_grammars_2014_lecture_11.pdf&amp;diff=3911"/>
				<updated>2014-09-23T20:04:27Z</updated>
		
		<summary type="html">&lt;p&gt;Okhotin: загружена новая версия «Файл:Formal grammars 2014 lecture 11.pdf»:&amp;amp;#32;Добавлено построение LL-таблиц.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Формальные грамматики 2014, материалы к лекции 11 (англ. яз.).&lt;/div&gt;</summary>
		<author><name>Okhotin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=3901</id>
		<title>Формальные грамматики 2014</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=3901"/>
				<updated>2014-09-23T16:05:11Z</updated>
		
		<summary type="html">&lt;p&gt;Okhotin: /* Лекция 11: Разбор сверху вниз */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Курс «Формальные грамматики»: сентябрь 2014 г., 15 лекций,&lt;br /&gt;
лектор: [http://users.utu.fi/aleokh/ Александр Охотин] (университет Турку, Финляндия).&lt;br /&gt;
&lt;br /&gt;
== Содержание лекций ==&lt;br /&gt;
&lt;br /&gt;
=== Лекция 1: Введение, регулярные языки ===&lt;br /&gt;
&lt;br /&gt;
Математические модели синтаксиса.&lt;br /&gt;
Формальные языки.&lt;br /&gt;
Детерминированные и недетерминированные конечные автоматы, регулярные выражения, их равносильность.&lt;br /&gt;
Примеры. Замкнутость относительно основных действий.&lt;br /&gt;
Нерегулярные языки.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 1.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 2: Обыкновенные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные формальные грамматики&lt;br /&gt;
(в терминологии Хомского, «бесконтекстные»).&lt;br /&gt;
Определения через перезапись строк,&lt;br /&gt;
через деревья разбора,&lt;br /&gt;
через логический вывод&lt;br /&gt;
и через языковые уравнения.&lt;br /&gt;
Равносильность определений.&lt;br /&gt;
Примеры грамматик.&lt;br /&gt;
Замкнутость относительно объединения, конкатенации, звёздочки,&lt;br /&gt;
а также циклического сдвига.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 2 3 4.pdf]]&lt;br /&gt;
(редакция от 16 сентября, добавлены все недостающие разделы)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 3: Свойства обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Замкнутость относительно пересечения с регулярными языками.&lt;br /&gt;
Языки, не представимые грамматиками.&lt;br /&gt;
Лемма накачки, лемма Огдена.&lt;br /&gt;
Грамматики над односимвольным алфавитом.&lt;br /&gt;
Нормальный вид Хомского.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 4: Представления обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Нормальный вид Грейбах.&lt;br /&gt;
Нормальный вид Розенкранца.&lt;br /&gt;
Теорема Хомского--Шюценберже о представлении обыкновенных языков через язык Дика.&lt;br /&gt;
Теорема Грейбах о «самом сложном языке».&lt;br /&gt;
&lt;br /&gt;
=== Лекция 5: Конъюнктивные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Определения конъюнктивных грамматик через логический вывод, перезапись термов, деревья разбора и языковые уравнения. Примеры грамматик: wcw, объявление перед использованием, степени четвёрки. Приведение к нормальному виду Хомского. Понятие о булевых грамматиках.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 5.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 6: Однозначные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Неоднозначность в естественных языках и языках программирования. Комбинаторные и аналитические методы доказательства существенной неоднозначности.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 6.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 7: Линейные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные линейные грамматики, лемма накачки для них.&lt;br /&gt;
Линейные конъюнктивные грамматики и клеточные автоматы, их равносильность.&lt;br /&gt;
Лемма Терье.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 7.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 8: Многокомпонентные грамматики, логика FO(LFP) ===&lt;br /&gt;
&lt;br /&gt;
Грамматики обёртывания пар и грамматики надстройки деревьев (tree-adjoining grammars).&lt;br /&gt;
Логика первого порядка над позициями в строке FO(LFP),&lt;br /&gt;
представление грамматик в этой логике.&lt;br /&gt;
Алгоритм проверки истинности формул логики FO(LFP)&lt;br /&gt;
как прототип алгоритмов синтаксического анализа.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 8.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 9: Табличные алгоритмы синтаксического анализа ===&lt;br /&gt;
&lt;br /&gt;
Алгоритм Кокка-Касами-Янгера.&lt;br /&gt;
Использование умножения матриц для ускорения алгоритма.&lt;br /&gt;
Умножение матриц по методу Штрассена и по методу Арлазарова и др.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 9 10.pdf]]&lt;br /&gt;
(всё есть, но многoe нуждаeтся в редактировании; новая редакция будет позднее)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 10: Табличные алгоритмы синтаксического анализа (окончание) ===&lt;br /&gt;
&lt;br /&gt;
Разбор через умножение матриц (алгоритм Валианта). Разбор однозначных грамматик за квадратичное время.&lt;br /&gt;
Разбор для грамматик обёртывания пар.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 11: Разбор сверху вниз ===&lt;br /&gt;
&lt;br /&gt;
LL(k) анализ для обыкновенных грамматик, рекурсивный спуск.&lt;br /&gt;
Удаление пустых правил из LL-грамматик.&lt;br /&gt;
Языки, не представимые LL-грамматиками.&lt;br /&gt;
Теорема Розенкранца--Стирнса&lt;br /&gt;
о регулярном объединении LL-языков.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 11.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== LR(k) анализ и детерминированные языки ===&lt;br /&gt;
&lt;br /&gt;
=== Оценки сложности синтаксического анализа ===&lt;br /&gt;
&lt;br /&gt;
=== Разрешимость свойств грамматик ===&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
=== Задание 1: к 22 сентября ===&lt;br /&gt;
&lt;br /&gt;
# Построить обыкновенную грамматику для языка всех палиндромов: &amp;lt;math&amp;gt;L_1 = \{ w \in \{a, b\}^* \mid w=w^R \}&amp;lt;/math&amp;gt;. Показать, как строка &amp;lt;math&amp;gt;ababa&amp;lt;/math&amp;gt; выводится с помощью перезаписи строк. Показать, что эта же строка принадлежит наименьшему решению системы языковых уравнений, построив несколько шагов последовательности &amp;lt;math&amp;gt;\varphi^k(\bot)&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Доказать, что не существует обыкновенной грамматики для языка &amp;lt;math&amp;gt;L_2=\{ a^{k_1} b \ldots a^{k_n} b \mid n \geqslant 1, 0 \leqslant k_1 \leqslant \ldots \leqslant k_n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Построить конъюнктивную грамматику для языка &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Построить однозначную обыкновенную грамматику для языка &amp;lt;math&amp;gt;L_3=\{c^m a^{\ell_0}b \ldots a^{\ell_{m-1}}b a^{\ell_m}b \ldots a^{\ell_z}b d^n \mid m,n, \ell_i \geqslant 0, z \geqslant 1, \ell_m=n\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Является ли язык &amp;lt;math&amp;gt;L_3&amp;lt;/math&amp;gt; линейным конъюнктивным?&lt;br /&gt;
# Пусть &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; --- язык Дика над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Существует ли грамматика обёртывания пар для языка &amp;lt;math&amp;gt;L_4 = \{wc^{|w|} \mid w \in D\} = \{\varepsilon, abcc, aabbcccc, ababcccc, aaabbbcccccc, \ldots\}&amp;lt;/math&amp;gt;?&lt;br /&gt;
# Построить грамматику 1-го порядка для языка &amp;lt;math&amp;gt;\{ww \mid w \in \{a, b\}^*\}&amp;lt;/math&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Okhotin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Formal_grammars_2014_lecture_11.pdf&amp;diff=3900</id>
		<title>Файл:Formal grammars 2014 lecture 11.pdf</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Formal_grammars_2014_lecture_11.pdf&amp;diff=3900"/>
				<updated>2014-09-23T16:04:46Z</updated>
		
		<summary type="html">&lt;p&gt;Okhotin: Формальные грамматики 2014, материалы к лекции 11 (англ. яз.).&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Формальные грамматики 2014, материалы к лекции 11 (англ. яз.).&lt;/div&gt;</summary>
		<author><name>Okhotin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=3877</id>
		<title>Формальные грамматики 2014</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2014&amp;diff=3877"/>
				<updated>2014-09-22T21:30:37Z</updated>
		
		<summary type="html">&lt;p&gt;Okhotin: /* Лекция 9: Табличные алгоритмы синтаксического анализа */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Курс «Формальные грамматики»: сентябрь 2014 г., 15 лекций,&lt;br /&gt;
лектор: [http://users.utu.fi/aleokh/ Александр Охотин] (университет Турку, Финляндия).&lt;br /&gt;
&lt;br /&gt;
== Содержание лекций ==&lt;br /&gt;
&lt;br /&gt;
=== Лекция 1: Введение, регулярные языки ===&lt;br /&gt;
&lt;br /&gt;
Математические модели синтаксиса.&lt;br /&gt;
Формальные языки.&lt;br /&gt;
Детерминированные и недетерминированные конечные автоматы, регулярные выражения, их равносильность.&lt;br /&gt;
Примеры. Замкнутость относительно основных действий.&lt;br /&gt;
Нерегулярные языки.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 1.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 2: Обыкновенные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные формальные грамматики&lt;br /&gt;
(в терминологии Хомского, «бесконтекстные»).&lt;br /&gt;
Определения через перезапись строк,&lt;br /&gt;
через деревья разбора,&lt;br /&gt;
через логический вывод&lt;br /&gt;
и через языковые уравнения.&lt;br /&gt;
Равносильность определений.&lt;br /&gt;
Примеры грамматик.&lt;br /&gt;
Замкнутость относительно объединения, конкатенации, звёздочки,&lt;br /&gt;
а также циклического сдвига.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 2 3 4.pdf]]&lt;br /&gt;
(редакция от 16 сентября, добавлены все недостающие разделы)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 3: Свойства обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Замкнутость относительно пересечения с регулярными языками.&lt;br /&gt;
Языки, не представимые грамматиками.&lt;br /&gt;
Лемма накачки, лемма Огдена.&lt;br /&gt;
Грамматики над односимвольным алфавитом.&lt;br /&gt;
Нормальный вид Хомского.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 4: Представления обыкновенных грамматик ===&lt;br /&gt;
&lt;br /&gt;
Нормальный вид Грейбах.&lt;br /&gt;
Нормальный вид Розенкранца.&lt;br /&gt;
Теорема Хомского--Шюценберже о представлении обыкновенных языков через язык Дика.&lt;br /&gt;
Теорема Грейбах о «самом сложном языке».&lt;br /&gt;
&lt;br /&gt;
=== Лекция 5: Конъюнктивные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Определения конъюнктивных грамматик через логический вывод, перезапись термов, деревья разбора и языковые уравнения. Примеры грамматик: wcw, объявление перед использованием, степени четвёрки. Приведение к нормальному виду Хомского. Понятие о булевых грамматиках.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 5.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 6: Однозначные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Неоднозначность в естественных языках и языках программирования. Комбинаторные и аналитические методы доказательства существенной неоднозначности.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 6.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 7: Линейные грамматики ===&lt;br /&gt;
&lt;br /&gt;
Обыкновенные линейные грамматики, лемма накачки для них.&lt;br /&gt;
Линейные конъюнктивные грамматики и клеточные автоматы, их равносильность.&lt;br /&gt;
Лемма Терье.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 7.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 8: Многокомпонентные грамматики, логика FO(LFP) ===&lt;br /&gt;
&lt;br /&gt;
Грамматики обёртывания пар и грамматики надстройки деревьев (tree-adjoining grammars).&lt;br /&gt;
Логика первого порядка над позициями в строке FO(LFP),&lt;br /&gt;
представление грамматик в этой логике.&lt;br /&gt;
Алгоритм проверки истинности формул логики FO(LFP)&lt;br /&gt;
как прототип алгоритмов синтаксического анализа.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lecture 8.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Лекция 9: Табличные алгоритмы синтаксического анализа ===&lt;br /&gt;
&lt;br /&gt;
Алгоритм Кокка-Касами-Янгера.&lt;br /&gt;
Использование умножения матриц для ускорения алгоритма.&lt;br /&gt;
Умножение матриц по методу Штрассена и по методу Арлазарова и др.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Formal grammars 2014 lectures 9 10.pdf]]&lt;br /&gt;
(всё есть, но многoe нуждаeтся в редактировании; новая редакция будет позднее)&lt;br /&gt;
&lt;br /&gt;
=== Лекция 10: Табличные алгоритмы синтаксического анализа (окончание) ===&lt;br /&gt;
&lt;br /&gt;
Разбор через умножение матриц (алгоритм Валианта). Разбор однозначных грамматик за квадратичное время.&lt;br /&gt;
Разбор для грамматик обёртывания пар.&lt;br /&gt;
&lt;br /&gt;
=== Лекция 11: Разбор сверху вниз ===&lt;br /&gt;
&lt;br /&gt;
LL(k) анализ для обыкновенных грамматик, рекурсивный спуск.&lt;br /&gt;
Удаление пустых правил из LL-грамматик.&lt;br /&gt;
Языки, не представимые LL-грамматиками.&lt;br /&gt;
Теорема Розенкранца--Стирнса&lt;br /&gt;
о регулярном объединении LL-языков.&lt;br /&gt;
&lt;br /&gt;
=== LR(k) анализ и детерминированные языки ===&lt;br /&gt;
&lt;br /&gt;
=== Оценки сложности синтаксического анализа ===&lt;br /&gt;
&lt;br /&gt;
=== Разрешимость свойств грамматик ===&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
=== Задание 1: к 22 сентября ===&lt;br /&gt;
&lt;br /&gt;
# Построить обыкновенную грамматику для языка всех палиндромов: &amp;lt;math&amp;gt;L_1 = \{ w \in \{a, b\}^* \mid w=w^R \}&amp;lt;/math&amp;gt;. Показать, как строка &amp;lt;math&amp;gt;ababa&amp;lt;/math&amp;gt; выводится с помощью перезаписи строк. Показать, что эта же строка принадлежит наименьшему решению системы языковых уравнений, построив несколько шагов последовательности &amp;lt;math&amp;gt;\varphi^k(\bot)&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Доказать, что не существует обыкновенной грамматики для языка &amp;lt;math&amp;gt;L_2=\{ a^{k_1} b \ldots a^{k_n} b \mid n \geqslant 1, 0 \leqslant k_1 \leqslant \ldots \leqslant k_n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Построить конъюнктивную грамматику для языка &amp;lt;math&amp;gt;L_2&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Построить однозначную обыкновенную грамматику для языка &amp;lt;math&amp;gt;L_3=\{c^m a^{\ell_0}b \ldots a^{\ell_{m-1}}b a^{\ell_m}b \ldots a^{\ell_z}b d^n \mid m,n, \ell_i \geqslant 0, z \geqslant 1, \ell_m=n\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Является ли язык &amp;lt;math&amp;gt;L_3&amp;lt;/math&amp;gt; линейным конъюнктивным?&lt;br /&gt;
# Пусть &amp;lt;math&amp;gt;D=\{\varepsilon, ab, aabb, abab, aaabbb, \ldots\}&amp;lt;/math&amp;gt; --- язык Дика над алфавитом &amp;lt;math&amp;gt;\{a, b\}&amp;lt;/math&amp;gt;. Существует ли грамматика обёртывания пар для языка &amp;lt;math&amp;gt;L_4 = \{wc^{|w|} \mid w \in D\} = \{\varepsilon, abcc, aabbcccc, ababcccc, aaabbbcccccc, \ldots\}&amp;lt;/math&amp;gt;?&lt;br /&gt;
# Построить грамматику 1-го порядка для языка &amp;lt;math&amp;gt;\{ww \mid w \in \{a, b\}^*\}&amp;lt;/math&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Okhotin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Formal_grammars_2014_lectures_9_10.pdf&amp;diff=3876</id>
		<title>Файл:Formal grammars 2014 lectures 9 10.pdf</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Formal_grammars_2014_lectures_9_10.pdf&amp;diff=3876"/>
				<updated>2014-09-22T21:27:57Z</updated>
		
		<summary type="html">&lt;p&gt;Okhotin: Формальные грамматики 2014, материалы к лекциям 9--10 (англ. яз).&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Формальные грамматики 2014, материалы к лекциям 9--10 (англ. яз).&lt;/div&gt;</summary>
		<author><name>Okhotin</name></author>	</entry>

	</feed>