Kirjeldab kuidas toimub programmide täitmine Tähendus spetsifitseeritakse olekuteisendussüsteemi abil Loomulik semantika

Σχετικά έγγραφα
T~oestatavalt korrektne transleerimine

Funktsiooni diferentsiaal

Suhteline salajasus. Peeter Laud. Tartu Ülikool. peeter TTÜ, p.1/27

ITI 0041 Loogika arvutiteaduses Sügis 2005 / Tarmo Uustalu Loeng 4 PREDIKAATLOOGIKA

Lokaalsed ekstreemumid

Kontekstivabad keeled

Matemaatiline analüüs I iseseisvad ülesanded

Formaalsete keelte teooria. Mati Pentus

MATEMAATIKA TÄIENDUSÕPE MÕISTED, VALEMID, NÄITED LEA PALLAS XII OSA

Kompleksarvu algebraline kuju

Lambda-arvutus. λ-termide süntaks. Näiteid λ-termidest. Sulgudest hoidumine. E ::= V muutuja (E 1 E 2 ) aplikatsioon (λv.

HAPE-ALUS TASAKAAL. Teema nr 2

Matemaatiline analüüs I iseseisvad ülesanded

Geomeetrilised vektorid

Κεφάλαιο 4 Σημασιολογία μιας Απλής Προστακτικής Γλώσσας

Punktide jaotus: kodutööd 15, nädalatestid 5, kontrolltööd 20+20, eksam 40, lisapunktid Kontrolltööd sisaldavad ka testile vastamist

Kontekstivabad keeled

MATEMAATIKA TÄIENDUSÕPE MÕISTED, VALEMID, NÄITED, ÜLESANDED LEA PALLAS VII OSA

2.2.1 Geomeetriline interpretatsioon

HULGATEOORIA ELEMENTE

Graafiteooria üldmõisteid. Graaf G ( X, A ) Tippude hulk: X={ x 1, x 2,.., x n } Servade (kaarte) hulk: A={ a 1, a 2,.., a m } Orienteeritud graafid

Mudeliteooria. Kursust luges: Kalle Kaarli september a. 1 Käesoleva konspekti on L A TEX-kujule viinud Indrek Zolk.

Overview. Transition Semantics. Configurations and the transition relation. Executions and computation

Arvuteooria. Diskreetse matemaatika elemendid. Sügis 2008

FUNKTSIONAALNE PROGRAMMEERIMINE. Skeemid. Eesmärk: esitada riistvara skeeme ja teisi andmevoodiagrammidel baseeruvaid kirjeldusi Haskellis

Μαζέρας Αχιλλέας. Οι εντολές επανάληψης στην Pascal (While) Φυσικός Αυτοματιστής M.Sc. Νοέµβριος 2009

1 MTMM Kõrgem matemaatika, eksamiteemad 2014

ΟΜΟΣΠΟΝ ΙΑ ΕΚΠΑΙ ΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑ ΟΣ (Ο.Ε.Φ.Ε.) ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2013

ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2014

Vektorid II. Analüütiline geomeetria 3D Modelleerimise ja visualiseerimise erialale

TTÜ informaatikainstituut. Tutvumine Pythoniga

Semantiline analüüs. Süntaksipuu dekoreeritakse tüübi- ja muu kontekstist sõltuva

28. Sirgvoolu, solenoidi ja toroidi magnetinduktsiooni arvutamine koguvooluseaduse abil.

KOMBINATSIOONID, PERMUTATSIOOND JA BINOOMKORDAJAD

TTÜ informaatikainstituut. Tutvumine Pythoniga

Lexical-Functional Grammar

Diskreetne matemaatika 2016/2017. õ. a. Professor Peeter Puusemp

Lexical-Functional Grammar

Algebraliste võrrandite lahenduvus radikaalides. Raido Paas Juhendaja: Mart Abel

ιαφάνειες παρουσίασης #3

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Keerukusteooria elemente

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 27/01/2013

Μεταγλωττιστές Βελτιστοποίηση

Mathematica kasutamine

Αποτελέσματα προόδου

Jätkusuutlikud isolatsioonilahendused. U-arvude koondtabel. VÄLISSEIN - COLUMBIA TÄISVALATUD ÕÕNESPLOKK 190 mm + SOOJUSTUS + KROHV

KATEGOORIATEOORIA. Kevad 2010

KATEGOORIATEOORIA. Kevad 2016

ιαφάνειες παρουσίασης #3

ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΔΟΜΗΜΕΝΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Γ ΕΠΑΛ

ΔΗΜΟΤΙΚΕΣ ΕΚΛΟΓΕΣ 18/5/2014 ΑΚΥΡΑ

Πίνακας Περιεχομένων. 1. Locals Window & BreakPoints

Neformalna verifikacija

Λύσεις Σειράς Ασκήσεων 5

Α2. Να γράψετε στο τετράδιό σας τους αριθμούς 1,2,3,4,5 από τη Στήλη Α και δίπλα το γράμμα α,β,γ,δ,ε,στ της Στήλης Β που δίνει τη σωστή αντιστοιχία.

Matemaatiline analüüs IV praktikumiülesannete kogu a. kevadsemester

- Αναπαράσταση ακέραιας τιµής : - Εύρος ακεραίων : - Ακέραιοι τύποι: - Πράξεις µε ακεραίους (DIV - MOD)

ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) (PASCAL ) Εντολές Ελέγχου & Επανάληψης

