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

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Tarlecki (dyskusja | edycje)
Nie podano opisu zmian
Dorota (dyskusja | edycje)
Nie podano opisu zmian
 
Linia 26: Linia 26:
jednoparametrowymi, z dokładnie wskazanym (przez syntaksę języka)
jednoparametrowymi, z dokładnie wskazanym (przez syntaksę języka)
sposobem przekazywania parametru.  Znów, jako ciekawe praktyczne
sposobem przekazywania parametru.  Znów, jako ciekawe praktyczne
rozszerzenie języka pozostawiamy Państwu próbę opisu realistycznej
rozszerzenie języka, pozostawiamy Państwu próbę opisu realistycznej
sytuacji, gdy mamy do czynienia z procedurami wieloparametrowymi,
sytuacji, gdy mamy do czynienia z procedurami wieloparametrowymi,
gdzie każdy z parametrów może być przekazywany w inny (ale
gdzie każdy z parametrów może być przekazywany w inny (ale

Aktualna wersja na dzień 15:24, 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

W poprzednim module rozszerzyliśmy język TINY o bloki z lokalnymi deklaracjami zmiennych i procedur. Wprowadzenie zmiennych lokalnych posłużyło nam za motywację dla wprowadzenie pojęcia środowiska, przechowującego informacje o zadeklarowanych obiektach, niejako uzupełnianego składem przechowującym informacje o bieżącej zawartości "pamięci". Procedury wprowadziliśmy w najprostszej wersji, bez parametrów. Dokładniej za to analizowaliśmy dwie strategie wiązania zmiennych i identyfikatorów procedur w ciele procedur: wiązanie dynamiczne i statyczne, oraz ich konsekwencje dla opisu rekurencyjnych wywołań procedury.

Zajmijmy się teraz dalszym rozszerzeniem języka TINY i deklarowanych w jego programach procedur o możliwości przekazywania parametrów. Dla uproszczenia, zajmować się będziemy tylko jedną strategią wiązania zmiennych i identyfikatorów procedur w ciałach procedur: wiązaniem statycznym. Pozostawiamy Państwu jako interesujące ćwiczenie powtórzenie wprowadzanych tu pojęć i definicji w wersji dla wiązania dynamicznego.

Omówimy trzy istotnie różne mechanizmy przekazywania parametrów: przekazywanie przez zmienną, przekazywanie przez wartość i przekazywanie przez nazwę. Dla uproszczenia i jasności prezentacji, przyjmiemy, że mamy zawsze do czynienia z procedurami jednoparametrowymi, z dokładnie wskazanym (przez syntaksę języka) sposobem przekazywania parametru. Znów, jako ciekawe praktyczne rozszerzenie języka, pozostawiamy Państwu próbę opisu realistycznej sytuacji, gdy mamy do czynienia z procedurami wieloparametrowymi, gdzie każdy z parametrów może być przekazywany w inny (ale jednoznacznie wskazany syntaksą deklaracji procedury) sposób.

Podajemy powyżej odpowiednie rozszerzenie składni języka TINY. Do konstrukcji językowych budujących instrukcje dodajemy trzy nowe postacie wywołania procedur z jednym parametrem, przekazywanym przez zmienną (znacznik vr; tu parametrami aktualnymi mogą być tylko zmienne), przez wartość (znacznik vl; tu parametrami aktualnymi mogą być wyrażenia arytmetyczne) i przez nazwę (znacznik nm; tu też parametrami aktualnymi mogą być wyrażenia arytmetyczne). Składnię deklaracji procedur rozszerzamy zaś dodając trzy nowe postacie deklaracji procedur jednoparametrowych, znów z parametrem przekazywanym przez zmienną, przez wartość i przez nazwę, odpowiednio (co wskazują odpowiednie znaczniki w deklaracji).