Конспект лекций москва 2004 удк 519. 713(075)+519. 76(075) ббк 22. 18я7
Вид материала | Конспект |
- Учебное пособие тверь 2008 удк 519. 876 (075. 8 + 338 (075. 8) Ббк 3817я731-1 + 450., 2962.9kb.
- Тексты лекций Москва 2008 удк 339. 9(075. 8) Ббк 65. 5я73-2, 1528.45kb.
- Программно-технический комплекс Учебное пособие Новочеркасск юргту (нпи) 2010. Удк, 3911.73kb.
- Удк 152. 27 (075. 8) + 157 (075. 8) + 152. 3 (075, 60.12kb.
- Краткий конспект лекций Кемерово 2002 удк: 744 (075), 1231.26kb.
- Методические указания по курсу Новосибирск 2004 ббк ю 937. 4 Удк 152. 26 (075), 802.63kb.
- Москва 2011 ббк 63. 3 (2)я 7 к 90 удк 947 (075) История России, 110.08kb.
- Курс лекций Гродно 2005 удк 631. 1 (075., 1193.16kb.
- Удк 070(075. 8) Ббк 76. 01я73, 5789.66kb.
- Удк 339. 9(470)(075. 8) Ббк, 7329.81kb.
9. Преобразования КС-грамматик
В данном разделе приводятся такие преобразования грамматик, которые не выводят нас из класса эквивалентности, т.е. грамматика G1 таким образом преобразуется в грамматику G2, чтобы L(G1)=L(G2).
9.1 Устранение непроизводящих правил
Непроизводящими правилами грамматики называются правила, применение которых никогда не приводит к построению терминальных цепочек.
Например, пусть правила для нетерминала А имеют следующий вид и других правил для А нет:
АА А В А
В этом случае, появившись в цепочке, нетерминал А никогда не будет заменен терминальной цепочкой. Естественно, в реальности ситуации бывают не столь простые.
Алгоритм устранения непроизводящих нетерминалов.
Пусть дана грамматика G = < VN, VT,S, R>, строится эквивалентная грамматика без непроизводящих символов G’ = < VN’, VT, S, R’>.
- Построение множества производящих нетерминалов NR:
- Строится множество NR1 = {A/ Aj, jVT*}
- Последовательно строятся множества NRi+1={ A/ Aj, j(NRiVT)*}
- Построение продолжается до тех пор, пока не получим NRi+1= NRi или же NRi= VN. Тогда NR = NRi.
- Строится множество NR1 = {A/ Aj, jVT*}
- Исключаем из грамматики все правила, в которых присутствуют нетерминалы из VN\ NR.
Н

S ABBC;
A AAAB;
B bBa;
СсСd AC.
Построим множество NR. NR1={B,C}, NR2={S, B, C}, NR3= NR2= =NR.
Правила преобразованной грамматики:

B bBa;
СсСd .
9.2. Устранение недостижимых нетерминалов
Недостижимыми нетерминалами называются нетерминалы, которые никогда не могут быть построены при построении вывода, начиная с начального символа грамматики.
Следует отметить, что такие нетерминалы в грамматиках встречаются в основном тогда, когда исключены некоторые непроизводящие символы, т.е. недостижимым нетерминал становится чаще всего после исключения некоторых непроизводящих символов. Например, если в грамматике правила для нетерминала А: АА А В А, и нетерминал В не встречается в других правых частях правил грамматики, то в этом случае, после устранения нетерминала А нетерминал В становится недостижимым, и, следовательно, его можно исключить из грамматики без изменения порождаемого ей языка. Построение множества недостижимых нетерминалов похоже на построение множества непроизводящих нетерминалов: строится множество всех достижимых нетерминалов, а затем исключаются все остальные нетерминалы грамматики.
Алгоритм преобразования грамматики.
Строится грамматика, в которой используются только достижимые нетерминалы (множество достижимых нетерминалов – D) , выглядит следующим образом:
Пусть дана грамматика G=< VN, VT, S, R>, строится эквивалентная грамматика без недостижимых нетерминалов G’ =< VN’, VT, S, R’>.
- Построение множества достижимых нетерминалов:
- Начальное значение D0=S.
- Итерационное построение множества D:
- Начальное значение D0=S.
Di+1= Di { A/B AR B Di}
- Построение продолжается до тех пор, пока Di+1= Di или Di+1= =VN, в обоих случаях VN’= Di+1,
- Построение множества правил преобразованной грамматики:
R’={ Ri / Ri=(A), A VN’, ( VN’ VT)*}. Построенная грамматика не содержит недостижимых нетерминалов.
Например, рассмотрим грамматику G15 с множеством правил
S A C B C;
A

D aA D A;
F b F;
B bBa;
СсСd.
Тогда здесь A и D непроизводящие нетерминалы, после их устранения нетерминал F становится недостижимым, поэтому нетерминалы A, D и F могут быть исключены из грамматики с сохранением языка, порождаемого грамматикой.
Правила преобразованной грамматики:
S

B bBa
СсСd