Αλγόριθμοι. Α. Υπολογιστικά Προβλήματα. Β. Εισαγωγή στους Αλγόριθμους. Γ. ομή Αλγόριθμων. Δ. ομές εδομένων

Απαντήσεις στο μάθημα Δομημένος Προγραμματισμός ΕΠΑΛ

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΤΕΛΟΣ 1ΗΣ ΑΠΟ 6 ΣΕΛΙ ΕΣ

ΑΠΑΝΤΗΣΕΙΣ. H διαδικασία ανεύρεσης λογικών λαθών περιλαμβάνει : β- Σωστό. Διαπίστωση του είδους του λάθους γ- Σωστό δ- Λάθος

Δημιουργία Δυαδικών Δέντρων Αναζήτησης

Ehitusmehaanika harjutus

Προέλευση της Pazcal ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ. Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

YMM3740 Matemaatilne analüüs II

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ

Ruumilise jõusüsteemi taandamine lihtsaimale kujule

ιαφάνειες παρουσίασης #5

4 T~oenäosuse piirteoreemid Tsentraalne piirteoreem Suurte arvude seadus (Law of Large Numbers)... 32

Γραπτές εξετάσεις στο μάθημα: ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ (Θ) Εισηγητής: Γεωργίου Χρήστος ΘΕΜΑΤΑ & ΑΠΑΝΤΗΣΕΙΣ. Β. Χαρακτήρας(Αλφαριθμητικά)

ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ-ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΚΑΔΗΜΑΪΚΟ ΕΠΑΛ- ΚΑΝΙΓΓΟΣ 13- ΤΗΛ

Κεφάλαιο 11 Επανάληψη Ασκήσεις 03

1.1. NATURAAL-, TÄIS- JA RATSIONAALARVUD

ΠΡΟΤΕΙΝΟΜΕΝΕΣ ΛΥΣΕΙΣ

6.6 Ühtlaselt koormatud plaatide lihtsamad

Krüptoloogia II: Sissejuhatus teoreetilisse krüptograafiasse. Ahto Buldas

Planeedi Maa kaardistamine G O R. Planeedi Maa kõige lihtsamaks mudeliks on kera. Joon 1

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2009

Koduseid ülesandeid IMO 2017 Eesti võistkonna kandidaatidele vol 4 lahendused

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Διδάσκουσα Δρ Β.

Παραγωγή Ενδιάµεσου Κώδικα. Γιώργος Μανής

Παραγωγή Ενδιάµεσου Κώδικα

4.1 Funktsiooni lähendamine. Taylori polünoom.

ΒΑΣΙΚΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΔΟΜΕΣ ΣΕ ΨΕΥΔΟΚΩΔΙΚΑ ΚΑΙ ΣΕ ΔΡΠ

4.2.5 Täiustatud meetod tuletõkestusvõime määramiseks

B (10) Formal Methods: Software Development in B Qiu Zongyan (May 11, 2010) 1

ΥΠΟΥΡΓΕΙΟ ΠΑΙ ΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙ ΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2006 ΛΥΣΕΙΣ

Δομή Επανάληψης. Κεφάλαιο 7 Mike Trimos

Κεφάλαιο 5 Αξιωματική Σημασιολογία και Απόδειξη Ορθότητας Προγραμμάτων

ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ PASCAL

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2015

