Pok-10-wyk-Slajd4

Z Studia Informatyczne
Wersja z dnia 19:10, 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

Dlaczego nie używać zmiennych globalnych w YACCu ?

Dlaczego nie używać zmiennych globalnych w YACCu ?


Translację sterowaną składnią można w YACCu realizować w oparciu o zmienne globalne albo wbudowany mechanizm atrybutów. Można także stosować kombinację obu podejść.

Wydaje się jednak, że mechanizm atrybutów wbudowany w generator YACC jest dostatecznie elastyczny i efektywny, aby implementować z jego użyciem wszystkie translatory unikając zagrożeń wynikających z używania zmiennych globalnych.

W bardziej złożonych specyfikacjach łatwo jest stracić kontrolę nad użyciem zmiennych globalnych, a dodatkowe zagrożenie stanowi ścisłe kontrolowanie kolejności wykonywania obliczeń związanej z działaniem LR-parsera.

Lepiej więc nie korzystać ze zmiennych globalnych ani w samym analizatorze składniowym, ani pośredniczących w przekazywaniu wartości między skanerem a parserem.


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