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
 
(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 rozszerzylimy jzyk TINY o bloki z lokalnymi
deklaracjami zmiennych i procedur. Wprowadzenie zmiennych lokalnych
deklaracjami zmiennych i procedur. Wprowadzenie zmiennych lokalnych
posuyo nam za motywacj dla wprowadzenie pojcia rodowiska
posłużyło nam za motywację dla wprowadzenie pojęcia środowiska,
przechowujcego informacje o zadeklarowanych obiektach i niejako
przechowującego informacje o zadeklarowanych obiektach, niejako
uzupenianego skadem przechowujcym informacje o biecej zawartoci
uzupełnianego składem przechowującym informacje o bieżącej zawartości
"pamici". Procedury wprowadzilimy z najprostszej wersji, bez
"pamięci". Procedury wprowadziliśmy w najprostszej wersji, bez
parametrw. Dokadniej za to analizowalimy dwie strategie wizania
parametrów. Dokładniej za to analizowaliśmy dwie strategie wiązania
zmiennych i identyfikatorw procedur w ciele procedur: wizanie
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
wywoa procedury.
wywołań procedury.


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


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


Podajemy powyej odpowiednie rozszerzenie skadni jzyka TINY. Do
Podajemy powyżej odpowiednie rozszerzenie składni języka TINY. Do
konstrukcji jzykowych budujcych instrukcje dodajemy trzy nowe
konstrukcji językowych budujących instrukcje dodajemy trzy nowe
postacie wywoania procedur z jednym parametrem, przekazywanym przez
postacie wywołania procedur z jednym parametrem, przekazywanym przez
warto, zmienn i nazw, odpowiednio. Skadni deklaracji procedur
zmienną (znacznik <b>vr</b>; tu parametrami aktualnymi mogą być tylko
rozszerzamy za dodajc trzy nowe postacie deklaracji procedur
zmienne), przez wartość (znacznik <b>vl</b>; tu parametrami aktualnymi
jednoparametrowych, znw z parametrem przekazywanym przez warto,
mogą być wyrażenia arytmetyczne) i przez nazwę (znacznik <b>nm</b>; tu
przez zmienn i przez nazw, odpowiednio.
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

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