Denotatsioonsemantika

Seotud dokumendid
Matemaatiline analüüs III 1 4. Diferentseeruvad funktsioonid 1. Diferentseeruvus antud punktis. Olgu funktsiooni f : D R määramispiirkond D R selles p

Matemaatiline analüüs IV 1 3. Mitme muutuja funktsioonide diferentseerimine 1. Mitme muutuja funktsiooni osatuletised Üleminekul ühe muutuja funktsioo

IMO 2000 Eesti võistkonna valikvõistlus Tartus, aprillil a. Ülesannete lahendused Esimene päev 1. Olgu vaadeldavad arvud a 1, a 2, a 3,

Polünoomi juured Juure definitsioon ja Bézout teoreem Vaadelgem polünoomi kus K on mingi korpus. f = a 0 x n + a 1 x n a n 1 x

loeng7.key

Word Pro - digiTUNDkaug.lwp

Programmeerimiskeel APL Raivo Laanemets 17. mai a.

lvk04lah.dvi

Relatsiooniline andmebaaside teooria II. 6. Loeng

ITI Loogika arvutiteaduses

Treeningvõistlus Balti tee 2014 võistkonnale Tartus, 4. novembril 2014 Vastused ja lahendused 1. Vastus: 15, 18, 45 ja kõik 0-ga lõppevad arvud. Olgu

Word Pro - diskmatTUND.lwp

Failiotsing: find paljude võimalustega otsingukäsk find kataloog tingimused kataloog - otsitakse sellest kataloogist ja tema alamkataloogidest tingimu

vv05lah.dvi

Diskreetne matemaatika I Kevad 2019 Loengukonspekt Lektor: Valdis Laan 20. juuni a.

I Generaatori mõiste (Java) 1. Variantide läbivaatamine Generaator (ehk generaator-klass) on klass, milles leidub (vähemalt) isendimeetod next(). Kons

Microsoft Word - Errata_Andmebaaside_projekteerimine_2013_06

Sügis 2018 Kõrgema matemaatika 2. kontrolltöö tagasiside Üle 20 punkti kogus tervelt viis üliõpilast: Robert Johannes Sarap, Enely Ernits, August Luur

Funktsionaalne Programmeerimine

PÄRNU TÄISKASVANUTE GÜMNAASIUM ESITLUSE KOOSTAMISE JUHEND Pärnu 2019

PHP

prakt8.dvi

+/- 7(chomsky???) Deduktiivne jama 1.Hulkade spetsifitseerimine. Hulk on samalaadsete objektide järjestamata kogum, mida käsitlet

Ruutvormid Denitsioon 1. P n Ütleme, et avaldis i;j=1 a ijx i x j ; kus a ij = a ji ; a ij 2 K ja K on korpus, on ruutvorm üle korpuse K muutujate x 1

Tartu Ülikool Matemaatika-informaatikateaduskond Puhta Matemaatika Instituut Algebra õppetool Riivo Must Mõned katsed üldistada inversseid poolrühmi M

Automaatjuhtimise alused Automaatjuhtimissüsteemi kirjeldamine Loeng 2

Scala ülevaade 1 Meetodid, muutujad ja väärtused. Süntaks 2 Lihtsad tüübid ja väärtused. 3 OOP, case-klassid ja mustrisobitus. 4 Puhta Scala väärtusta

untitled

Neurovõrgud. Praktikum aprill a. 1 Stohhastilised võrgud Selles praktikumis vaatleme põhilisi stohhastilisi võrke ning nende rakendust k

DIGITAALTEHNIKA DIGITAALTEHNIKA Arvusüsteemid Kümnendsüsteem Kahendsüsteem Kaheksandsüsteem Kuueteistkü

Andmebaasid, MTAT Andmebaasikeeled 11.loeng

Infix Operaatorid I Infix operaatorid (näiteks +) ja tüübid (näiteks ->) kirjutatakse argumentide vahele, mitte argumentide ette. Näiteks: 5 + 2, 2*pi

AWK Aho Weinberger Kernighan struktuurse teksti töötlemise keel rikkalikult tekstitöötlusvahendeid omal alal suhteliselt lihtne ja kiiresti realiseeri

