Редактирование: Конструирование Компиляторов, Теоретический минимум (2009)

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

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

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

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

Текущая версия Ваш текст
Строка 1: Строка 1:
''см. также [[Конструирование Компиляторов, Теоретический минимум|ответы на вопросы теоретического минимума 2007 года]], [[Конструирование Компиляторов, Определения|список определений]].''
''см. также [[Конструирование Компиляторов, Теоретический минимум|ответы на вопросы теоретического минимума 2007 года]], [[Конструирование Компиляторов, Определения|список определений]].''
-
== Алфавит ==
 
- 
-
Алфавит - конечное множество символов
 
- 
== Определение грамматики ==
== Определение грамматики ==
-
Грамматика <math>~G = (N,T,P,S)</math> - четверка множеств, где
+
Грамматкиа G = (N,T,P,S) - четверка множеств, где
-
* <math>~N</math> - алфавит нетерминальных символов
+
* N - алфавит нетерминальных символов
-
* <math>~T</math> - алфавит терминальных символов, <math>N \cap T = \empty</math>;
+
* T - алфавит терминальных символов, пересечение N и T = &empty;
-
* <math>~P</math> - множество правил вида <math>\alpha \rarr \beta, \alpha \in ( N \cup T)^*N(N \cup T)^*, \beta \in (N \cup T)^*</math>
+
* P - множество правил вида &alpha; &rarr; &beta;, &alpha; &isin; ( N &cup; T)*N(N &cup; T)*, &beta; &isin; (N &cup; T)*
-
* <math>S \in N</math> - начальный символ или аксиома грамматики
+
* S &isin; N - начальный символ или аксиома грамматики
== Определение грамматик типа 0 по Хомскому ==
== Определение грамматик типа 0 по Хомскому ==
-
Если на грамматику <math>~G = (N, T, P, S)</math> не накладываются никакие ограничения, то её называют грамматикой типа 0, или грамматикой без ограничений.
+
Если на грамматику G = (N, T, P, S) не накладываются никакие ограничения, то её называют грамматикой типа 0, или грамматикой без ограничений.
== Определение грамматик типа 1 (неукорачивающих) по Хомскому ==
== Определение грамматик типа 1 (неукорачивающих) по Хомскому ==
Если
Если
-
# Каждое правило грамматики, кроме <math>S \rarr \epsilon </math> , имеет вид <math>\alpha \rarr \beta, |\alpha| \le |\beta|</math>
+
# Каждое правило грамматики, кроме S &rarr; &epsilon;, имеет вид &alpha; &rarr; &beta;, |&alpha;| &le; |&beta;|
-
# В том случае, когда <math>S \rarr \epsilon \in P</math>, символ <math>~S</math> не встречается в правых частях правил
+
# В том случае, когда S &rarr; &epsilon; &isin; P, символ S не встречается в правых частях правил
то грамматику называют грамматикой типа 1, или неукорачивающей.
то грамматику называют грамматикой типа 1, или неукорачивающей.
- 
-
== Грамматика типа 2 (Контекстно-свободная, КС) по Хомскому ==
 
- 
-
Грамматика типа 2 (Контекстно-свободная, КС) - грамматика, где каждое правило <math>p \in P</math> имеет вид <math>A \rarr \alpha</math>, где <math> A \in N, \alpha \in (N \cup T)^*</math>
 
- 
-
== Грамматика типа 3 (Праволинейная) по Хомскому ==
 
- 
-
Грамматика типа 3 (Праволинейная) - грамматика, где <math> \forall p \in P </math> имеет вид либо <math> A \rarr xB </math>, либо <math> A \rarr x </math>, где <math> A,B \in N, x \in T^* </math>
 
== Определение детерминированной машины Тьюринга ==
== Определение детерминированной машины Тьюринга ==
Строка 38: Строка 26:
* F &sube; Q — множество конечных состояний
* F &sube; Q — множество конечных состояний
-
 
+
== Определение недетерминированной машины Тьюринга ==
 +
'''Недетерминированная машина Тьюринга''' — T<sub>m</sub> = (Q, Г, &Sigma;, D, q<sub>0</sub>, F)
 +
* Q — конечное множество состояний
 +
* Г — конечное множество символов (конечный алфавит)
 +
* &Sigma; — входной алфавит, &Sigma; &sube; Г\{b} (b - пустой символ)
 +
* D — правила перехода
 +
** D: (Q\F) &times; Г &rarr; 2<sup>Q &times; Г &times; {L, R}</sup>
 +
* q<sub>0</sub> &isin; Q — начальное состояние
 +
