(Inst for) ::= for

Transkrypt

(Inst for) ::= for
Pascal — Składnia i semantyka
Składnia przedstawiona w postaci reguł gramatycznych.
Semantyka operacyjna instrukcji podana w postac schematów
blokowych.
Składnia i semantyka operacyjna Pascala
Instrukcje
hInsti ::=
hInst przypi |
hInst blokui |
hInst if then elsei |
hInst if theni |
hInst whilei |
hInst repeati |
hInst fori |
···
Składnia i semantyka operacyjna Pascala
-2-
Instrukcja przypisania
hInst przypi ::=
START
hLokacjai := hWyrażeniei
Lokacja
wyrazenie
Na przykład:
pom := pom - 15
META
tab[i +3] := tab[i]
rekord.pole := 3.1459
Składnia i semantyka operacyjna Pascala
-3-
Ciąg instrukcji a instrukcja bloku
START
hCiąg Insti ::=
Inst_1
hi |
hInsti |
hInsti ; hCiąg Insti
Inst_n
META
Składnia i semantyka operacyjna Pascala
-4-
Ciąg instrukcji a instrukcja bloku
START
hInst blokui ::=
Inst_1
begin
hCiąg Insti
end
Inst_n
META
Składnia i semantyka operacyjna Pascala
-5-
Instrukcja warunkowa if–then–else
START
hInst if then elsei ::=
true
if hWaruneki then
hInst 1i
else
Warunek
Inst_1
false
Inst_2
hInst 2i
META
Składnia i semantyka operacyjna Pascala
-6-
Instrukcja warunkowa if–then
START
true
hInst if theni ::=
if hWaruneki then
hInst 1i
Warunek
false
Inst_1
META
Składnia i semantyka operacyjna Pascala
-7-
Instrukcja pętli while–do
START
true
hInst whilei ::=
while hWaruneki do
hInst 1i
Warunek
false
Inst_1
META
Składnia i semantyka operacyjna Pascala
-8-
Instrukcja pętli repeat–until
START
Ciag_Inst
hInst repeati ::=
repeat
hCiag Insti
true
Warunek
false
until hWaruneki
META
Składnia i semantyka operacyjna Pascala
-9-
Instrukcja pętli for–do
hInst fori ::=
for hzmiennai := hwyr 1i to hwyr 2i do
hInsti
jest równoważne
hzmiennai := hwyr 1i – 1;
while hzmiennai < hwyr 2i do
begin
hzmiennai := hzmiennai + 1;
hInsti
end
Składnia i semantyka operacyjna Pascala
-10-
Algorytm Euklidesa
START
true
true
m := m − n
m>n
m <> n
false
false
n := n − m
META
Składnia i semantyka operacyjna Pascala
-11-
Algorytm Euklidesa
START
true
Inst
while m <> n do
hInsti
true
m := m − n
m>n
m <> n
false
false
n := n − m
META
Składnia i semantyka operacyjna Pascala
-12-
Algorytm Euklidesa
START
true
while m <> n do
if m > n then
hInst 1i
else
true
Inst_1
m := m − n
m>n
m <> n
false
false
Inst_2
n := n − m
hInst 2i
META
Składnia i semantyka operacyjna Pascala
-13-
Algorytm Euklidesa
START
true
while m <> n do
if m > n then
true
m := m - n
else
m := m − n
m>n
m <> n
false
false
n := n − m
n := n - m
META
Składnia i semantyka operacyjna Pascala
-14-
Pętla while–do a if
START
true
START
Warunek
false
Inst_1
true
Warunek
false
true
Inst_1
Warunek
false
Inst_1
META
META
Składnia i semantyka operacyjna Pascala
-15-
Pętla while–do a if
if hwaruneki then
begin
while hwaruneki do
hInst 1i
hInst 1i ;
==
while hwaruneki do
hInst 1i
end
Składnia i semantyka operacyjna Pascala
-16-