Изменения

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

Устранение левой рекурсии

3 байта добавлено, 19:25, 4 сентября 2022
м
rollbackEdits.php mass rollback
</ol>
Изначально нетерминал <tex>A</tex> порождает сроки строки вида <tex>\beta\alpha_{i0}\alpha_{i1} \ldots \alpha_{ik}</tex>. В новой грамматике нетерминал <tex>A</tex> порождает <tex>\beta{A^\prime}</tex>, а <tex>A^\prime</tex> порождает строки вида <tex>\alpha_{i0}\alpha_{i1} \ldots \alpha_{ik}</tex>. Из этого очевидно, что изначальная грамматика эквивалентна новой.
===Пример===
<tex>A \to S\alpha{A^{\prime}} \mid S\alpha</tex>
<tex>A^{\prime} \to \alpha{A^{\prime}\mid \alpha}</tex>
<tex>S \to A\beta</tex>
<tex>A \to S\alpha </tex>
<tex>S \to{S}{\beta} \mid {S}{\alpha}{\gamma} \mid \beta</tex>
Устраняем левую рекурсию для <tex>S</tex>
<tex> S \to\beta{S_1}\mid \beta</tex>
<tex> {S_1} \to\beta{S_1} \mid \alpha\gamma{S_1} \mid {\beta} \mid {\alpha}{\gamma} </tex>
== Источники информации ==
* ''Хопкрофт Д., Мотвани Р., Ульман Д.'' — '''Введение в теорию автоматов, языков и вычислений''', 2-е изд. : Пер. с англ. — Москва, Издательский дом «Вильямс», 2002. — 528 с. : ISBN 5-8459-0261-4 (рус.)
* ''Robert C. Moore'' — [httphttps://aclwebaclanthology.org/anthology-new/A/A00/A00-2033.pdf Removing Left Recursion from Context-Free Grammars ]
[[Категория: Теория формальных языков]]
[[Категория: Контекстно-свободные грамматики]]
[[Категория: Нормальные формы КС-грамматик]]
1632
правки

Навигация