SW wykład 6 - Slajd5
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

Przekazywanie parametru przez zmienną jest bodaj najprostsze semantycznie. Przy wywołaniu takiej procedury dla danych środowisk zmiennych i procedur, najpierw sprawdzamy, czy jej identyfikatorowi w danym środowisku procedur jest przypisane znaczenie procedury jednoparametrowej z parametrem przekazywanym przez zmienną. Następnie wyznaczamy lokację zmiennej, będącej parametrem aktualnym w danym wywołaniu. Odpowiednie przekształcenie składu to znaczenie wywoływanej procedury dla lokacji parametru aktualnego. Oczywiście, gdy identyfikatorowi wywoływanej procedury w środowisku procedur nie jest przypisane znaczenie procedury jednoparametrowej z parametrem przekazywanym przez zmienną, lub gdy parametrowi aktualnemu w środowisku zmiennych nie jest przypisana lokacja --- wynikiem jest sygnał błędu.
Klauzula dla deklaracji takich procedur jest tylko nieco bardziej skomplikowana przez fakt, że posługujemy sie nazwą parametru formalnego jako zmienną, której przypisujemy lokację przekazaną jako znaczenie parametru aktualnego. Zapisujemy to odpowiednio w środowisku zmiennych dla ciała procedury i łączymy z omawianą dla procedur bezparametrowych stałopunktową definicją umożliwiającą wywołania rekurencyjne procedury w jej ciele.
Oczywiście, definicje te dają dokładnie zamierzony efekt: wszelkie odwołania w ciele procedury do parametru formalnego działają tak, jak odwołania do zmiennej będącej parametrem aktualnym w danym wywołaniu. W szczególności, zmiany jej wartości w ciele procedury (dokładniej: zmiany wartości przypisanej jej lokacji w składzie) pozostają widoczne po zakończeniu realizacji tego wywołania.