SW wykład 6 - Slajd2

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

<<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.