* F &sube; Q — множество конечных состояний
== Определение конфигурации машины Тьюринга ==
== Определение конфигурации машины Тьюринга ==
Строка 58: Строка 54:
'''Регулярное множество''' в алфавите T определяется следующим образом:
'''Регулярное множество''' в алфавите T определяется следующим образом:
-
* <math> \varnothing </math> — регулярное множество в алфавите T
+
* {} (пустое множество) — регулярное множество в алфавите T
-
* <math> ~\{a\} </math> — регулярное множество в алфавите T для каждого a &isin; T
+
* {a} — регулярное множество в алфавите T для каждого a &isin; T
-
* <math> ~\{\epsilon\} </math> — регулярное множество в алфавите T
+
* {&epsilon;} — регулярное множество в алфавите T
-
* Если P и Q — регулярные множества в алфавите T, то регулярны множества
+
* Если P и Q — регулярные множества в алфавите T, то таковы же и множества
-
** <math>~P \cup Q</math> (объединение)
+
** P &cup; Q (объединение)
-
** <math>~PQ</math> (конкатенация, <math>\{ pq | p \in P, q \in Q\}</math>)
+
** PQ (конкатенация, то есть множество таких pq, что p &isin; P, q &isin; Q)
-
** <math>~P^*</math> (итерация: <math>P^* = \{\epsilon\} \cup P \cup PP \cup PPP \cup ...)</math>
+
** P* (итерация: P* = {&epsilon;} &cup; P &cup; PP &cup; PPP &cup; &hellip;)
* Ничто другое не является регулярным множеством в алфавите T
* Ничто другое не является регулярным множеством в алфавите T
Строка 106: Строка 102:
== Объяснить разницу между недетерминированным и детерминированным конечным автоматом ==
== Объяснить разницу между недетерминированным и детерминированным конечным автоматом ==
Недетерминированный конечный автомат является обобщением детерминированного. Существует теорема, гласящая, что «Любой недетерминированный конечный автомат может быть преобразован в детерминированный так, чтобы их языки совпадали» (такие автоматы называются эквивалентными).
Недетерминированный конечный автомат является обобщением детерминированного. Существует теорема, гласящая, что «Любой недетерминированный конечный автомат может быть преобразован в детерминированный так, чтобы их языки совпадали» (такие автоматы называются эквивалентными).
-
В детерменированном автомате из одного состояния допускается не более одного перехода для каждого символа алфавита, в недетерменированном - произвольное количество. Кроме того, в НКА возможны эпсилон-переходы.
+
Анатолий // Кроме меня это вообще никто не читает и не понимает что это бред??
 +
Автоматы определяются переходами между состояниями (q1,w1) -> (q2,w2) и при таком перехода для детерминированного w1=aw2 где a - символ алфавита. Для НEдетерминированного возможен случай w1=w2.
 +
То есть, говоря простым языком в детерминированным нет епселон переходов между состояниями автомата
== Определение конфигурации конечного автомата ==
== Определение конфигурации конечного автомата ==
Строка 186: Строка 184:
== Определение эквивалентных состояний ДКА ==
== Определение эквивалентных состояний ДКА ==
-
Два состояния <math>q_i</math> и <math>q_j</math> называются эквивалентными (<math>q_i</math> ~ <math>q_j</math>), если <math>\forall z\in</math> T* верно, что <math>D(q_i, z)\in T \Leftrightarrow D(q_j, z)\in T</math>
 
- 
== Определение различимых состояний ДКА ==
== Определение различимых состояний ДКА ==
Строка 209: Строка 205:
== Определение сентенциальной формы ==
== Определение сентенциальной формы ==
-
'''Сентенциальная форма''' — цепочка над алфавитом <math> (T \cup N)^* </math>, выводимая из аксиомы грамматики
+
'''Сентенциальная форма''' — цепочка (состоящая, в общем случае, из терминалов и нетерминалов), выводимая из аксиомы грамматики
== Определение однозначной КС-грамматики ==
== Определение однозначной КС-грамматики ==
Строка 262: Строка 258:
== Определение нормальной формы Хомского для КС-грамматики ==
== Определение нормальной формы Хомского для КС-грамматики ==
-
говорят что КС-грамматика находится в нормальной форме Хомского если каждое правило имеет вид:
+
говорят что КС-грамматика находится в нормальной форме Холмского если каждое правило имеет вид:
# Либо A &rarr; BC, A,B,C - нетерминалы
# Либо A &rarr; BC, A,B,C - нетерминалы
# либо A &rarr; &alpha;, &alpha; - терминал
# либо A &rarr; &alpha;, &alpha; - терминал
Строка 293: Строка 289:
== Определение LR(1) грамматики ==
== Определение LR(1) грамматики ==
-
Грамматика называется LR(1), если из условий
 
- 
-
1. <math>S' =>_r uAw =>_r uvw</math>,
 
- 
-
2. <math>S' =>_r zBx =>_r uvy</math>,
 
- 
-
3. FIRST(w) = FIRST(y)
 
- 
-
следует, что uAy = zBx (т.е. u = z, A = B и x = y).
 
== Какого типа конфликты могут появиться в канонической системе множеств LR(1) ситуаций? ==
== Какого типа конфликты могут появиться в канонической системе множеств LR(1) ситуаций? ==
Строка 314: Строка 301:
Перенести верхний символ входа в магазин, занести наверх магазина состояние action(предыдущее состояние, взятый символ)
Перенести верхний символ входа в магазин, занести наверх магазина состояние action(предыдущее состояние, взятый символ)
== Что такое основа правой сентенциальной формы ==
== Что такое основа правой сентенциальной формы ==
- 
-
Основа правой сентенциальной формы z - это правило вывода <math>A -> v</math> и позиция в z, в которой может быть найдена цепочка v такие, что в результате замены v на A получается предыдущая сентенциальная форма в правостороннем выводе z. Таким образом, если <math>S =>_r avb</math>, то <math>A -> v</math> в позиции, следующей за a - это основа цепочки <math>avb</math>. Подцепочка b справа от основы содержит только терминальные символы.
 
{{Курс Конструирование Компиляторов}}
{{Курс Конструирование Компиляторов}}

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

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

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