Редактирование: Конструирование Компиляторов, Определения

Материал из eSyr's wiki.

Перейти к: навигация, поиск

Внимание: Вы не представились системе. Ваш IP-адрес будет записан в историю изменений этой страницы.

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

Текущая версия Ваш текст
Строка 1: Строка 1:
* Авторы рукописной версии: Синдеев Михаил (оригинал), Комаров Сергей (обработка)
* Авторы рукописной версии: Синдеев Михаил (оригинал), Комаров Сергей (обработка)
 +
* Обработанная рукописная версия: http://www.komserg.ru/botva/konstr.rar
== Цепочка ==
== Цепочка ==
Строка 12: Строка 13:
'''Грамматика''' — G = (N, T, P, S)
'''Грамматика''' — G = (N, T, P, S)
* N — множество нетерминальных символов (напр. A, B, C...)
* N — множество нетерминальных символов (напр. A, B, C...)
-
* T (иногда E) — алфавит терминальных символов (N ∩ T = ∅)
+
* T (иногда E) — алфавит терминальных символов (N ∪ T = ∅)
* P — конечное множество правил вывода
* P — конечное множество правил вывода
** P = {&alpha; &rarr; &beta; | &alpha; &isin; (N &cup; T)<sup>+</sup>; &beta; &isin; (N &cup; T)*}
** P = {&alpha; &rarr; &beta; | &alpha; &isin; (N &cup; T)<sup>+</sup>; &beta; &isin; (N &cup; T)*}
Строка 18: Строка 19:
== Сентенциальная форма ==
== Сентенциальная форма ==
-
'''Сентенциальная форма''' — последовательность символов (терминалов и нетерминалов), выводимых из начального символа (аксиомы)
+
'''Сентенциальная форма''' — последовательность символов (терминалов и нетерминалов), выводимых из аксиомы
== Язык, порождённый грамматикой ==
== Язык, порождённый грамматикой ==
Строка 26: Строка 27:
== Иерархия по Хомскому ==
== Иерархия по Хомскому ==
-
* '''0:''' произвольные грамматики
+
* 0: произвольные грамматики
-
* '''1:''' неукорачивающие (контекстно-зависимые) грамматики
+
* 1: неукорачивающие (контекстно-зависимые) грамматики
** &alpha; &rarr; &beta;, |&alpha;| &le; |&beta;|
** &alpha; &rarr; &beta;, |&alpha;| &le; |&beta;|
** допускается S &rarr; &epsilon;, если S не входит ни в какую правую часть
** допускается S &rarr; &epsilon;, если S не входит ни в какую правую часть
-
* '''2:''' контекстно-свободные
+
* 2: контекстно-свободные
** A &rarr; &alpha;, &alpha; &isin; (N &cup; T)*
** A &rarr; &alpha;, &alpha; &isin; (N &cup; T)*
-
* '''3:''' праволинейные (A &rarr; w, A &rarr; wB, w &isin; T*), леволинейные (A &rarr; w, A &rarr; Bw, w &isin; T*),
+
* 3: праволинейные (A &rarr; w, A &rarr; wB, w &isin; T*), леволинейные (A &rarr; w, A &rarr; Bw, w &isin; T*),
Из определения следует, что Z<sub>0</sub> &supe; Z<sub>1</sub> &supe; Z<sub>2</sub> &supe; Z<sub>3</sub>.
Из определения следует, что Z<sub>0</sub> &supe; Z<sub>1</sub> &supe; Z<sub>2</sub> &supe; Z<sub>3</sub>.
-
Существует теорема, которая доказывает (конструктивно, путём построения соответствующих грамматик), что Z<sub>0</sub> &sup; Z<sub>1</sub> &sup; Z<sub>2</sub> &sup; Z<sub>3</sub>.
+
Существует теорема, которая доказывает, что Z<sub>0</sub> &sup; Z<sub>1</sub> &sup; Z<sub>2</sub> &sup; Z<sub>3</sub>.
== Машина Тьюринга ==
== Машина Тьюринга ==
Строка 60: Строка 61:
== Лемма о разрастании ==
== Лемма о разрастании ==
-
Если язык L — регулярный, то &exist; k: &forall; w &isin; L, |w| &ge; k | w = xyz, 0 < |y|, |xy| &le; k, xy<sup>i</sup>z &isin; L, &forall; i &ge; 0
+
Если язык L — регулярный, то &exist; k: &forall; w &isin; L, |w| &ge; k | w = xyz, 0 < |y| &le; k, xy<sup>i</sup>z &isin; L, &forall; i &ge; 0
== Неоднозначная грамматика ==
== Неоднозначная грамматика ==
Строка 79: Строка 80:
== Расширенный магазинный автомат ==
== Расширенный магазинный автомат ==
- 
-
Отличается от магазинного автомата только областью определения D.
 