Ενότητα 1: «Εισαγωγή στην Αλγοριθμική και τον Προγραμματισμό. Απλές ασκήσεις με γλώσσα Pascal»

Matemaatiline analüüs II praktikumiülesannete kogu a. kevadsemester

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2008

Σχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13

Transcript:

Operatsioonsemantika Kirjeldab kuidas toimub programmide täitmine Tähendus spetsifitseeritakse olekuteisendussüsteemi abil Loomulik semantika kirjeldab kuidas j~outakse l~oppolekusse Struktuurne semantika kirjeldab programmi täitmist üksikute sammude kaupa

Loomulik semantika Konfiguratsioonid on kujul S, s v~oi s, kus S on lause ja s on olek (so. keskond mis annab muutujatele väärtused) Üleminekud on kujul S, s s Iga keelekonstruktsiooniga seotakse tuletusreegel kuidas lihtsamate konstruktsioonide üleminekutest antud konstruktsiooni üleminek saavutatakse

Keele While loomulik semantika Tühilause skip, s s Omistamine x := a, s s[x A[[a]]s] Kompositsioon S 1, s s S 2, s s S 1 ; S 2, s s

Keele While loomulik semantika Tingimuslause S 1, s s if b then S 1 else S 2, s s S 2, s s if b then S 1 else S 2, s s if B[[b]]s = tt if B[[b]]s = ff While-tsükkel S, s s while b do S, s s while b do S, s s while b do S, s s if B[[b]]s = tt if B[[b]]s = ff

Keele While loomulik semantika Näide: y := 1; while (x = 1) do (y := y x; x := x 1) A 2, s 3 s 4 A 3, s 4 s 5 A 2, s 1 s 2 A 3, s 2 s 3 A 2 ; A 3, s 1 s 3 A 2 ; A 3, s 3 s 5 W, s 5 s 5 W, s 3 s 5 A 1, s 0 s 1 W, s 1 s 5 kus A 1 ; W, s 0 s 5 A 1 = y := 1 s 0 = [x 3] s 3 = [x 2, y 3] A 2 = y := y x s 1 = [x 3, y 1] s 4 = [x 2, y 6] A 3 = x := x 1 s 2 = [x 3, y 3] s 5 = [x 1, y 6] W = while (x = 1) do (A 2 ; A 3 )

Semantika omadusi ekvivalents Laused S 1 ja S 2 on semantiliselt samaväärsed (ekvivalentsed) kui iga oleku s ja s korral S 1, s s S 2, s s Lemma: Lause while b do S on semantiliselt samaväärne lausega if b then (S; while b do S) else skip T~oestus: while b do S, s s if b then (S; while b do S) else skip, s s ( ) ( )

Semantika omadusi ekvivalents (t~oestuse järg) ( ) ( ), B[[b]]s = tt. T 1. T 2 S, s s while b do S, s s while b do S, s s. T 1. T 2 S, s s while b do S, s s S; while b do S, s s if b then (S; while b do S) else skip, s s

Semantika omadusi ekvivalents (t~oestuse järg) ( ) ( ), B[[b]]s = ff while b do S, s s skip, s s if b then (S; while b do S) else skip, s s ( ) ( ), B[[b]]s = tt ( ) ( ), B[[b]]s = ff

Semantika omadusi determinism Semantika on ühene (determineeritud) kui suvaliste S, s, s, s korral S, s s S, s s = s = s Teoreem: Keele While loomilik semantika on ühene. T~oestus: Eeldame et S, s s ning näitame et kui S, s s siis s = s. T~oestus toimub induktsiooniga S, s s tuletuspuu struktuuri järgi.

