SW wykład 6 - Slajd1: Różnice pomiędzy wersjami
Nie podano opisu zmian |
Nie podano opisu zmian |
||
(Nie pokazano 2 wersji utworzonych przez jednego użytkownika) | |||
Linia 1: | Linia 1: | ||
{{Semantyka i weryfikacja programów/Wykład 6}} | {{Semantyka i weryfikacja programów/Wykład 6}} | ||
[[Grafika:sw0600.png|center|frame]] | [[Grafika:sw0600.png|center|frame]] | ||
W poprzednim module rozszerzyliśmy język TINY o bloki z lokalnymi | |||
W poprzednim module | |||
deklaracjami zmiennych i procedur. Wprowadzenie zmiennych lokalnych | 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 | zmiennych i identyfikatorów procedur w ciele procedur: wiązanie | ||
dynamiczne i statyczne, oraz ich konsekwencje dla opisu rekurencyjnych | dynamiczne i statyczne, oraz ich konsekwencje dla opisu rekurencyjnych | ||
wywołań procedury. | |||
Zajmijmy | Zajmijmy się teraz dalszym rozszerzeniem języka TINY i deklarowanych w | ||
programach procedur o | jego programach procedur o możliwości przekazywania parametrów. Dla | ||
uproszczenia, | uproszczenia, zajmować się będziemy tylko jedną strategią wiązania | ||
zmiennych w | zmiennych i identyfikatorów procedur w ciałach procedur: wiązaniem | ||
statycznym. Pozostawiamy Państwu jako interesujące ćwiczenie | |||
definicji w wersji dla | 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 | przekazywanie przez zmienną, przekazywanie przez wartość i | ||
przez | przekazywanie przez nazwę. Dla uproszczenia i jasności prezentacji, | ||
mamy zawsze do czynienia z procedurami jednoparametrowymi, z | przyjmiemy, że mamy zawsze do czynienia z procedurami | ||
wskazanym (przez | 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 | |||
wieloparametrowymi, gdzie | sytuacji, gdy mamy do czynienia z procedurami wieloparametrowymi, | ||
inny (ale wskazany | gdzie każdy z parametrów może być przekazywany w inny (ale | ||
jednoznacznie wskazany syntaksą deklaracji procedury) sposób. | |||
Podajemy | Podajemy powyżej odpowiednie rozszerzenie składni języka TINY. Do | ||
konstrukcji | konstrukcji językowych budujących instrukcje dodajemy trzy nowe | ||
postacie | postacie wywołania procedur z jednym parametrem, przekazywanym przez | ||
zmienną (znacznik <b>vr</b>; tu parametrami aktualnymi mogą być tylko | |||
rozszerzamy | zmienne), przez wartość (znacznik <b>vl</b>; tu parametrami aktualnymi | ||
jednoparametrowych, | mogą być wyrażenia arytmetyczne) i przez nazwę (znacznik <b>nm</b>; tu | ||
przez | 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). |
Aktualna wersja na dzień 15:24, 29 wrz 2006
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).