- 
'''Расширенный магазинный автомат''' — M = (Q, T, Г, D, q<sub>0</sub>, z<sub>0</sub>, F)
'''Расширенный магазинный автомат''' — M = (Q, T, Г, D, q<sub>0</sub>, z<sub>0</sub>, F)
* Q — конечное множество состояний
* Q — конечное множество состояний
Строка 92: Строка 90:
== Грамматика в нормальной форме Хомского ==
== Грамматика в нормальной форме Хомского ==
-
 
+
'''Грамматика''' находится '''в нормальной форме Хомского''', если правила вывода имеют вид:
-
Грамматика находится '''в нормальной форме Хомского''', если правила вывода имеют вид:
+
* A &rarr; BC; B, C &isin; N
-
# Либо A &rarr; BC; A, B, C — нетерминалы.
+
* A &rarr; a
-
# Либо A &rarr; a; a — терминал.
+
* S &rarr; &epsilon; (если &epsilon; &isin; L; S не входит ни в одну правую часть)
-
# Либо S &rarr; &epsilon; и в этом случае S не встречается в правых частях правил.
+
== Лемма о разрастании (для контекстно-свободного языка) ==
== Лемма о разрастании (для контекстно-свободного языка) ==
-
Для любого контекстно-свободного языка L &exist; l, k: &forall; &alpha; &isin; L, |&alpha;| &gt; l, &alpha; = uvwxy
+
Для любого контекстно-свободного языка L &exist; l, k: &alpha; &isin; L, |&alpha;| &gt; l, &alpha; = uvwxy
# |vwx| &le; k
# |vwx| &le; k
# vx &ne; &epsilon;
# vx &ne; &epsilon;
Строка 112: Строка 109:
x — '''непорождающий символ''', если из него нельзя вывести терминальную цепочку
x — '''непорождающий символ''', если из него нельзя вывести терминальную цепочку
-
x — '''непорождающий символ''', если не существует вывода x &rArr;* w, w &isin; T*
+
x — '''непорождающий символ''', если из не существует вывода x &rArr;* w, w &isin; T*
== Бесполезный символ ==
== Бесполезный символ ==
Строка 129: Строка 126:
## PQ (конкатенация, то есть множество таких pq, что p &isin; P, q &isin; Q)
## PQ (конкатенация, то есть множество таких pq, что p &isin; P, q &isin; Q)
## P* (итерация: P* = {&epsilon;} &cup; P &cup; PP &cup; PPP &cup; &hellip;)
## P* (итерация: P* = {&epsilon;} &cup; P &cup; PP &cup; PPP &cup; &hellip;)
-
# Ничто другое не является регулярным множеством в алфавите T
+
# Ничто друге не является регулярным множеством в алфавите T
== Регулярное выражение ==
== Регулярное выражение ==
Строка 135: Строка 132:
== Длина пути от листа к корню ==
== Длина пути от листа к корню ==
-
'''Длиной пути от листа к корню''' называется число вершин в пути от листа до корня, считая сам лист и сам корень (то есть, &lt;число&nbsp;дуг в пути&gt; + 1)
+
'''Длиной пути от листа к корню''' называется число вершин в этом пути, считая сам лист (то есть, &lt;число&nbsp;дуг&gt; + 1)
== Высота дерева ==
== Высота дерева ==

Пожалуйста, обратите внимание, что все ваши добавления могут быть отредактированы или удалены другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. eSyr's_wiki:Авторское право).
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

Шаблоны, использованные на этой странице:

Личные инструменты
Разделы