Pok-11-wyk-Slajd32

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

Gramatyka niejednoznaczna – „wiszące else”(1)

Gramatyka niejednoznaczna – „wiszące else”(1)


Załóżmy, że rozpatrywanym językiem jest Pascal. Składnia instrukcji warunkowej różni się co prawda nieco od np. języka C (w C nie ma słowa kluczowego then , ale jest ‘;’ przed słowem kluczowym else ), ale nie zmienia to istoty problemu ani metody jego rozwiązania.

Do zademonstrowania problemu wystarczy użyć zagnieżdżonej instrukcji warunkowej przedstawionej w przykładzie. Taka instrukcja może być interpretowana na dwa sposoby – zestawione w tabeli (instrukcje bloku begin-end wstawiono, aby podkreślić sposób interpretacji). Tylko jedna z tych interpretacji jest zgodna z definicją języka.

W pierwszej interpretacji testujemy warunek, a następnie traktujemy kolejną część if oraz następującą po niej część else jako jedną całość.

Druga interpretacja traktuje drugą gałąź if jako oddzielną instrukcję, a część else wiąże z pierwszą instrukcję if .


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