SW wykład 7 - Slajd5: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Arturas (dyskusja | edycje)
Nie podano opisu zmian
Dorota (dyskusja | edycje)
Nie podano opisu zmian
 
(Nie pokazano 1 wersji utworzonej przez jednego użytkownika)
Linia 1: Linia 1:
{{Semantyka i weryfikacja programów/Wykład 7}}
{{Semantyka i weryfikacja programów/Wykład 7}}
[[Grafika:sw0704.png|center|frame]]
[[Grafika:sw0704.png|center|frame]]
Rozpoczynamy teraz definiowanie funkcji semantycznych, przy okazji
wprowadzając dziedziny semantyczne znaczeń dla poszczególnych
kategorii składniowych języka.
Znaczeniami wyrażeń (arytmetycznych lub logicznych, odpowiednio) są
funkcje, które dla każdego środowiska zmiennych określają funkcję z
kontynuacji dla wyrażeń (arytmetycznych lub logicznych, odpowiednio) w
kontynuacje (dla instrukcji): w danym środowisku wyrażenie określa,
jak znając kontynuację, która dla danego wyniku wyrażenia i stanu po
jego obliczeniu określa końcowy potok wyjściowy całego programu, podać
kontynuację, która ten potok określi już na podstawie stanu sprzed
obliczenia tego wyrażenia.
Znaczeniami instrukcji są funkcje, które dla każdego środowiska
zmiennych oraz dla każdego środowiska procedur określą funkcję z
kontynuacji (dla instrukcji) w kontynuacje (dla instrukcji): w danym
środowisku zmiennych i procedur, instrukcja określa, jak znając
kontynuację, która dla danego stanu po wykonaniu danej instrukcji
określa końcowy potok wyjściowy całego programu, podać kontynuację,
która ten potok określi już na podstawie stanu sprzed wykonania danej
instrukcji.
Znaczeniami deklaracji zmiennych są funkcje, które dla każdego
środowiska zmiennych określają funkcję z kontynuacji dla deklaracji
zmiennych w kontynuacje (dla instrukcji): w danym środowisku, ciąg
deklaracji zmiennych określa, jak znając kontynuację, która dla danego
środowiska zmiennych po elaboracji tych deklaracji i stanu po tej
elaboracji określa końcowy potok wyjściowy całego programu, podać
kontynuację, która ten potok określi już na podstawie stanu przed
elaboracją tego ciągu deklaracji zmiennych.
Podobnie, znaczeniami deklaracji procedur są funkcje, które dla
każdego środowiska zmiennych i dalej, dla każdego środowiska procedur
określają funkcję z kontynuacji dla deklaracji procedur w kontynuacje
(dla instrukcji): w danym środowisku, ciąg deklaracji procedur
określa, jak znając kontynuację, która dla danego środowiska procedur
po elaboracji tych deklaracji i stanu po tej elaboracji określa
końcowy potok wyjściowy całego programu, podać kontynuację, która ten
potok określi już na podstawie stanu przed elaboracją tego ciągu
deklaracji zmiennych.
W końcu, znaczenia programów są, jak dotychczas, funkcjami z potoków
wejściowych w potoki wyjściowe.

Aktualna wersja na dzień 15:47, 29 wrz 2006

<<powrót do strony wykładu

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"

Rozpoczynamy teraz definiowanie funkcji semantycznych, przy okazji wprowadzając dziedziny semantyczne znaczeń dla poszczególnych kategorii składniowych języka.

Znaczeniami wyrażeń (arytmetycznych lub logicznych, odpowiednio) są funkcje, które dla każdego środowiska zmiennych określają funkcję z kontynuacji dla wyrażeń (arytmetycznych lub logicznych, odpowiednio) w kontynuacje (dla instrukcji): w danym środowisku wyrażenie określa, jak znając kontynuację, która dla danego wyniku wyrażenia i stanu po jego obliczeniu określa końcowy potok wyjściowy całego programu, podać kontynuację, która ten potok określi już na podstawie stanu sprzed obliczenia tego wyrażenia.

Znaczeniami instrukcji są funkcje, które dla każdego środowiska zmiennych oraz dla każdego środowiska procedur określą funkcję z kontynuacji (dla instrukcji) w kontynuacje (dla instrukcji): w danym środowisku zmiennych i procedur, instrukcja określa, jak znając kontynuację, która dla danego stanu po wykonaniu danej instrukcji określa końcowy potok wyjściowy całego programu, podać kontynuację, która ten potok określi już na podstawie stanu sprzed wykonania danej instrukcji.

Znaczeniami deklaracji zmiennych są funkcje, które dla każdego środowiska zmiennych określają funkcję z kontynuacji dla deklaracji zmiennych w kontynuacje (dla instrukcji): w danym środowisku, ciąg deklaracji zmiennych określa, jak znając kontynuację, która dla danego środowiska zmiennych po elaboracji tych deklaracji i stanu po tej elaboracji określa końcowy potok wyjściowy całego programu, podać kontynuację, która ten potok określi już na podstawie stanu przed elaboracją tego ciągu deklaracji zmiennych.

Podobnie, znaczeniami deklaracji procedur są funkcje, które dla każdego środowiska zmiennych i dalej, dla każdego środowiska procedur określają funkcję z kontynuacji dla deklaracji procedur w kontynuacje (dla instrukcji): w danym środowisku, ciąg deklaracji procedur określa, jak znając kontynuację, która dla danego środowiska procedur po elaboracji tych deklaracji i stanu po tej elaboracji określa końcowy potok wyjściowy całego programu, podać kontynuację, która ten potok określi już na podstawie stanu przed elaboracją tego ciągu deklaracji zmiennych.

W końcu, znaczenia programów są, jak dotychczas, funkcjami z potoków wejściowych w potoki wyjściowe.