Funktsionaalne Programmeerimine

12. Marek Kolk, Kõrgem matemaatika, Tartu Ülikool, Algfunktsioon ja määramata integraal Sisukord 12 Algfunktsioon ja määramata integraal 1

Matemaatilised meetodid loodusteadustes. I Kontrolltöö I järeltöö I variant 1. On antud neli vektorit: a = (2; 1; 0), b = ( 2; 1; 2), c = (1; 0; 2), d

8.klass 4 tundi nädalas, kokku 140 tundi Hulkliikmed ( 45 tundi) Õppesisu Hulkliige. Hulkliikmete liitmine ja lahutamine ning korrutamine ja jagamine

ma1p1.dvi

19. Marek Kolk, Kõrgem matemaatika, Tartu Ülikool, Arvridade koonduvustunnused Sisukord 19 Arvridade koonduvustunnused Vahelduvat

Antennide vastastikune takistus

Microsoft Word - essee_CVE ___KASVANDIK_MARKKO.docx

raamat5_2013.pdf

CPA4164 USB 2.0 kõrgekvaliteediline videoadapter KASUTUSJUHEND 1. PEATÜKK - Ülevaade 1.1 Tutvustus CPA4164 USB 2.0 videoadapter võimaldab teil arvutis

Skriptid ja käsud

(loeng3-ohtlikud_koodiloigud)

X Window System tuntud kui: X11 X X-Windows akendussüsteem/akendesüsteem rastergraafikat toetavatele ekraanidele UNIX-maailmas väga levinud mitmesugus

Microsoft PowerPoint - Andrus Kallastu Muusikaliste parameetrite mudel helilooja töövahendina Tallinn Tropus De profundis

TARTU ÜLIKOOL Arvutiteaduse instituut Informaatika õppekava Mirjam Iher Nõrgima eeltingimuse staatiline analüüs pinukeeltele Bakalaureusetöö (9 EAP) J

VL1_praks2_2009s

SQL

VKE definitsioon

SQL

PALMIKRÜHMAD Peeter Puusempa ettekanded algebra ja geomeetria õppetooli seminaril 11., 18. ja 25. jaanuaril a. 1. Palmikud ja palmikrühmad Ajalo

Andmed arvuti mälus Bitid ja baidid

Matemaatiline maailmapilt MTMM Terje Hõim Johann Langemets Kaido Lätt 2018/19 sügis

10. peatükk Perevägivald See tund õpetab ära tundma perevägivalda, mille alla kuuluvad kõik füüsilise, seksuaalse, psühholoogilise või majandusliku vä

2016 aasta märtsi tulumaksu laekumine omavalitsustele See ei olnud ette arvatav Tõesti ei olnud, seda pole juhtunud juba tükk aega. Graafikult näeme,

MTAT Loeng 11 ( )

Praks 1

Microsoft Word - ref - Romet Piho - Tutorial D.doc

Peafail3_2.dvi

E-õppe tehnoloogiad kõrgkoolis E-learning Technologies in Higher Education MTAT

Automaadid, keeled, translaatorid

PowerPointi esitlus

MTAT Operatsioonisüsteemid - Turvalisus

Euroopa Liidu Nõukogu Brüssel, 24. september 2015 (OR. en) 12353/15 ADD 2 ENV 586 ENT 199 MI 583 SAATEMÄRKUSED Saatja: Kättesaamise kuupäev: Saaja: Eu

6. KLASSI MATEMAATIKA E-TASEMETÖÖ ERISTUSKIRI Alus: haridus- ja teadusministri määrus nr 54, vastu võetud 15. detsembril E-TASEMETÖÖ EESMÄRK Tas

