Pok-10-wyk-Slajd8

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

Zmienne globalne(3)

Zmienne globalne(3)


Obydwie wersje analizatora składniowego kompilujemy i testujemy za pomocą przykładowego wejścia "1+2+3=". Jak nietrudno sprawdzić – poprawną odpowiedzią jest 6.

Taką odpowiedź rzeczywiście podaje analizator wykorzystujący lewostronną rekurencję.

Analizator zaimplementowany z wykorzystaniem prawostronnej rekurencji daje jednak odpowiedź – 9.

Jak już było zasugerowane wcześniej – błąd nie leży w gramatyce. Problem polega na ścisłym uwzględnieniu kolejności wykonywania akcji przez analizator LR w sposobie ewaluacji atrybutów przechowywanych w zmiennych globalnych.

Prześledźmy teraz w jaki sposób obydwie wersje analizowały wejście. Zacznijmy od wersji z rekurencję lewostronną.


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