|
|
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 rozszerzylimy jzyk TINY o bloki z lokalnymi
| |
| deklaracjami zmiennych i procedur. Wprowadzenie zmiennych lokalnych
| |
| posuyo nam za motywacj dla wprowadzenie pojcia rodowiska
| |
| przechowujcego informacje o zadeklarowanych obiektach i niejako
| |
| uzupenianego skadem przechowujcym informacje o biecej zawartoci
| |
| "pamici". Procedury wprowadzilimy z najprostszej wersji, bez
| |
| parametrw. Dokadniej za to analizowalimy dwie strategie wizania
| |
| zmiennych i identyfikatorw procedur w ciele procedur: wizanie
| |
| dynamiczne i statyczne, oraz ich konsekwencje dla opisu rekurencyjnych
| |
| wywoa procedury.
| |
|
| |
| Zajmijmy si teraz dalszym rozszerzeniem jzyka i deklarowanych w jego
| |
| programach procedur o moliwoci przekazywania parametrw. Dla
| |
| uproszczenia, zajmowa si bdziemy tylko jedn strategi wizania
| |
| zmiennych w ciaach procedur: wizaniem statycznym. Pozostawiamy Pastwu
| |
| jako interesujce wiczenie powtrzenie wprowadzanych tu poj i
| |
| definicji w wersji dla wizania dynamicznego.
| |
|
| |
| Omwimy trzy istotnie rne mechanizmy przekazywania parametrw:
| |
| przekazywanie przez warto, przekazywanie przez zmienn i przekazywanie
| |
| przez nazw. Dla uproszczenia i jasnoci prezentacji, przyjmiemy, ze
| |
| mamy zawsze do czynienia z procedurami jednoparametrowymi, z dokadnie
| |
| wskazanym (przez syntaks jzyka) sposobem przekazywania parametru.
| |
| Znw, jako ciekawe praktyczne rozszerzenie jzyka pozostawiamy Pastwo
| |
| prb opisu realistycznej sytuacji, gdy mamy do czynienia z procedurami
| |
| wieloparametrowymi, gdzie kady z parametrw moe by przekazywany w
| |
| inny (ale wskazany syntaks deklaracji procedury) sposb.
| |
|
| |
| Podajemy powyej odpowiednie rozszerzenie skadni jzyka TINY. Do
| |
| konstrukcji jzykowych budujcych instrukcje dodajemy trzy nowe
| |
| postacie wywoania procedur z jednym parametrem, przekazywanym przez
| |
| warto, zmienn i nazw, odpowiednio. Skadni deklaracji procedur
| |
| rozszerzamy za dodajc trzy nowe postacie deklaracji procedur
| |
| jednoparametrowych, znw z parametrem przekazywanym przez warto,
| |
| przez zmienn i przez nazw, odpowiednio.
| |