Pok-5-wyk-Slajd44

Z Studia Informatyczne
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 >>