SW wykład 6 - Slajd2: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Mengel (dyskusja | edycje)
Nie podano opisu zmian
 
Dorota (dyskusja | edycje)
Nie podano opisu zmian
 
(Nie pokazano 2 wersji utworzonych przez 2 użytkowników)
Linia 1: Linia 1:
{{Semantyka i weryfikacja programów/Wykład 6}}
[[Grafika:sw0601.png|center|frame]]
[[Grafika:sw0601.png|center|frame]]
Dla opisu tak rozszerzonego języka rozszerzamy dziedziny semantyczne.
Środowiska procedur mogą teraz przypisywać identyfikatorom nie tylko
znaczenia procedur bezparametrowych (lub sygnał błędu), lecz także
znaczenia procedur jednoparametrowych, podzielone w zależności od
sposobu przekazywania parametru (przez zmienną, przez wartość, przez
nazwę).
Dziedzina znaczeń procedur bezparametrowych pozostaje bez zmian (jak
w poprzednim module dla wiązania statycznego).
Pozostałe dziedziny tworzą funkcje, które semantycznym znaczeniom
parametru przypisują funkcję ze składu w skład (z możliwością
sygnalizacji błędu) --- a więc znaczenie procedury
bezparametrowej. Intuicja powinna być tu jasna: gdy procedura otrzyma
i "przetrawi" parametr, to dalej zachowuje się już jak procedura
bezparametrowa.
Dla procedur z parametrem przekazywanym przez zmienną, semantycznym
odpowiednikiem parametru przekazywanym znaczeniu procedury jest
lokacja (intuicyjnie: lokacja zmiennej przekazywanej jako parametr
aktualny). Stąd wynika, że dziedzina znaczeń procedur jednoparametrowych z
paramatrem przekazywanym przez zmienną to funkcje z lokacji w
znaczenia procedur bezparametrowych.
Dla procedur z parametrem przekazywanym przez wartość, semantycznym
odpowiednikiem parametru przekazywanym znaczeniu procedury jest
wartość liczbowa (intuicyjnie: wartość wyrażenia przekazywanego jako
parametr aktualny). Stąd wynika, że dziedzina znaczeń procedur
jednoparametrowych z paramatrem przekazywanym przez wartość to funkcje
z liczb całkowitych w znaczenia procedur bezparametrowych.
Dla procedur z parametrem przekazywanym przez nazwę, semantycznym
odpowiednikiem parametru jest funkcja ze składu w wartości liczbowe
(lub sygnał błędu); intuicyjnie: jest to "ewaluator" --- sposób
wyliczania wartości --- wyrażenia przekazywanego jako parametr
aktualny. Stąd wynika, że dziedzina znaczeń procedur jednoparametrowych z
paramatrem przekazywanym przez nazwę to funkcje z takiej właśnie
dziedziny funkcji w znaczenia procedur bezparametrowych.

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

<<powrót do strony wykładu

Parametry Semantyka procedur Semantyka procedur, c.d. Semantyka procedur bezparametrowych Przekazywanie przez zmienną Przekazywanie przez wartość Przekazywanie przez nazwę Wejście/wyjście Semantyka wejścia/wyjścia Semantyka wejścia/wyjścia, c.d. Semantyka wejścia/wyjścia, c.d. Programy Problem Nowe podejście Kontynuacje

Dla opisu tak rozszerzonego języka rozszerzamy dziedziny semantyczne.

Środowiska procedur mogą teraz przypisywać identyfikatorom nie tylko znaczenia procedur bezparametrowych (lub sygnał błędu), lecz także znaczenia procedur jednoparametrowych, podzielone w zależności od sposobu przekazywania parametru (przez zmienną, przez wartość, przez nazwę).

Dziedzina znaczeń procedur bezparametrowych pozostaje bez zmian (jak w poprzednim module dla wiązania statycznego).

Pozostałe dziedziny tworzą funkcje, które semantycznym znaczeniom parametru przypisują funkcję ze składu w skład (z możliwością sygnalizacji błędu) --- a więc znaczenie procedury bezparametrowej. Intuicja powinna być tu jasna: gdy procedura otrzyma i "przetrawi" parametr, to dalej zachowuje się już jak procedura bezparametrowa.

Dla procedur z parametrem przekazywanym przez zmienną, semantycznym odpowiednikiem parametru przekazywanym znaczeniu procedury jest lokacja (intuicyjnie: lokacja zmiennej przekazywanej jako parametr aktualny). Stąd wynika, że dziedzina znaczeń procedur jednoparametrowych z paramatrem przekazywanym przez zmienną to funkcje z lokacji w znaczenia procedur bezparametrowych.

Dla procedur z parametrem przekazywanym przez wartość, semantycznym odpowiednikiem parametru przekazywanym znaczeniu procedury jest wartość liczbowa (intuicyjnie: wartość wyrażenia przekazywanego jako parametr aktualny). Stąd wynika, że dziedzina znaczeń procedur jednoparametrowych z paramatrem przekazywanym przez wartość to funkcje z liczb całkowitych w znaczenia procedur bezparametrowych.

Dla procedur z parametrem przekazywanym przez nazwę, semantycznym odpowiednikiem parametru jest funkcja ze składu w wartości liczbowe (lub sygnał błędu); intuicyjnie: jest to "ewaluator" --- sposób wyliczania wartości --- wyrażenia przekazywanego jako parametr aktualny. Stąd wynika, że dziedzina znaczeń procedur jednoparametrowych z paramatrem przekazywanym przez nazwę to funkcje z takiej właśnie dziedziny funkcji w znaczenia procedur bezparametrowych.