Pok-11-wyk-Slajd3

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

Gramatyki jednoznaczne i niejednoznaczne

Gramatyki jednoznaczne i niejednoznaczne


W ramach dotychczasowych wykładów rozważana była tylko implementacja gramatyk jednoznacznych w YACCu.

Gramatyka jest jednoznaczna wtedy i tylko wtedy, gdy dla każdego zdania języka wejściowego istnieje tylko jedno drzewo składniowe (wywodu). W przeciwnym przypadku gramatyka jest niejednoznaczna.

Słowo „niejednoznaczna” sugeruje, że jest to „gorsza” gramatyka niż jednoznaczna. Jak zobaczymy, w praktyce zastosowanie gramatyki niejednoznacznej może okazać się lepszym rozwiązaniem niż równoważnej jednoznacznej.

Trzeba także pamiętać, że drzewo składniowe (jak sama nazwa zresztą wskazuje) opisuje składnię a nie znaczenie (semantykę) zdania. Nie odzwierciedla więc kolejności zastępowania symboli w formach zdaniowych (porządku wykonywania akcji).

Każdemu drzewu wywodu odpowiada jedno unikalne wyprowadzenie prawostronne (jedno lewostronne zresztą też – ale w ramach wykładu rozważamy LR-parsery wygenerowane przez YACCa, które konstruują odwrotność prawostronnego wywodu).


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