Pok-5-wyk-Slajd44

Z Studia Informatyczne
Wersja z dnia 19:05, 1 wrz 2006 autorstwa BBogacki (dyskusja | edycje)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacjiPrzejdź do wyszukiwania

Lewostronna rekurencja

Lewostronna rekurencja


Zajmijmy się teraz ograniczeniami metody zejść rekurencyjnych.

Na początek przyjrzyjmy się gramatyce.

Stosując znany już wzorzec wyliczamy zbiór FIRST dla pierwszej i trzeciej produkcji, czyli dla FIRST(a B a) oraz FIRST(B b). Implementujemy funkcję dla nieterminala B. Przykładowa implementacja wygenerowana na bazie gramatyki znajduje się na slajdzie.

Proszę zwrócić uwagę, że już dla ciągu symboli leksykalnych: „aba” nasz analizator nie będzie działał poprawnie. Po wczytaniu symbolu ‘a’ przejdziemy do rozważanej funkcji B(). Tu nasz program zapętli się wykonując w nieskończoność (a w zasadzie do momentu przepełnienia stosu) rekurencyjne wywołanie funkcji B(). Przyczyną takiego zachowania jest wykorzystanie w gramatyce lewostronnej rekurencji.


<< Poprzedni slajd | Spis treści | Następny slajd >>