SW wykład 7 - Slajd11: Różnice pomiędzy wersjami
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 1: | Linia 1: | ||
{{Semantyka i weryfikacja programów/Wykład 7}} | {{Semantyka i weryfikacja programów/Wykład 7}} | ||
[[Grafika:sw0710.png|center|frame]] | [[Grafika:sw0710.png|center|frame]] | ||
Na kilku kolejnych slajdach naszkicujemy, jak mógłby wyglądać | |||
kontynuacyjny opis semantyki języka TINY rozszerzonego o instrukcje | |||
etykietowane i skoki (wprowadzone do składni języka na poprzednim | |||
slajdzie). | |||
Zaczynamy od wprowadzenia kolejnego środowiska, przypisującego | |||
etykietom kontynuacje (lub sygnał błędu). To odpowiada oczywistej | |||
dość decyzji, że informacja niezbędna do opisu semantyki skoku to po | |||
prostu informacja o kontynuacji od etykiety (do której skaczemy). | |||
Przy okazji uwaga: namnożyło nam się tu już sporo środowisk: | |||
środowiska zmiennych, procedur, teraz etykiet. W opisie języka TINY | |||
traktujemy je rozłącznie, przekazując jako osobne argumenty dla | |||
semantyki odpowiednich fraz języka. W praktyce opisów denotacyjnych, | |||
dla bardziej złożonych języków, warto niekiedy "zsumować" te wszystkie | |||
środowiska w jedno środowisko dla wszelkich deklarowanych (jawnie lub | |||
niejawnie) obiektów, rozróżnianych na przykład przez semantyczną | |||
wartość przypisywaną im w takim "heterogenicznym" środowisku. | |||
Wprowadzone środowiska etykiet dodajemy jako dodatkowy parameter dla | |||
funkcji semantycznych dla instrukcji i deklaracji procedur (pozostałe | |||
funkcje semantyczne, opisujące znaczenia kategorii składniowych | |||
języka, które nie wykorzystują etykiet, tego środowiska nie | |||
potrzebują). | |||
Nie będziemy tu powtarzać klauzul semantycznych dla dotychczasowych | |||
konstrukcji budujących instrukcje i deklaracje --- w gruncie rzeczy | |||
pozostają one niezmienione, przekazując jedynie dodane środowisko | |||
etykiet do swoich bezpośrednich składowych. Oczywistej modyfikacji | |||
wymaga też klauzula semantyczna dla programów, gdzie znaczenie | |||
tworzącej program instrukcji wykorzystujemy podając dodatkowo "puste" | |||
środowisko etykiet. |
Aktualna wersja na dzień 13:10, 28 wrz 2006
Kontynuacje Kontynuacje wyrażeń i deklaracji Tiny+++ Dziedziny semantyczne Funkcje semantyczne Przykłady klauzul [[SW_wykład_7_-_Slajd7|Przykłady klauzul, c.d.] Instrukcje Bloki Skoki Semantyka skoków Semantyka skoków, c.d. Semantyka skoków, c.d. Semantyka skoków, c.d. Semantyka "standardowa"

Na kilku kolejnych slajdach naszkicujemy, jak mógłby wyglądać kontynuacyjny opis semantyki języka TINY rozszerzonego o instrukcje etykietowane i skoki (wprowadzone do składni języka na poprzednim slajdzie).
Zaczynamy od wprowadzenia kolejnego środowiska, przypisującego etykietom kontynuacje (lub sygnał błędu). To odpowiada oczywistej dość decyzji, że informacja niezbędna do opisu semantyki skoku to po prostu informacja o kontynuacji od etykiety (do której skaczemy).
Przy okazji uwaga: namnożyło nam się tu już sporo środowisk: środowiska zmiennych, procedur, teraz etykiet. W opisie języka TINY traktujemy je rozłącznie, przekazując jako osobne argumenty dla semantyki odpowiednich fraz języka. W praktyce opisów denotacyjnych, dla bardziej złożonych języków, warto niekiedy "zsumować" te wszystkie środowiska w jedno środowisko dla wszelkich deklarowanych (jawnie lub niejawnie) obiektów, rozróżnianych na przykład przez semantyczną wartość przypisywaną im w takim "heterogenicznym" środowisku.
Wprowadzone środowiska etykiet dodajemy jako dodatkowy parameter dla funkcji semantycznych dla instrukcji i deklaracji procedur (pozostałe funkcje semantyczne, opisujące znaczenia kategorii składniowych języka, które nie wykorzystują etykiet, tego środowiska nie potrzebują).
Nie będziemy tu powtarzać klauzul semantycznych dla dotychczasowych konstrukcji budujących instrukcje i deklaracje --- w gruncie rzeczy pozostają one niezmienione, przekazując jedynie dodane środowisko etykiet do swoich bezpośrednich składowych. Oczywistej modyfikacji wymaga też klauzula semantyczna dla programów, gdzie znaczenie tworzącej program instrukcji wykorzystujemy podając dodatkowo "puste" środowisko etykiet.