ВУЗ:
Составители:
74
321
32
3
id*idid
id*id
id
+⇒
+⇒
+⇒
+⇒
+⇒
rm
rm
rm
rm
rm
E
*EE
E*EE
EEE
Для удобства мы пометили подстрочными индексами id и подчеркнули
основу каждой правосентенциальной формы. Например, id
1
представляет
собой основу право-сентенциальной формы id
1
+id
2
*id
3
, поскольку id
является правой частью продукции Е→ id, и замена id
1
на E приведет к
предыдущей правосентенциальной форме E+id
2
*id
3
. Обратите внимание на
то, что строка справа от основы состоит только из терминальных символов.
Поскольку грамматика (13.1) неоднозначна, имеется еще одно правое
порождение той же строки:
321
32
3
3
id*idid
id*id
id
id
+⇒
+⇒
+⇒
⇒
⇒
rm
rm
rm
rm
rm
E
*EE
*E
E*EE
Рассмотрим правосентенциальную форму E+E*id
3
. В этом порождении
E+E – основа E+E*id
3
, в то время как в ранее представленном порождении ее
основой является id
3
.
Первое порождение дает оператору * больший приоритет, чем
оператору +, в то время как во втором порождении выше приоритет
оператора +.
Обрезка основ
Обращенное правое порождение может быть получено посредством
"обрезки основ
". Мы начинаем процесс со строки терминалов w, которую
хотим проанализировать. Если w – предложение рассматриваемой
74 E⇒E + E rm ⇒ E + E* E rm ⇒ E + E * id 3 rm ⇒ E + id 2 * id 3 rm ⇒ id1 + id 2 * id 3 rm Для удобства мы пометили подстрочными индексами id и подчеркнули основу каждой правосентенциальной формы. Например, id1 представляет собой основу право-сентенциальной формы id1+id2*id3, поскольку id является правой частью продукции Е→ id, и замена id1 на E приведет к предыдущей правосентенциальной форме E+id2*id3. Обратите внимание на то, что строка справа от основы состоит только из терминальных символов. Поскольку грамматика (13.1) неоднозначна, имеется еще одно правое порождение той же строки: E ⇒ E* E rm ⇒ E * id 3 rm ⇒ E + E * id 3 rm ⇒ E + id 2 * id 3 rm ⇒ id1 + id 2 * id 3 rm Рассмотрим правосентенциальную форму E+E*id3. В этом порождении E+E – основа E+E*id3, в то время как в ранее представленном порождении ее основой является id3. Первое порождение дает оператору * больший приоритет, чем оператору +, в то время как во втором порождении выше приоритет оператора +. Обрезка основ Обращенное правое порождение может быть получено посредством "обрезки основ". Мы начинаем процесс со строки терминалов w, которую хотим проанализировать. Если w – предложение рассматриваемой
Страницы
- « первая
- ‹ предыдущая
- …
- 72
- 73
- 74
- 75
- 76
- …
- следующая ›
- последняя »