Semantiline funktsioon S ns Loomulik semantika indutseerib semantilise funktsiooni S ns : Stm (State State) so. iga lause S jaoks defineerime (osalise) funktsiooni S ns [[S]] State { State s if S, s s S ns [[S]]s = undef otherwise

Struktuurne semantika Konfiguratsioonid on kujul S, s v~oi s, kus S on lause ja s on olek Üleminekud on kujul S, s S, s v~oi S, s s Konfiguratsioon on l~oppkonfiguratsioon, kui ühtegi temast lähtuvat üleminekut ei leidu k-sammuline üleminek S, s k γ L~oplikusammuline üleminek S, s γ

Keele While struktuurne semantika Tühilause skip, s s Omistamine x := a, s s[x A[[a]]s] Kompositsioon S 1, s S 1, s S 1 ; S 2, s S 1 ; S 2, s S 1, s s S 1 ; S 2, s S 2, s

Keele While struktuurne semantika Tingimuslause if b then S 1 else S 2, s S 1, s if b then S 1 else S 2, s S 2, s if B[[b]]s = tt if B[[b]]s = ff While-tsükkel while b do S, s if b then (S; while b do S) else skip, s

Keele While struktuurne semantika Näide: y := 1; while (x = 1) do (y := y x; x := x 1), [x 3] while (x = 1) do (y := y x; x := x 1), [x 3, y 1] if (x = 1) then ((A 2 ; A 3 ); W ) else skip, [x 3, y 1] y := y x; x := x 1; W, [x 3, y 1] x := x 1; W, [x 3, y 3] while (x = 1) do (y := y x; x := x 1), [x 2, y 3] if (x = 1) then ((A 2 ; A 3 ); W ) else skip, [x 1, y 6] skip, [x 1, y 6] [x 1, y 6] kus A 2 = y := y x A 3 = x := x 1 W = while (x = 1) do (A 2 ; A 3 )

Semantika omadusi Laused S 1 ja S 2 on semantiliselt samaväärsed (ekvivalentsed) kui iga oleku s ja l~oppkonfiguratsiooni γ korral S 1, s γ S 2, s γ Semantika on ühene (determineeritud) kui suvaliste S, s, γ ja γ korral S, s γ S, s γ = γ = γ Teoreem: Keele While struktuurne semantika on ühene.

Semantika omadusi Lemma: Kui S 1 ; S 2, s k s siis leiduvad s, k 1, k 2 sellised et S 1, s k 1 s ja S 2, s k 2 s, kus k = k 1 + k 2. T~oestus: Induktsiooniga derivatsioonijada S 1 ; S 2, s k s pikkuse järgi. Induktsiooni baas triviaalne. Hüpotees, et k k 0 jaoks kehtib. Näitame, et kehtib ka korral. S 1 ; S 2, s k 0+1 s

Semantika omadusi Lemma: Alljärgnev implikatsioon ei kehti! S 1 ; S 2, s S 2, s = S 1, s s Lemma: Alljärgnev implikatsioon kehtib! S 1, s k s = S 1 ; S 2, s k S 2, s

Semantiline funktsioon S sos Struktuurne semantika indutseerib semantilise funktsiooni S sos : Stm (State State) so. iga lause S jaoks defineerime (osalise) funktsiooni S sos [[S]] State { State s if S, s S sos [[S]]s = s undef otherwise

Loomuliku ja struktuurse semantika samaväärsus Teoreem: Iga keele While lause S korral S ns [[S]] = S sos [[S]] Lemma: Iga keele While lause S korral S, s s = S, s s Lemma: Iga keele While lause S korral S, s k s = S, s s

Keele While laiendused katkestamine Abstraktne süntaks S ::= x := a skip S 1 ; S 2 if b then S 1 else S 2 while b do S abort Katkestab programmi töö Loomulik ja struktuurne semantika jäävad samaks! Loomulikus semantikas pole v~oimalik eristada l~opmatut tsüklit (while true do skip) ning katkestamist (abort) Struktuurses semantikas on l~opmatu tsükkel esitatud l~opmatu derivatsiooni kaudu ning katkestamine l~opliku derivatsiooni kaudu, mis l~opeb kinnijäänud konfiguratsioonis (stuck configuration)

Keele While laiendused mittedetermineeritus Abstraktne süntaks S ::= x := a skip S 1 ; S 2 if b then S 1 else S 2 while b do S S 1 or S 2 Mittedetermineeritud valik Näiteks lause (x := 1 or (x := 2; x := x + 2)) täitmise järel v~oib muutuja x väärtuseks olla kas 1 v~oi 4

Keele While laiendused mittedetermineeritus Loomulik semantika S 1, s s S 2, s s S 1 or S 2, s s S 1 or S 2, s s Struktuurne semantika S 1 or S 2, s S 1, s S 1 or S 2, s S 2, s Loomulikus semantikas väldib mittedetermineeritus l~opmatut tsüklit (kui see on v~oimalik) Struktuurses semantikas mittedetermineeritus ei väldi l~opmatuid tsükleid

Keele While laiendused paralleelsus Abstraktne süntaks S ::= x := a skip S 1 ; S 2 if b then S 1 else S 2 while b do S S 1 par S 2 Paralleelne täitmine Näiteks lause (x := 1 par (x := 2; x := x + 2)) täitmise järel v~oib muutuja x väärtuseks olla kas 1, 3 v~oi 4

Keele While laiendused paralleelsus Loomulik semantika S 1, s s S 2, s s S 2, s s S 1, s s S 1 par S 2, s s S 1 par S 2, s s Struktuurne semantika S 1, s S 1, s S 1 par S 2, s S 1 par S 2, s S 2, s S 2, s S 1 par S 2, s S 1 par S 2, s S 1, s s S 1 par S 2, s S 2, s S 2, s s S 1 par S 2, s S 1, s Struktuurne semantika v~oimaldab väljendada käskude p~oimumist Loomulikus semantikas pole see v~oimalik

Lihtne imperatiivne keel Block Laiendab keelt While plokkstruktuuridega lokaalsete muutujate defineerimiseks Süntaktilised kategooriad n Num x Var a AExp b BExp S Stm D Dec arvud muutujad aritmeetilised avaldised t~oeväärtusavaldised laused muutujate deklaratsioonid

Lihtne imperatiivne keel Block Abstraktne süntaks Näide: S ::= x := a skip S 1 ; S 2 if b then S 1 else S 2 while b do S begin D S end D ::= var x := a; D ε begin var y := 1; (x := 1; begin var x := 2; y := x + 1 end; x := y + x) end

Lihtne imperatiivne keel Block Plokkstruktuuri loomulik semantika D, s D s S, s s begin D S end, s s [DV(D) s] kus DV(var x := a; D) = {x} DV(D) DV(ε) = { ja (s s x if x X [X s]) x = s x if x X Deklaratsioonide loomulik semantika D, s[x A[[a]]s] D s var x := a; D, s D s ε, s D s

Lihtne imperatiivne keel Proc Laiendab keelt Block protseduuridefinitsioonide ja väljakutsetega Süntaktilised kategooriad n Num x Var a AExp b BExp S Stm D Dec p PName P Proc arvud muutujad aritmeetilised avaldised t~oeväärtusavaldised laused muutujate deklaratsioonid protseduuride nimed protseduuride definitsioonid

Lihtne imperatiivne keel Proc Abstraktne süntaks S ::= x := a skip S 1 ; S 2 if b then S 1 else S 2 while b do S begin D P S end call p D ::= var x := a; D ε P ::= proc p is S; P ε

Lihtne imperatiivne keel Proc Näide: begin var x := 0; proc p is x := x 2; proc q is call p; begin var x := 5; proc p is x := x + 1; call q; y := x end end

Keele Proc loomulik semantika Protseduuride keskond dünaamiline skoopimine Env P = PName Stm Protseduuride keskond staatiline skoopimine Üleminekud on kujul Env P = PName Stm Env P env S, s s

Keele Proc loomulik semantika Tühilause env skip, s s Omistamine env x := a, s s[x A[[a]]s] Kompositsioon env S 1, s s env S 2, s s env S 1 ; S 2, s s

Keele Proc loomulik semantika Tingimuslause env S 1, s s env if b then S 1 else S 2, s s env S 2, s s env if b then S 1 else S 2, s s if B[[b]]s = tt if B[[b]]s = ff While-tsükkel env S, s s env while b do S, s s env while b do S, s s if B[[b]]s = tt env while b do S, s s if B[[b]]s = ff

Keele Proc loomulik semantika Plokkstruktuur D, s D s upd(p, env) S, s s env begin D P S end, s s [DV(D) s] Protseduuri keskkonna muutmine Dünaamiline skoopimine upd(proc p is S; P, env) = upd(p, env[p S]) upd(ε, env) = env Staatiline skoopimine upd(proc p is S; P, env) = upd(p, env[p (S, env)]) upd(ε, env) = env

Keele Proc loomulik semantika Protseduuride väljakutsumine dünaamiline skoopimine env S, s s env call p, s s where env p = S Protseduuride väljakutsumine staatiline skoopimine env S, s s env call p, s s where env p = (S, env ) Rekursiivsete protseduuride väljakutsumine staatiline skoopimine env [p (S, env )] S, s s env call p, s s where env p = (S, env )