Matemaatika ainekava 8.klass 4 tundi nädalas, kokku 140 tundi Kuu Õpitulemus Õppesisu Algebra (65 t.) Geomeetria (60 t.) Ajavaru kordamiseks (15 õppet

Abiarstide tagasiside 2016 Küsimustikule vastas 137 tudengit, kellest 81 (60%) olid V kursuse ning 56 (40%) VI kursuse tudengid. Abiarstina olid vasta

Pealkiri on selline

ANOVA Ühefaktoriline dispersioonanalüüs Treeningu sagedus nädalas Kaal FAKTOR UURITAV TUNNUS Mitmemõõtmeline statistika Kairi Osula 2017/kevad

Õppimine Anne Villems, Margus Niitsoo ja Konstantin Tretjakov

Eksam õppeainetes "Andmebaasid I" (IDU0220) ja "Andmebaaside projekteerimine" (IDU3381)

MOOCi „Programmeerimise alused“ ülesannete lahenduste analüüs

Mining Meaningful Patterns

TARTU ÜLIKOOL MATEMAATIKA-INFORMAATIKATEADUSKOND Arvutiteaduse instituut Infotehnoloogia eriala Roman Jagomägis Programmeerimiskeel privaatsust säilit

DNS teenus teoorias ja praktikas Autor Siim Adamson ITK Autor: Siim Adamson ITK

Kaupmehed ja ehitusmeistrid Selle laiendusega mängimiseks on vajalik Carcassonne põhimäng. Laiendit võib mängus kasutada täielikult või osaliselt ning

Lisa 2 Maanteeameti peadirektori käskkirjale nr 0250 Kattega riigimaanteede taastusremondi objektide valikumetoodika Maanteeamet Tallinn 20

MTAT Operatsioonisüsteemid - Turvalisus

Pealkiri

Microsoft PowerPoint - loeng2.pptx

loeng2

Rakenduste loomise ja programmeerimise alused

Andmebaasid, MTAT loeng Normaalkujud

Operatsioonisüsteemide ehitus

Microsoft PowerPoint - Proj.LÜ ja Arh.lahendused.ppt [Ühilduvusrežiim]

Portfoolio Edgar Volkov Ehtekunsti eriala 2015

Microsoft Word - HOTSEC kasutusjuhend v1.900.docx

Andmeturve

LITSENTSILEPING Jõustumise kuupäev: LITSENTSIANDJA Nimi: SinuLab OÜ Registrikood: Aadress: Telefon: E-post:

AASTAARUANNE

Microsoft PowerPoint - Keskkonnamoju_rus.ppt

Linux süsteemi administreerimine

Sissejuhatus mehhatroonikasse MHK0120

pkm_2010_ptk6_ko_ja_kontravariantsus.dvi

Praks 1

elastsus_opetus_2013_ptk2.dvi

Väljavõte:

Denotatsioonsemantika Kristo Heero ATI 2004

Denotatsioonsemantika (1) Meid huvitab ainult programmi täitmise efekt, st. assotsiatsioon alg- ja lõppoleku vahel. Defineeritakse semantiline funktsioon iga süntaktilise kategooria jaoks, st. iga süntaktiline konstruktsioon seotakse matemaatilise objektiga (funktsioon, mis kirjeldab konstruktsiooni täitmise efekti). Kristo Heero Denotatsioonsemantika 2

Denotatsioonsemantika (1) Semantilised funktsioonid on denotatsioonsemantikas kompositsioonilised, st iga süntaktilise kategooria baaselemendi jaoks on semantiline klausel iga komponeeritud süntaktilise kategooria elemendi jaoks vastab kompositsioonielementide vahetute klauslite kompositsioon. Kristo Heero Denotatsioonsemantika 3

Otsestiili semantika Avaldise S täitmise efekt tähendab oleku muutmist. Defineerime semantilise funktsiooni S ds : Stm (State! State) Kristo Heero Denotatsioonsemantika 4

While keele denotatsioonsemantika Kristo Heero Denotatsioonsemantika 5

S 1 ;S 2 Kristo Heero Denotatsioonsemantika 6

if then else (1) Kristo Heero Denotatsioonsemantika 7

if then else (2) Kristo Heero Denotatsioonsemantika 8

while do while b do S võib esitada avaldisega if b then (S; while b do S) else skip Saame St. Kristo Heero Denotatsioonsemantika 9

Näide: while (x = 0) do skip Kristo Heero Denotatsioonsemantika 10

while do (2) Kahjuks sellisest while do definitsioonist ei piisa, sest Leidub funktsionaale, millel on enam kui üks püsipunkt Leidub funktsionaale, millel pole üldse püsipunkti Kristo Heero Denotatsioonsemantika 11

Näited funktsionaalidest Eelmises näites oleval funktsionaalil on iga funktsioon g s = s, kui s x = 0. Näiteks järgmisel funktsionaalil puudub püsipunkt : Kristo Heero Denotatsioonsemantika 12

Nõudmised püsipunktile (1) Kehtestame nõudmised püsipunktile ja näitame, et neile tingimustele vastavaid püsipunkte on ülimalt üks. Ja näitame, et kõik While keele avaldistest pärinevad funktsionaalid omavad neile tingimustele vastavat püsipunkti. Kristo Heero Denotatsioonsemantika 13

Nõudmised püsipunktile (2) Vaatame avaldise while b do S täitmist olekus s 0. On kolm võimalust: A: termineerub B: lokaalses lõpmatus tsüklis (S is on tsükkel) C: globaalses lõpmatus tsüklis Uurime, mida saab öelda funktsionaali F ja selle püsipunkti kohta igal antud võimalusel. Kristo Heero Denotatsioonsemantika 14

A while lause termineerumine tähendab, et eksisteerivad olekud s 1,..., s n, et Näiteks avaldis: while 0 x do x := x 1, kus x 0 Kristo Heero Denotatsioonsemantika 15

A Olgu g 0 funktsionaali F suvaline püsipunkt, st F g 0 = g 0. Kui i < n, siis Kui i = n, siis Seega g 0 s 0 = s n Kristo Heero Denotatsioonsemantika 16

B while b do S olekus s 0 lokaalne lõpmatu tsükkel tähendab, et eksisteerivad olekud s 1,..., s n, et Näiteks avaldis: Kristo Heero Denotatsioonsemantika 17

B Analoogselt eelmise näitega saame, et kui i < n, siis g 0 s i = g 0 s i+1 kui i = n, siis Seega g 0 s 0 = undef Kristo Heero Denotatsioonsemantika 18

C while b do S olekus s 0 globaalne lõpmatu tsükkel tähendab, et eksisteerivad olekud s 1,... nii, et Näiteks avaldis while (x = 0) do skip Kristo Heero Denotatsioonsemantika 19

C Analoogselt eelmise näitega saame g 0 s i = g 0 s i+1 iga i 0 korral. Seega saame g 0 s 0 = g 0 s i iga i korral. Antud situatsioonis me ei saa määrata g 0 s 0 väärtust. Eksisteerib palju F püsipunkte. Kristo Heero Denotatsioonsemantika 20

C Iga funktsioon g s = s, kui s x = 0 on antud juhul püsipunktiks, kuna avaldisel while (x = 0) do skip on funktsionaal F : Kristo Heero Denotatsioonsemantika 21

C Mida me päriselt tahame: Seega meie eelistatud püsipunkt on: Omadus, mis eristab g 0 mõnest teisest F püsipunktist g on see, et ükskõik millal g 0 s = s siis ka g s = s, kuid mitte vastupidi. Kristo Heero Denotatsioonsemantika 22

Püsipunkti teooria Püüame anda formaalse tingimuse soovitud püsipunkti FIX F eksisteerimiseks. Kristo Heero Denotatsioonsemantika 23

Osaliste funktsioonide järjestus Defineerime järjestuse osalistel funktsioonidel: State! State. Ütleme, et g 1 g 2, kui funktsioon g : State! State jagab oma tulemusi osalise funktsiooniga g 2 : State! State, st kui g 1 s = s, siis g 2 s = s iga valitud s ja s korral. Kristo Heero Denotatsioonsemantika 24

Näited Hasse diagramm Kristo Heero Denotatsioonsemantika 25

Alternatiivne esitus Ütleme, et g 1 g 2, siis ja ainult siis, kui graph(g 1 ) graph(g 2 ), kus graph(g) = { <x, y> X Y g x = y ja x X g } st. iga g x = y korral <x, y> graph(g) ja g x = undef korral x X g ehk siis y Y : <x, y> graph(g) Kristo Heero Denotatsioonsemantika 26

Järjestatud hulk (1) Järjestatud hulgaks nimetame paari (D, on hulk ja on relatsioon hulgal D nii, et D ), kus D d d (refleksiivne) D d 1 d 2 ja d 2 d 3 järeldub d 1 d 3 (transitiivne) D D D d 1 d 2 ja d 2 d 1 järeldub d 1 = d 2 (antisümmeetriline) D D D Kristo Heero Denotatsioonsemantika 27

Järjestatud hulk (2) Relatsiooni D nimetatakse järjestuseks hulgal D. asemel võime kirjutada lihtsalt. D Kui kehtib d d iga d D, siis nimetame d hulga D vähimaks elemendiks. Kristo Heero Denotatsioonsemantika 28

Järjestatud hulk (3) Fakt: Kui järjestatud hulgal (D, ) on vähim element d, siis d on unikaalne. Ja seda vähimat elementi tähistame lihtsalt (bottom). Kristo Heero Denotatsioonsemantika 29

Näide (1) Olgu S mittetühi hulk ja P (S) = {K K S}, siis (P (S), ) on järjestatud hulk, sest on refleksiivne: K K on transitiivne: kui K 1 K 2 ja K 2 K 3 siis K 1 K 3 on antisümmeetriline: kui K 1 K 2 ja K 2 K 1 siis K 1 = K 2 Kristo Heero Denotatsioonsemantika 30

Näide (2) Juhul kui S = {a, b, c}, siis saame järgmise diagrammi: Kusjuures (P (S), ) on ka vähim element: Kristo Heero Denotatsioonsemantika 31

Lemma: (State! State, ) on järjestatud hulk, kus osaline funktsioon s = undef s korral on State! State vähim element. Kristo Heero Denotatsioonsemantika 32

Nõudmisi FIX F-le. FIX F on F püsipunkt, st. F (FIX F) = FIX F FIX F on vähim F püsipunkt, st. kui F g = g, siis FIX F g. Analoogiliselt varem tõestatule, kui F omab vähimat püsipunki g 0, siis see on unikaalne. Nüüd on vaja veel veenduda, et meil esineda võivad funktsionaalid omaksid tõepoolest vähimat püsipunkti. Kristo Heero Denotatsioonsemantika 33

Täielikult järjestatud hulgad Olgu järjestatud hulk (D, ) ja Y D. Siis elementi d D, mille korral d Y, d d nimetatakse Y ülemiseks tõkkeks. Y ülemist tõket d nimetatakse ülemiseks rajaks siis ja ainult siis, kui d on Y ülemine tõke ning järeldub d d. Kui Y eksisteerib ülemine tõke, siis see on unikaalne. Kristo Heero Denotatsioonsemantika 34

Kui Y eksisteerib ülemine raja, siis seda tähistame Y. Alamhulka Y nimetatakse ahelaks, kui d 1, d 2 Y korral kehtib d 1 d 2 või d 2 d 1. Näited: (P ({a, b, c}), ), siis alamhulk Y 0 = {, {a}, {a, c}} on ahel. {a,b,c} ja {a, c} on Y 0 ülemised tõkked ja {a, c} on vähim. Alamhulk {, {a}, {c}, {a, c}} aga ei ole ahel. Kuid on olemas siiski ülemine raja {a, c}. Alamhulk on ahel ja iga P ({a, b, c}) element on ülemine tõke, kusjuures ülemiseks rajaks on. Kristo Heero Denotatsioonsemantika 35

Näide Olgu g n : State! State defineeritud järgmiselt: Ilmneb, et g n g m, kui n m, sest g n on enamatel olekutel defineerimata. Olgu Y 0 = {g n n 0} Siis Y 0 on ahel, kuna g n g m iga n m. Y 0 vähim ülemine tõke on osaline funktsioon: Kristo Heero Denotatsioonsemantika 36

Järjestatud hulka (D, ) nimetatakse täielike ahelatega järjestatud hulgaks (chain complete partially ordered set - ccpo), kui iga ahela Y jaoks leidub Y ning nimetatakse täielikuks võreks, kui Y eksisteerib iga D alamhulga Y korral. Kristo Heero Denotatsioonsemantika 37

Fakt: Kui (D, ) on ccpo, siis leidub vähim element, mis on antud järgmiselt: =. Lemma: (State! State, ) on ccpo. Ahela Y ülemine raja on antud järgmiselt: graph( Y) = {graph(g) g Y} st. ( Y) s = s siis ja ainult siis, kui g s = s mõne g Y jaoks. Kristo Heero Denotatsioonsemantika 38

Monotoonsed funktsioonid Olgu (D, ) ja (D, ) ccpo d ja täielik funktsioon f: D D. Siis funktsiooni f nimetame monotoonseks, kui d 1 d 2 järeldub f d 1 f d 2 iga d 1 ja d 2 valiku korra. Kristo Heero Denotatsioonsemantika 39

Näiteid Olgu ccpo d (P ({a, b, c}), ) ja (P ({d, e}), ) siis funktsioon f 1 : P ({a, b, c}) P ({d, e}) kirjeldatud tabelina on monotoonne: Funktsioon f 2 kirjeldatud tabelina ei ole monotoonne: Kristo Heero Denotatsioonsemantika 40

Näiteid harjutamiseks Olgu (P (N), ) ccpo ja järgmised funktsioonid P (N) P (N). Millised neist on monotoonsed: Kristo Heero Denotatsioonsemantika 41

Monotoonsete funktsioonide omadused Fakt: Olgu (D, ), (D, ) ja (D, ) ccpo d (täielike ahelatega järjestatud hulgad) ja olgu f : D D ja f : D D monotoonsed funktsioonid. Siis f f : D D on ka monotoonne. Kristo Heero Denotatsioonsemantika 42

Lemma: Olgu (D, ), (D, ) ccpo d (täielike ahelatega järjestatud hulgad) ja f: D D monotoonne funktsioon. Kui Y on ahel hulgas D, siis {f d d Y} on ahel hulgas D. Ja veelgi enam, kehtib {f d d Y} f ( Y) Kristo Heero Denotatsioonsemantika 43

Üldiselt me ei saa loota, et monotoonne funktsioon säilitab ülemise raja {f d d Y} = f ( Y) Näiteks Kristo Heero Denotatsioonsemantika 44

Me ütleme, et funktsioon f: D D, mis on defineeritud ccpo del (D, ), (D, ), on pidev, kui ta on monotoonne ja kehtib {f d d Y} = f ( Y) kõigi mittetühjade ahelate Y korral. Kui {f d d Y} = f ( Y) kehtib tühja ahela korral, st. = f, siis funktsiooni f nimetatakse agaraks (strict). Kristo Heero Denotatsioonsemantika 45

Näide Vaata lk 40 esimest funktsiooni. See on rangelt pidev. Kristo Heero Denotatsioonsemantika 46

Lemma: Olgu (D, ), (D, ) ja (D, ) ccpo d ja olgu f : D D ja f : D D pidevad funktsioonid. Siis f f : D D on ka pidev. Kui antud funktsioonid on ranged, siis ka nende kompositsioon on range. Kristo Heero Denotatsioonsemantika 47

Teoreem: Olgu f : D D pidev funktsioon ccpo l (D, ) vähima elemendiga. Siis FIX f = {f n n 0} defineerib D elemendi ja see element on f vähim püsipunkt. Kristo Heero Denotatsioonsemantika 48

Otsestiili semantika eksistents Peame veenduma, et tõepoolest defineerib funktsiooni. Selleks peame näitama, et F on pidev. Kristo Heero Denotatsioonsemantika 49

Paneme tähele, et F g = F 1 (F 2 g), kus Kuna pidevate funktsioonide kompositsioon on pidev, siis meil on vaja näidata, et F 1 ja F 2 on pidevad. Kristo Heero Denotatsioonsemantika 50

Lemma 4.43: Olgu g 0 : State! State, p : State T ja F g = cond(p, g, g 0 ), siis F on pidev. Lemma 4.45: Olgu g 0 : State! State ja F g = g g 0, siis F on pidev. Kristo Heero Denotatsioonsemantika 51

Väide: While keele semantilised võrrandid (vt. slaidi 5) defineerivad täieliku funktsiooni S ds : Stm (State State) Kristo Heero Denotatsioonsemantika 52

Näide Vaatame faktoriaali lause denotatsioon-semantikat. Rakendame seda olekule s 0, milles x = 3. kus ehk Kristo Heero Denotatsioonsemantika 53

Semantiline ekvivalents Ütleme, et laused S1 ja S2 on semantiliselt ekvivalentsed, kui Kristo Heero Denotatsioonsemantika 54

Struktuurse- ja denotatsioonsemantika samaväärsus Teoreem: While keele iga lause S korral kehtib Mõlemad semantilised funktsioonid kohal S on State! State. Järjestatud hulga elemendid d1 ja d2 on võrdsed, kui d1 d2 ja d2 d1. Kristo Heero Denotatsioonsemantika 55

Seega teoreemi tõestamiseks piisab kahe järgmise lemma tõestamisest: Lemma 4.56: While keele iga lause S korral kehtib Lemma 4.57: While keele iga lause S korral kehtib Kristo Heero Denotatsioonsemantika 56

Laiendame While keelt - Proc Toome sisse plokkstruktuuri lokaalsete muutujate ja protseduuride deklaratsioonid Abstraktne süntaks: Kristo Heero Denotatsioonsemantika 57

Skoopimine Staatiline (call p täitmine sisemise blokis modifitseerib globaalset muutujat x) Dünaamiline (call p täitmine sisemises blokis modifitseerib lokaalset muutujat x) Kristo Heero Denotatsioonsemantika 58

Iga muutujaga seostame unikaalse aadressi (location) ja iga aadressiga seostame väärtuse. Seega senise State asemel, kus muutuja seoti vahetult tema väärtusega, kasutame Store (väärtuste kogum), kus muutuja aadressid on seotud väärtustega ja Env V (muutuja keskkond), kus muutuja on seotud unikaalse aadressiga. Kristo Heero Denotatsioonsemantika 59

Aadresside domeen Loc = Ζ Operatsioon järgmise aadressi saamiseks new : Loc Loc Väärtuste kogum, kus next erimärk, milles hoitakse järgmist vaba aadressi. Store = Loc {next} Ζ Muutuja keskkond Env V = Var Loc Kristo Heero Denotatsioonsemantika 60

Seega senine olek s = sto env V, seega defineerime funktsiooni: lookup env V sto = sto env V lookup: Env V Store State Nüüd saame kirja panna uue semantilise funktsiooni S ds : S ds : Stm Env V (Store! Store) Kristo Heero Denotatsioonsemantika 61

While keele laused S ds ga. Kristo Heero Denotatsioonsemantika 62

Muutuja keskkonna uuendamine Muutuja keskkonda uuendatakse iga kord, kui sisenetakse blokki, mis sisaldab lokaalseid muutujaid. Muutuja deklaratsiooni süntaktilise kategooria jaoks võtame selleks otstarbeks kasutusele semantilise funktsiooni: Kristo Heero Denotatsioonsemantika 63

võtab argumentideks paari, mis koosneb hetke muutuja keskkonna ja väärtuste kogumi ning tagastab mõlemad uuendatuna. Kristo Heero Denotatsioonsemantika 64

Kuni pole protseduure veel kasutusse võetud, võime laiendada semantilist funktsiooni S ds : Kristo Heero Denotatsioonsemantika 65

Protseduuri keskkond On täielik funktsioon, mis seob iga protseduuri tema täidetava keha efektiga: Protseduuri keskkonna uuendamiseks kasutame semantilist funktsiooni protseduuri deklaratsioonil: Kristo Heero Denotatsioonsemantika 66

Mitterekursiivsete protseduride Kristo Heero Denotatsioonsemantika 67

Semantiline funktsioon keeles Proc Kristo Heero Denotatsioonsemantika 68

Rekursiivsed protseduurid Kristo Heero Denotatsioonsemantika 69