AM
0
(Kapitel 14.1 + 14.2)
JanisVoigtländer
TehnisheUniversitätDresden
Sommersemester 2007
.
6
?
- -
? ?
6
6
?
6
?
.
.
.
.
.
... . . . . .
. . . .
...
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... . . . . . . . . . . .
.
.
.
.
... . . . . .
. . . .
...
.
.
.
. .
. . . . . . . . . .
...
.
.
.
.
.
.
.
.
.
.
prozessor
Haupt-
speiher Zentral-
Steuerleitungen Steuerleitungen Adressbus
Datenbus E/A-Geräte
0
4 2 -7 .
Ausgabeband
17 -3 6 8 1
8
? 6
?
7
6
?
@@
Eingabeband AM 0
Datenbus
3 2 8 9 -17
2 3 4 5
Adressen: 1
-5 11 4
Datenkeller Hauptspeicher
? -
Befehlsz¨ahler 9
1: LIT 3;
2: JMP 7;
3: ADD;
.. . 9: MUL;
Programmspeicher
int main()
{ int i,n,s;
sanf("%i",&n);
i=1;
s=0;
while (i<=n)
{ s=s+i*i;
i=i+1;
}
printf("%d",s);
return 0;
}
int main()
{ int i,n,s;
sanf("%i",&n);
i=1;
s=0;
while (i<=n)
{ s=s+i*i;
i=i+1;
}
printf("%d",s);
return 0;
}
Wir brauhen: Speiherplätze
int main()
{ int i,n,s;
sanf("%i",&n);
i=1;
s=0;
while (i<=n)
{ s=s+i*i;
i=i+1;
}
printf("%d",s);
return 0;
}
Wir brauhen: Speiherplätze,Ein- und Ausgabe
int main()
{ int i,n,s;
sanf("%i",&n);
i=1;
s=0;
while (i<=n)
{ s=s+i*i;
i=i+1;
}
printf("%d",s);
return 0;
}
Wir brauhen: Speiherplätze,Ein- und Ausgabe,Auswertung von
Ausdrüken
int main()
{ int i,n,s;
sanf("%i",&n);
i=1;
s=0;
while (i<=n)
{ s=s+i*i;
i=i+1;
}
printf("%d",s);
return 0;
}
Wir brauhen: Speiherplätze,Ein- und Ausgabe,Auswertung von
Ausdrüken, Kontrolluss
◮
stattbenannter Speiherplätze(Variablen) lediglihnumerishe Adressen
◮
stattbenannter Speiherplätze(Variablen) lediglihnumerishe Adressen
◮
einzigmögliher Speiherinhalt:ganze Zahl(int)◮
stattbenannter Speiherplätze(Variablen) lediglihnumerishe Adressen
◮
einzigmögliher Speiherinhalt:ganze Zahl(int)◮
konkreterHauptspeiherinhaltmodelliertalspartielleAbbildung vonAdressenauf Inhalte
◮
stattbenannter Speiherplätze(Variablen) lediglihnumerishe Adressen
◮
einzigmögliher Speiherinhalt:ganze Zahl(int)◮
konkreterHauptspeiherinhaltmodelliertalspartielleAbbildung vonAdressenauf Inhalte
◮
mathematish:HS ={
h|
h: N − Z }
◮
stattbenannter Speiherplätze(Variablen) lediglihnumerishe Adressen
◮
einzigmögliher Speiherinhalt:ganze Zahl(int)◮
konkreterHauptspeiherinhaltmodelliertalspartielleAbbildung vonAdressenauf Inhalte
◮
mathematish:HS ={
h|
h: N − Z }
◮
Notation: h=
[1/3,2/2,3/5℄◮
stattbenannter Speiherplätze(Variablen) lediglihnumerishe Adressen
◮
einzigmögliher Speiherinhalt:ganze Zahl(int)◮
konkreterHauptspeiherinhaltmodelliertalspartielleAbbildung vonAdressenauf Inhalte
◮
mathematish:HS ={
h|
h: N − Z }
◮
Notation: h=
[1/3,2/2,3/5℄◮
Update:h
[
n/
d]
◮
stattbenannter Speiherplätze(Variablen) lediglihnumerishe Adressen
◮
einzigmögliher Speiherinhalt:ganze Zahl(int)◮
konkreterHauptspeiherinhaltmodelliertalspartielleAbbildung vonAdressenauf Inhalte
◮
mathematish:HS ={
h|
h: N − Z }
◮
Notation: h=
[1/3,2/2,3/5℄◮
Update:h
[
n/
d]
;h
[
n/
d](
n′ ) =d,fallsn′ =n,sonsth[
n/
d](
n′ ) =h(
n′ )
[
n/
d](
n′ ) =h(
n′ )
◮
stattbenannter Speiherplätze(Variablen) lediglihnumerishe Adressen
◮
einzigmögliher Speiherinhalt:ganze Zahl(int)◮
konkreterHauptspeiherinhaltmodelliertalspartielleAbbildung vonAdressenauf Inhalte
◮
mathematish:HS ={
h|
h: N − Z }
◮
Notation: h=
[1/3,2/2,3/5℄◮
Update:h
[
n/
d]
;h
[
n/
d](
n′ ) =d,fallsn′ =n,sonsth[
n/
d](
n′ ) =h(
n′ )
[
n/
d](
n′ ) =h(
n′ )
◮
Beispielefür h=
[1/3,2/2,3/5℄:h
[
5/
7] =
[1/3,2/2,3/5,5/7℄◮
stattbenannter Speiherplätze(Variablen) lediglihnumerishe Adressen
◮
einzigmögliher Speiherinhalt:ganze Zahl(int)◮
konkreterHauptspeiherinhaltmodelliertalspartielleAbbildung vonAdressenauf Inhalte
◮
mathematish:HS ={
h|
h: N − Z }
◮
Notation: h=
[1/3,2/2,3/5℄◮
Update:h
[
n/
d]
;h
[
n/
d](
n′ ) =d,fallsn′ =n,sonsth[
n/
d](
n′ ) =h(
n′ )
[
n/
d](
n′ ) =h(
n′ )
◮
Beispielefür h=
[1/3,2/2,3/5℄:h
[
5/
7] =
[1/3,2/2,3/5,5/7℄und h[
2/
7] =
[1/3,2/7,3/5℄◮
stattbenannter Speiherplätze(Variablen) lediglihnumerishe Adressen
◮
einzigmögliher Speiherinhalt:ganze Zahl(int)◮
konkreterHauptspeiherinhaltmodelliertalspartielleAbbildung vonAdressenauf Inhalte
◮
mathematish:HS ={
h|
h: N − Z }
◮
Notation: h=
[1/3,2/2,3/5℄◮
Update:h
[
n/
d]
;h
[
n/
d](
n′ ) =d,fallsn′ =n,sonsth[
n/
d](
n′ ) =h(
n′ )
[
n/
d](
n′ ) =h(
n′ )
◮
Beispielefür h=
[1/3,2/2,3/5℄:h
[
5/
7] =
[1/3,2/2,3/5,5/7℄und h[
2/
7] =
[1/3,2/7,3/5℄◮
Befehlezur Kommunikation mit:◮
Ein-undAusgabe
◮
stattbenannter Speiherplätze(Variablen) lediglihnumerishe Adressen
◮
einzigmögliher Speiherinhalt:ganze Zahl(int)◮
konkreterHauptspeiherinhaltmodelliertalspartielleAbbildung vonAdressenauf Inhalte
◮
mathematish:HS ={
h|
h: N − Z }
◮
Notation: h=
[1/3,2/2,3/5℄◮
Update:h
[
n/
d]
;h
[
n/
d](
n′ ) =d,fallsn′ =n,sonsth[
n/
d](
n′ ) =h(
n′ )
[
n/
d](
n′ ) =h(
n′ )
◮
Beispielefür h=
[1/3,2/2,3/5℄:h
[
5/
7] =
[1/3,2/2,3/5,5/7℄und h[
2/
7] =
[1/3,2/7,3/5℄◮
Befehlezur Kommunikation mit:◮
Ein-undAusgabe
◮
◮
lediglihEin- und Ausgabeganzer Zahlen (int)◮
lediglihEin- und Ausgabeganzer Zahlen (int)◮
Abstraktionvon interaktiverEin-und Ausgabe◮
lediglihEin- und Ausgabeganzer Zahlen (int)◮
Abstraktionvon interaktiverEin-und Ausgabe;stattdessen:Eingabeband undAusgabeband
◮
lediglihEin- und Ausgabeganzer Zahlen (int)◮
Abstraktionvon interaktiverEin-und Ausgabe;stattdessen:Eingabeband undAusgabeband
◮
Bandinhalte modelliertalsendlihe Listen◮
lediglihEin- und Ausgabeganzer Zahlen (int)◮
Abstraktionvon interaktiverEin-und Ausgabe;stattdessen:Eingabeband undAusgabeband
◮
Bandinhalte modelliertalsendlihe Listen◮
mathematish:Inp =Out =Z ∗
◮
lediglihEin- und Ausgabeganzer Zahlen (int)◮
Abstraktionvon interaktiverEin-und Ausgabe;stattdessen:Eingabeband undAusgabeband
◮
Bandinhalte modelliertalsendlihe Listen◮
mathematish:Inp =Out =Z ∗
◮
Notation: inp
=
1.13.5 oder out= ε
◮
lediglihEin- und Ausgabeganzer Zahlen (int)◮
Abstraktionvon interaktiverEin-und Ausgabe;stattdessen:Eingabeband undAusgabeband
◮
Bandinhalte modelliertalsendlihe Listen◮
mathematish:Inp =Out =Z ∗
◮
Notation: inp
=
1.13.5 oder out= ε
◮
READn:EinlesenersterPositionvoninp
◮
lediglihEin- und Ausgabeganzer Zahlen (int)◮
Abstraktionvon interaktiverEin-und Ausgabe;stattdessen:Eingabeband undAusgabeband
◮
Bandinhalte modelliertalsendlihe Listen◮
mathematish:Inp =Out =Z ∗
◮
Notation: inp
=
1.13.5 oder out= ε
◮
READn:EinlesenersterPositionvoninp und
entsprehendes Updateder Positionn desHS
◮
lediglihEin- und Ausgabeganzer Zahlen (int)◮
Abstraktionvon interaktiverEin-und Ausgabe;stattdessen:Eingabeband undAusgabeband
◮
Bandinhalte modelliertalsendlihe Listen◮
mathematish:Inp =Out =Z ∗
◮
Notation: inp
=
1.13.5 oder out= ε
◮
READn:EinlesenersterPositionvoninp und
entsprehendes Updateder Positionn desHS
◮
WRITE n:Ausgabe desHS-Inhaltsan Positionn◮
lediglihEin- und Ausgabeganzer Zahlen (int)◮
Abstraktionvon interaktiverEin-und Ausgabe;stattdessen:Eingabeband undAusgabeband
◮
Bandinhalte modelliertalsendlihe Listen◮
mathematish:Inp =Out =Z ∗
◮
Notation: inp
=
1.13.5 oder out= ε
◮
READn:EinlesenersterPositionvoninp und
entsprehendes Updateder Positionn desHS
◮
WRITE n:Ausgabe desHS-Inhaltsan PositionnamEnde von out
Problem:
◮
Wir wollenstrukturierteAusdrüke wie(3+5)*(7-2) oderj>2*i+1 auswerten.
Problem:
◮
Wir wollenstrukturierteAusdrüke wie(3+5)*(7-2) oderj>2*i+1 auswerten.
◮
Dies solljedoh inlinearisierter Form erfolgen,
insbesondereeineOperationimmernur aufzwei
Operandenwirken.
Problem:
◮
Wir wollenstrukturierteAusdrüke wie(3+5)*(7-2) oderj>2*i+1 auswerten.
◮
Dies solljedoh inlinearisierter Form erfolgen,
insbesondereeineOperationimmernur aufzwei
Operandenwirken.
◮
Folglihmüssen Zwishenergebnisseberehnet
und in geeigneterWeise vorrätig gehalten
werden.
Problem:
◮
Wir wollenstrukturierteAusdrüke wie(3+5)*(7-2) oderj>2*i+1 auswerten.
◮
Dies solljedoh inlinearisierter Form erfolgen,
insbesondereeineOperationimmernur aufzwei
Operandenwirken.
◮
Folglihmüssen Zwishenergebnisseberehnet
und in geeigneterWeise vorrätig gehalten
werden.
Lösung:
◮
Einführung einesDatenkellers
Problem:
◮
Wir wollenstrukturierteAusdrüke wie(3+5)*(7-2) oderj>2*i+1 auswerten.
◮
Dies solljedoh inlinearisierter Form erfolgen,
insbesondereeineOperationimmernur aufzwei
Operandenwirken.
◮
Folglihmüssen Zwishenergebnisseberehnet
und in geeigneterWeise vorrätig gehalten
werden.
Lösung:
◮
Einführung einesDatenkellers
◮
Ablage und Entnahme jeweils nur anKellerspitzeProblem:
◮
Wir wollenstrukturierteAusdrüke wie(3+5)*(7-2) oderj>2*i+1 auswerten.
◮
Dies solljedoh inlinearisierter Form erfolgen,
insbesondereeineOperationimmernur aufzwei
Operandenwirken.
◮
Folglihmüssen Zwishenergebnisseberehnet
und in geeigneterWeise vorrätig gehalten
werden.
Lösung:
◮
Einführung einesDatenkellers
◮
Ablage und Entnahme jeweils nur anKellerspitze◮
mathematish: DK=
Z ∗
Problem:
◮
Wir wollenstrukturierteAusdrüke wie(3+5)*(7-2) oderj>2*i+1 auswerten.
◮
Dies solljedoh inlinearisierter Form erfolgen,
insbesondereeineOperationimmernur aufzwei
Operandenwirken.
◮
Folglihmüssen Zwishenergebnisseberehnet
und in geeigneterWeise vorrätig gehalten
werden.
Lösung:
◮
Einführung einesDatenkellers
◮
Ablage und Entnahme jeweils nur anKellerspitze◮
mathematish: DK=
Z ∗
◮
Notation: d
=
8:7:2Problem:
◮
Wir wollenstrukturierteAusdrüke wie(3+5)*(7-2) oderj>2*i+1 auswerten.
◮
Dies solljedoh inlinearisierter Form erfolgen,
insbesondereeineOperationimmernur aufzwei
Operandenwirken.
◮
Folglihmüssen Zwishenergebnisseberehnet
und in geeigneterWeise vorrätig gehalten
werden.
Lösung:
◮
Einführung einesDatenkellers
◮
Ablage und Entnahme jeweils nur anKellerspitze◮
mathematish: DK=
Z ∗
◮
Notation: d
=
8:7:2◮
LIT z:Ablageeiner KonstanteProblem:
◮
Wir wollenstrukturierteAusdrüke wie(3+5)*(7-2) oderj>2*i+1 auswerten.
◮
Dies solljedoh inlinearisierter Form erfolgen,
insbesondereeineOperationimmernur aufzwei
Operandenwirken.
◮
Folglihmüssen Zwishenergebnisseberehnet
und in geeigneterWeise vorrätig gehalten
werden.
Lösung:
◮
Einführung einesDatenkellers
◮
Ablage und Entnahme jeweils nur anKellerspitze◮
mathematish: DK=
Z ∗
◮
Notation: d
=
8:7:2◮
LIT z:Ablageeiner Konstante◮
LOADn:Ablage desHS-Inhaltsan PositionnProblem:
◮
Wir wollenstrukturierteAusdrüke wie(3+5)*(7-2) oderj>2*i+1 auswerten.
◮
Dies solljedoh inlinearisierter Form erfolgen,
insbesondereeineOperationimmernur aufzwei
Operandenwirken.
◮
Folglihmüssen Zwishenergebnisseberehnet
und in geeigneterWeise vorrätig gehalten
werden.
Lösung:
◮
Einführung einesDatenkellers
◮
Ablage und Entnahme jeweils nur anKellerspitze◮
mathematish: DK=
Z ∗
◮
Notation: d
=
8:7:2◮
LIT z:Ablageeiner Konstante◮
LOADn:Ablage desHS-Inhaltsan Positionn◮
ADD,MUL,...,EQ,NE,LT,...:Berehnungen
Problem:
◮
Wir wollenstrukturierteAusdrüke wie(3+5)*(7-2) oderj>2*i+1 auswerten.
◮
Dies solljedoh inlinearisierter Form erfolgen,
insbesondereeineOperationimmernur aufzwei
Operandenwirken.
◮
Folglihmüssen Zwishenergebnisseberehnet
und in geeigneterWeise vorrätig gehalten
werden.
Lösung:
◮
Einführung einesDatenkellers
◮
Ablage und Entnahme jeweils nur anKellerspitze◮
mathematish: DK=
Z ∗
◮
Notation: d
=
8:7:2◮
LIT z:Ablageeiner Konstante◮
LOADn:Ablage desHS-Inhaltsan Positionn◮
ADD,MUL,...,EQ,NE,LT,...:Berehnungen
◮
STORE n:Entnahme undentsprehendesUpdate derPositionn desHS
◮
Durhnummerierung allerBefehlein einemProgramm◮
Durhnummerierung allerBefehlein einemProgramm◮
aktuelle Positionim Befehlszählergespeihert (m∈
BZ=N
)◮
Durhnummerierung allerBefehlein einemProgramm◮
aktuelle Positionim Befehlszählergespeihert (m∈
BZ=N
)◮
normalerweiseeinfaheErhöhungnah jeder
Befehlsabarbeitung
◮
Durhnummerierung allerBefehlein einemProgramm◮
aktuelle Positionim Befehlszählergespeihert (m∈
BZ=N
)◮
normalerweiseeinfaheErhöhungnah jeder
Befehlsabarbeitung
◮
JMP n:Sprung an Positionn◮
Durhnummerierung allerBefehlein einemProgramm◮
aktuelle Positionim Befehlszählergespeihert (m∈
BZ=N
)◮
normalerweiseeinfaheErhöhungnah jeder
Befehlsabarbeitung
◮
JMP n:Sprung an Positionn◮
JMC n:bedingterSprung anPositionn
◮
Durhnummerierung allerBefehlein einemProgramm◮
aktuelle Positionim Befehlszählergespeihert (m∈
BZ=N
)◮
normalerweiseeinfaheErhöhungnah jeder
Befehlsabarbeitung
◮
JMP n:Sprung an Positionn◮
JMC n:bedingterSprung anPositionn;
nur wennSpitze desDatenkellers gleih0
0
4 2 -7 .
Ausgabeband
17 -3 6 8 1
8
? 6
?
7
6
?
@@
Eingabeband AM 0
Datenbus
3 2 8 9 -17
2 3 4 5
Adressen: 1
-5 11 4
Datenkeller Hauptspeicher
? -
Befehlsz¨ahler 9
1: LIT 3;
2: JMP 7;
3: ADD;
.. . 9: MUL;
Programmspeicher
◮
AM 0=BZ
×
DK×
HS×
Inp×
Out mit:BZ =
N
BefehlszählerDK =
Z ∗ Datenkeller
HS =
{
h|
h: N − Z }
HauptspeiherInp =
Z ∗ Eingabeband
Out =
Z ∗ Ausgabeband
◮
AM 0=BZ
×
DK×
HS×
Inp×
Out mit:BZ =
N
BefehlszählerDK =
Z ∗ Datenkeller
HS =
{
h|
h: N − Z }
HauptspeiherInp =
Z ∗ Eingabeband
Out =
Z ∗ Ausgabeband
◮
Mashine istjederzeitin einemZustands
= (
m,
d,
h,
inp,
out) ∈
AM0◮
AM 0=BZ
×
DK×
HS×
Inp×
Out mit:BZ =
N
BefehlszählerDK =
Z ∗ Datenkeller
HS =
{
h|
h: N − Z }
HauptspeiherInp =
Z ∗ Eingabeband
Out =
Z ∗ Ausgabeband
◮
Mashine istjederzeitin einemZustands
= (
m,
d,
h,
inp,
out) ∈
AM0◮
Ein Programmist einepartielle, endlihdenierte Abbildung P
von
N
aufdie MengeΓ
aller Befehle.◮
AM 0=BZ
×
DK×
HS×
Inp×
Out mit:BZ =
N
BefehlszählerDK =
Z ∗ Datenkeller
HS =
{
h|
h: N − Z }
HauptspeiherInp =
Z ∗ Eingabeband
Out =
Z ∗ Ausgabeband
◮
Mashine istjederzeitin einemZustands
= (
m,
d,
h,
inp,
out) ∈
AM0◮
Ein Programmist einepartielle, endlihdenierte Abbildung P
von
N
aufdie MengeΓ
aller Befehle.◮
Notation: 1:P(1);2:P(2);
3:P(3);
...
◮
AM 0=BZ
×
DK×
HS×
Inp×
Out mit:BZ =
N
BefehlszählerDK =
Z ∗ Datenkeller
HS =
{
h|
h: N − Z }
HauptspeiherInp =
Z ∗ Eingabeband
Out =
Z ∗ Ausgabeband
◮
Mashine istjederzeitin einemZustands
= (
m,
d,
h,
inp,
out) ∈
AM0◮
Ein Programmist einepartielle, endlihdenierte Abbildung P
von
N
aufdie MengeΓ
aller Befehle.◮
Notation: 1:P(1);2:P(2);
3:P(3);
...
◮
Programmabarbeitungbesteht auswiederholter Anwendungvon Befehlenauf einenZustand.
C[[.]]
:Γ −→ (
AM0−
AM0)
C[[.]]
:Γ −→ (
AM0−
AM0) C[[
READn]](
m,
d,
h,
inp,
out) =
wenninp
=
rst(
inp).
rest(
inp)
mitrst(
inp) ∈ Z ,
rest(
inp) ∈ Z ∗,
dann (
m+
1,
d,
h[
n/
rst(
inp)],
rest(
inp),
out)
C[[.]]
:Γ −→ (
AM0−
AM0) C[[
READn]](
m,
d,
h,
inp,
out) =
wenninp
=
rst(
inp).
rest(
inp)
mitrst(
inp) ∈ Z ,
rest(
inp) ∈ Z ∗,
dann (
m+
1,
d,
h[
n/
rst(
inp)],
rest(
inp),
out)
C[[
WRITEn]](
m,
d,
h,
inp,
out) =
wenn h
(
n) ∈ Z
,dann(
m+
1,
d,
h,
inp,
out.
h(
n))
C[[.]]
:Γ −→ (
AM0−
AM0) C[[
READn]](
m,
d,
h,
inp,
out) =
wenninp
=
rst(
inp).
rest(
inp)
mitrst(
inp) ∈ Z ,
rest(
inp) ∈ Z ∗,
dann (
m+
1,
d,
h[
n/
rst(
inp)],
rest(
inp),
out)
C[[
WRITEn]](
m,
d,
h,
inp,
out) =
wenn h
(
n) ∈ Z
,dann(
m+
1,
d,
h,
inp,
out.
h(
n)) C[[
LOADn]](
m,
d,
h,
inp,
out) =
wenn h
(
n) ∈ Z
,dann(
m+
1,
h(
n) :
d,
h,
inp,
out)
C[[.]]
:Γ −→ (
AM0−
AM0) C[[
READn]](
m,
d,
h,
inp,
out) =
wenninp
=
rst(
inp).
rest(
inp)
mitrst(
inp) ∈ Z ,
rest(
inp) ∈ Z ∗,
dann (
m+
1,
d,
h[
n/
rst(
inp)],
rest(
inp),
out)
C[[
WRITEn]](
m,
d,
h,
inp,
out) =
wenn h
(
n) ∈ Z
,dann(
m+
1,
d,
h,
inp,
out.
h(
n)) C[[
LOADn]](
m,
d,
h,
inp,
out) =
wenn h
(
n) ∈ Z
,dann(
m+
1,
h(
n) :
d,
h,
inp,
out) C[[
STORE n]](
m,
d,
h,
inp,
out) =
wenn d
=
d.
1:
d′
,dann(
m+
1,
d′ ,h[
n/
d.
1],
inp,
out)
C[[.]]
:Γ −→ (
AM0−
AM0) C[[
READn]](
m,
d,
h,
inp,
out) =
wenninp
=
rst(
inp).
rest(
inp)
mitrst(
inp) ∈ Z ,
rest(
inp) ∈ Z ∗,
dann (
m+
1,
d,
h[
n/
rst(
inp)],
rest(
inp),
out)
C[[
WRITEn]](
m,
d,
h,
inp,
out) =
wenn h
(
n) ∈ Z
,dann(
m+
1,
d,
h,
inp,
out.
h(
n)) C[[
LOADn]](
m,
d,
h,
inp,
out) =
wenn h
(
n) ∈ Z
,dann(
m+
1,
h(
n) :
d,
h,
inp,
out) C[[
STORE n]](
m,
d,
h,
inp,
out) =
wenn d
=
d.
1:
d′
,dann(
m+
1,
d′ ,h[
n/
d.
1],
inp,
out)
C[[
LIT z]](
m,
d,
h,
inp,
out) = (
m+
1,
z :
d,
h,
inp,
out)
C[[
ADD]](
m,
d,
h,
inp,
out) =
wennd
=
d.
1:
d.
2:
d′
,dann(
m+
1, (
d.
2+
d.
1) :
d′ ,h,
inp,
out)
C[[
ADD]](
m,
d,
h,
inp,
out) =
wennd
=
d.
1:
d.
2:
d′
,dann(
m+
1, (
d.
2+
d.
1) :
d′ ,h,
inp,
out)
für MUL,SUB, DIVund MODanalog
C[[
ADD]](
m,
d,
h,
inp,
out) =
wennd
=
d.
1:
d.
2:
d′
,dann(
m+
1, (
d.
2+
d.
1) :
d′ ,h,
inp,
out)
für MUL,SUB, DIVund MODanalog
C[[
LT]](
m,
d,
h,
inp,
out) =
wennd
=
d.
1:
d.
2:
d′
,dann(
m+
1,
b:
d′ ,h,
inp,
out)
,
wobeib
=
1,fallsd.
2<
d.
1,sonst b=
0C[[
ADD]](
m,
d,
h,
inp,
out) =
wennd
=
d.
1:
d.
2:
d′
,dann(
m+
1, (
d.
2+
d.
1) :
d′ ,h,
inp,
out)
für MUL,SUB, DIVund MODanalog
C[[
LT]](
m,
d,
h,
inp,
out) =
wennd
=
d.
1:
d.
2:
d′
,dann(
m+
1,
b:
d′ ,h,
inp,
out)
,
wobeib
=
1,fallsd.
2<
d.
1,sonst b=
0für EQ,NE, GT,LEund GEanalog
C[[
ADD]](
m,
d,
h,
inp,
out) =
wennd
=
d.
1:
d.
2:
d′
,dann(
m+
1, (
d.
2+
d.
1) :
d′ ,h,
inp,
out)
für MUL,SUB, DIVund MODanalog
C[[
LT]](
m,
d,
h,
inp,
out) =
wennd
=
d.
1:
d.
2:
d′
,dann(
m+
1,
b:
d′ ,h,
inp,
out)
,
wobeib
=
1,fallsd.
2<
d.
1,sonst b=
0für EQ,NE, GT,LEund GEanalog
C[[
JMPe]](
m,
d,
h,
inp,
out) = (
e,
d,
h,
inp,
out)
C[[
ADD]](
m,
d,
h,
inp,
out) =
wennd
=
d.
1:
d.
2:
d′
,dann(
m+
1, (
d.
2+
d.
1) :
d′ ,h,
inp,
out)
für MUL,SUB, DIVund MODanalog
C[[
LT]](
m,
d,
h,
inp,
out) =
wennd
=
d.
1:
d.
2:
d′
,dann(
m+
1,
b:
d′ ,h,
inp,
out)
,
wobeib
=
1,fallsd.
2<
d.
1,sonst b=
0für EQ,NE, GT,LEund GEanalog
C[[
JMPe]](
m,
d,
h,
inp,
out) = (
e,
d,
h,
inp,
out) C[[
JMCe]](
m,
d,
h,
inp,
out) =
wennd
=
0:
d′
,dann(
e,
d′ ,h,
inp,
out)
;
C[[
ADD]](
m,
d,
h,
inp,
out) =
wennd
=
d.
1:
d.
2:
d′
,dann(
m+
1, (
d.
2+
d.
1) :
d′ ,h,
inp,
out)
für MUL,SUB, DIVund MODanalog
C[[
LT]](
m,
d,
h,
inp,
out) =
wennd
=
d.
1:
d.
2:
d′
,dann(
m+
1,
b:
d′ ,h,
inp,
out)
,
wobeib
=
1,fallsd.
2<
d.
1,sonst b=
0für EQ,NE, GT,LEund GEanalog
C[[
JMPe]](
m,
d,
h,
inp,
out) = (
e,
d,
h,
inp,
out) C[[
JMCe]](
m,
d,
h,
inp,
out) =
wennd
=
0:
d′
,dann(
e,
d′ ,h,
inp,
out)
;
wennd
=
1:
d′
,dann(
m+
1,
d′ ,h,
inp,
out)
1:READ 2; 8:LE; 15:STORE 3;
2:LIT 1; 9:JMC 21; 16:LOAD1;
3:STORE 1; 10:LOAD3; 17:LIT 1;
4:LIT 0; 11:LOAD 1; 18:ADD;
5:STORE 3; 12:LOAD1; 19:STORE 1;
6:LOAD1; 13:MUL; 20:JMP 6;
7:LOAD2; 14:ADD; 21:WRITE 3;
( 1 ,
ε
,[℄ ,2 ,ε
)1:READ 2; 8:LE; 15:STORE 3;
2:LIT 1; 9:JMC 21; 16:LOAD1;
3:STORE 1; 10:LOAD 3; 17:LIT 1;
4:LIT 0; 11:LOAD1; 18:ADD;
5:STORE 3; 12:LOAD 1; 19:STORE 1;
6:LOAD1; 13:MUL; 20:JMP 6;
7:LOAD2; 14:ADD; 21:WRITE 3;
( 1 ,
ε
,[℄ ,2 ,ε
)( 2 ,
ε
,[2/2℄ ,ε
,ε
)C[[
READn]](
m,
d,
h,
inp,
out) =
wenninp
=
rst(
inp).
rest(
inp)
mitrst(
inp) ∈ Z ,
rest(
inp) ∈ Z ∗,
dann (
m+
1,
d,
h[
n/
rst(
inp)],
rest(
inp),
out)
1:READ 2; 8:LE; 15:STORE 3;
2:LIT 1; 9:JMC 21; 16:LOAD1;
3:STORE 1; 10:LOAD 3; 17:LIT 1;
4:LIT 0; 11:LOAD 1; 18:ADD;
5:STORE 3; 12:LOAD1; 19:STORE 1;
6:LOAD1; 13:MUL; 20:JMP 6;
7:LOAD2; 14:ADD; 21:WRITE 3;
( 1 ,
ε
,[℄ ,2 ,ε
)( 2 ,
ε
,[2/2℄ ,ε
,ε
)( 3 , 1,[2/2℄ ,
ε
,ε
)C[[
LIT z]](
m,
d,
h,
inp,
out) = (
m+
1,
z:
d,
h,
inp,
out)
1:READ 2; 8:LE; 15:STORE 3;
2:LIT 1; 9:JMC 21; 16:LOAD1;
3:STORE 1; 10:LOAD 3; 17:LIT 1;
4:LIT 0; 11:LOAD 1; 18:ADD;
5:STORE 3; 12:LOAD1; 19:STORE 1;
6:LOAD1; 13:MUL; 20:JMP 6;
7:LOAD2; 14:ADD; 21:WRITE 3;
( 1 ,
ε
,[℄ ,2 ,ε
)( 2 ,
ε
,[2/2℄ ,ε
,ε
)( 3 , 1,[2/2℄ ,
ε
,ε
)( 4 ,
ε
,[1/1,2/2℄ ,ε
,ε
)C[[
STORE n]](
m,
d,
h,
inp,
out) =
wennd
=
d.
1:
d′
,dann(
m+
1,
d′ ,h[
n/
d.
1],
inp,
out)
1:READ 2; 8:LE; 15:STORE 3;
2:LIT 1; 9:JMC 21; 16:LOAD1;
3:STORE 1; 10:LOAD 3; 17:LIT 1;
4:LIT 0; 11:LOAD 1; 18:ADD;
5:STORE 3; 12:LOAD1; 19:STORE 1;
6:LOAD1; 13:MUL; 20:JMP 6;
7:LOAD2; 14:ADD; 21:WRITE 3;
( 1 ,
ε
,[℄ ,2 ,ε
)( 2 ,
ε
,[2/2℄ ,ε
,ε
)( 3 , 1,[2/2℄ ,
ε
,ε
)( 4 ,
ε
,[1/1,2/2℄ ,ε
,ε
)( 5 , 0,[1/1,2/2℄ ,
ε
,ε
)C[[
LIT z]](
m,
d,
h,
inp,
out) = (
m+
1,
z:
d,
h,
inp,
out)
1:READ 2; 8:LE; 15:STORE 3;
2:LIT 1; 9:JMC 21; 16:LOAD1;
3:STORE 1; 10:LOAD 3; 17:LIT 1;
4:LIT 0; 11:LOAD 1; 18:ADD;
5:STORE 3; 12:LOAD 1; 19:STORE 1;
6:LOAD1; 13:MUL; 20:JMP 6;
7:LOAD2; 14:ADD; 21:WRITE 3;
( 2 ,
ε
,[2/2℄ ,ε
,ε
)( 3 , 1,[2/2℄ ,
ε
,ε
)( 4 ,
ε
,[1/1,2/2℄ ,ε
,ε
)( 5 , 0,[1/1,2/2℄ ,
ε
,ε
)( 6 ,
ε
,[1/1,2/2,3/0℄ ,ε
,ε
)C[[
STORE n]](
m,
d,
h,
inp,
out) =
wennd
=
d.
1:
d′
,dann(
m+
1,
d′ ,h[
n/
d.
1],
inp,
out)
1:READ 2; 8:LE; 15:STORE 3;
2:LIT 1; 9:JMC 21; 16:LOAD1;
3:STORE 1; 10:LOAD 3; 17:LIT 1;
4:LIT 0; 11:LOAD 1; 18:ADD;
5:STORE 3; 12:LOAD1; 19:STORE 1;
6:LOAD1; 13:MUL; 20:JMP 6;
7:LOAD2; 14:ADD; 21:WRITE 3;
( 3 , 1,[2/2℄ ,
ε
,ε
)( 4 ,
ε
,[1/1,2/2℄ ,ε
,ε
)( 5 , 0,[1/1,2/2℄ ,
ε
,ε
)( 6 ,
ε
,[1/1,2/2,3/0℄ ,ε
,ε
)( 7 , 1,[1/1,2/2,3/0℄ ,
ε
,ε
)C[[
LOADn]](
m,
d,
h,
inp,
out) =
wennh
(
n) ∈ Z
,dann(
m+
1,
h(
n) :
d,
h,
inp,
out)
1:READ 2; 8:LE; 15:STORE 3;
2:LIT 1; 9:JMC 21; 16:LOAD1;
3:STORE 1; 10:LOAD 3; 17:LIT 1;
4:LIT 0; 11:LOAD 1; 18:ADD;
5:STORE 3; 12:LOAD1; 19:STORE 1;
6:LOAD1; 13:MUL; 20:JMP 6;
7:LOAD2; 14:ADD; 21:WRITE 3;
( 4 ,
ε
,[1/1,2/2℄ ,ε
,ε
)( 5 , 0,[1/1,2/2℄ ,
ε
,ε
)( 6 ,
ε
,[1/1,2/2,3/0℄ ,ε
,ε
)( 7 , 1,[1/1,2/2,3/0℄ ,
ε
,ε
)( 8 , 2:1,[1/1,2/2,3/0℄ ,
ε
,ε
)C[[
LOADn]](
m,
d,
h,
inp,
out) =
wennh
(
n) ∈ Z
,dann(
m+
1,
h(
n) :
d,
h,
inp,
out)
1:READ 2; 8:LE; 15:STORE 3;
2:LIT 1; 9:JMC 21; 16:LOAD1;
3:STORE 1; 10:LOAD3; 17:LIT 1;
4:LIT 0; 11:LOAD1; 18:ADD;
5:STORE 3; 12:LOAD 1; 19:STORE 1;
6:LOAD1; 13:MUL; 20:JMP 6;
7:LOAD2; 14:ADD; 21:WRITE 3;
( 5 , 0,[1/1,2/2℄ ,
ε
,ε
)( 6 ,
ε
,[1/1,2/2,3/0℄ ,ε
,ε
)( 7 , 1,[1/1,2/2,3/0℄ ,
ε
,ε
)( 8 , 2:1,[1/1,2/2,3/0℄ ,
ε
,ε
)( 9 , 1,[1/1,2/2,3/0℄ ,
ε
,ε
)C[[
LE]](
m,
d,
h,
inp,
out) =
wennd
=
d.
1:
d.
2:
d′
,dann(
m+
1,
b:
d′ ,h,
inp,
out)
,
wobeib
=
1,fallsd.
2≤
d.
1,sonst b=
01:READ 2; 8:LE; 15:STORE 3;
2:LIT 1; 9:JMC 21; 16:LOAD1;
3:STORE 1; 10:LOAD 3; 17:LIT 1;
4:LIT 0; 11:LOAD1; 18:ADD;
5:STORE 3; 12:LOAD1; 19:STORE 1;
6:LOAD1; 13:MUL; 20:JMP 6;
7:LOAD2; 14:ADD; 21:WRITE 3;
( 6 ,
ε
,[1/1,2/2,3/0℄ ,ε
,ε
)( 7 , 1,[1/1,2/2,3/0℄ ,
ε
,ε
)( 8 , 2:1,[1/1,2/2,3/0℄ ,
ε
,ε
)( 9 , 1,[1/1,2/2,3/0℄ ,
ε
,ε
)( 10 ,
ε
,[1/1,2/2,3/0℄ ,ε
,ε
)C[[
JMCe]](
m,
d,
h,
inp,
out) =
wennd
=
0:
d′
,dann(
e,
d′ ,h,
inp,
out)
;
= : ′ ( + , ′ , , , )
1:READ 2; 8:LE; 15:STORE 3;
2:LIT 1; 9:JMC 21; 16:LOAD1;
3:STORE 1; 10:LOAD 3; 17:LIT 1;
4:LIT 0; 11:LOAD 1; 18:ADD;
5:STORE 3; 12:LOAD 1; 19:STORE 1;
6:LOAD1; 13:MUL; 20:JMP 6;
7:LOAD2; 14:ADD; 21:WRITE 3;
( 7 , 1,[1/1,2/2,3/0℄ ,
ε
,ε
)( 8 , 2:1,[1/1,2/2,3/0℄ ,
ε
,ε
)( 9 , 1,[1/1,2/2,3/0℄ ,
ε
,ε
)( 10 ,
ε
,[1/1,2/2,3/0℄ ,ε
,ε
)( 11 , 0,[1/1,2/2,3/0℄ ,
ε
,ε
)C[[
LOADn]](
m,
d,
h,
inp,
out) =
wennh
(
n) ∈ Z
,dann(
m+
1,
h(
n) :
d,
h,
inp,
out)
1:READ 2; 8:LE; 15:STORE 3;
2:LIT 1; 9:JMC 21; 16:LOAD1;
3:STORE 1; 10:LOAD 3; 17:LIT 1;
4:LIT 0; 11:LOAD 1; 18:ADD;
5:STORE 3; 12:LOAD1; 19:STORE 1;
6:LOAD1; 13:MUL; 20:JMP 6;
7:LOAD2; 14:ADD; 21:WRITE 3;
( 8 , 2:1,[1/1,2/2,3/0℄ ,
ε
,ε
)( 9 , 1,[1/1,2/2,3/0℄ ,
ε
,ε
)( 10 ,
ε
,[1/1,2/2,3/0℄ ,ε
,ε
)( 11 , 0,[1/1,2/2,3/0℄ ,
ε
,ε
)( 12 , 1:0,[1/1,2/2,3/0℄ ,
ε
,ε
)C[[
LOADn]](
m,
d,
h,
inp,
out) =
wennh
(
n) ∈ Z
,dann(
m+
1,
h(
n) :
d,
h,
inp,
out)
1:READ 2; 8:LE; 15:STORE 3;
2:LIT 1; 9:JMC 21; 16:LOAD1;
3:STORE 1; 10:LOAD 3; 17:LIT 1;
4:LIT 0; 11:LOAD 1; 18:ADD;
5:STORE 3; 12:LOAD 1; 19:STORE 1;
6:LOAD1; 13:MUL; 20:JMP 6;
7:LOAD2; 14:ADD; 21:WRITE 3;
( 9 , 1,[1/1,2/2,3/0℄ ,
ε
,ε
)( 10 ,
ε
,[1/1,2/2,3/0℄ ,ε
,ε
)( 11 , 0,[1/1,2/2,3/0℄ ,
ε
,ε
)( 12 , 1:0,[1/1,2/2,3/0℄ ,
ε
,ε
)( 13 , 1:1:0 ,[1/1,2/2,3/0℄ ,
ε
,ε
)C[[
LOADn]](
m,
d,
h,
inp,
out) =
wennh
(
n) ∈ Z
,dann(
m+
1,
h(
n) :
d,
h,
inp,
out)
1:READ 2; 8:LE; 15:STORE 3;
2:LIT 1; 9:JMC 21; 16:LOAD1;
3:STORE 1; 10:LOAD 3; 17:LIT 1;
4:LIT 0; 11:LOAD 1; 18:ADD;
5:STORE 3; 12:LOAD1; 19:STORE 1;
6:LOAD1; 13:MUL; 20:JMP 6;
7:LOAD2; 14:ADD; 21:WRITE 3;
( 10 ,
ε
,[1/1,2/2,3/0℄ ,ε
,ε
)( 11 , 0,[1/1,2/2,3/0℄ ,
ε
,ε
)( 12 , 1:0,[1/1,2/2,3/0℄ ,
ε
,ε
)( 13 , 1:1:0 ,[1/1,2/2,3/0℄ ,
ε
,ε
)( 14 , 1:0,[1/1,2/2,3/0℄ ,
ε
,ε
)C[[
MUL]](
m,
d,
h,
inp,
out) =
wennd
=
d.
1:
d.
2:
d′
,dann(
m+
1, (
d.
2∗
d.
1) :
d′ ,h,
inp,
out)
1:READ 2; 8:LE; 15:STORE 3;
2:LIT 1; 9:JMC 21; 16:LOAD1;
3:STORE 1; 10:LOAD 3; 17:LIT 1;
4:LIT 0; 11:LOAD 1; 18:ADD;
5:STORE 3; 12:LOAD1; 19:STORE 1;
6:LOAD1; 13:MUL; 20:JMP 6;
7:LOAD2; 14:ADD; 21:WRITE 3;
( 11 , 0,[1/1,2/2,3/0℄ ,
ε
,ε
)( 12 , 1:0,[1/1,2/2,3/0℄ ,
ε
,ε
)( 13 , 1:1:0 ,[1/1,2/2,3/0℄ ,
ε
,ε
)( 14 , 1:0,[1/1,2/2,3/0℄ ,
ε
,ε
)( 15 , 1,[1/1,2/2,3/0℄ ,
ε
,ε
)C[[
ADD]](
m,
d,
h,
inp,
out) =
wennd
=
d.
1:
d.
2:
d′
,dann(
m+
1, (
d.
2+
d.
1) :
d′ ,h,
inp,
out)
1:READ 2; 8:LE; 15:STORE 3;
2:LIT 1; 9:JMC 21; 16:LOAD1;
3:STORE 1; 10:LOAD3; 17:LIT 1;
4:LIT 0; 11:LOAD1; 18:ADD;
5:STORE 3; 12:LOAD 1; 19:STORE 1;
6:LOAD1; 13:MUL; 20:JMP 6;
7:LOAD2; 14:ADD; 21:WRITE 3;
( 12 , 1:0,[1/1,2/2,3/0℄ ,
ε
,ε
)( 13 , 1:1:0 ,[1/1,2/2,3/0℄ ,
ε
,ε
)( 14 , 1:0,[1/1,2/2,3/0℄ ,
ε
,ε
)( 15 , 1,[1/1,2/2,3/0℄ ,
ε
,ε
)( 16 ,
ε
,[1/1,2/2,3/1℄ ,ε
,ε
)C[[
STORE n]](
m,
d,
h,
inp,
out) =
wennd
=
d.
1:
d′
,dann(
m+
1,
d′ ,h[
n/
d.
1],
inp,
out)
1:READ 2; 8:LE; 15:STORE 3;
2:LIT 1; 9:JMC 21; 16:LOAD1;
3:STORE 1; 10:LOAD 3; 17:LIT 1;
4:LIT 0; 11:LOAD 1; 18:ADD;
5:STORE 3; 12:LOAD1; 19:STORE 1;
6:LOAD1; 13:MUL; 20:JMP 6;
7:LOAD2; 14:ADD; 21:WRITE 3;
( 13 , 1:1:0 ,[1/1,2/2,3/0℄ ,
ε
,ε
)( 14 , 1:0,[1/1,2/2,3/0℄ ,
ε
,ε
)( 15 , 1,[1/1,2/2,3/0℄ ,
ε
,ε
)( 16 ,
ε
,[1/1,2/2,3/1℄ ,ε
,ε
)( 17 , 1,[1/1,2/2,3/1℄ ,
ε
,ε
)C[[
LOADn]](
m,
d,
h,
inp,
out) =
wennh
(
n) ∈ Z
,dann(
m+
1,
h(
n) :
d,
h,
inp,
out)
1:READ 2; 8:LE; 15:STORE 3;
2:LIT 1; 9:JMC 21; 16:LOAD1;
3:STORE 1; 10:LOAD 3; 17:LIT 1;
4:LIT 0; 11:LOAD 1; 18:ADD;
5:STORE 3; 12:LOAD1; 19:STORE 1;
6:LOAD1; 13:MUL; 20:JMP 6;
7:LOAD2; 14:ADD; 21:WRITE 3;
( 14 , 1:0,[1/1,2/2,3/0℄ ,
ε
,ε
)( 15 , 1,[1/1,2/2,3/0℄ ,
ε
,ε
)( 16 ,
ε
,[1/1,2/2,3/1℄ ,ε
,ε
)( 17 , 1,[1/1,2/2,3/1℄ ,
ε
,ε
)( 18 , 1:1,[1/1,2/2,3/1℄ ,
ε
,ε
)C[[
LIT z]](
m,
d,
h,
inp,
out) = (
m+
1,
z:
d,
h,
inp,
out)
1:READ 2; 8:LE; 15:STORE 3;
2:LIT 1; 9:JMC 21; 16:LOAD1;
3:STORE 1; 10:LOAD 3; 17:LIT 1;
4:LIT 0; 11:LOAD 1; 18:ADD;
5:STORE 3; 12:LOAD 1; 19:STORE 1;
6:LOAD1; 13:MUL; 20:JMP 6;
7:LOAD2; 14:ADD; 21:WRITE 3;
( 15 , 1,[1/1,2/2,3/0℄ ,
ε
,ε
)( 16 ,
ε
,[1/1,2/2,3/1℄ ,ε
,ε
)( 17 , 1,[1/1,2/2,3/1℄ ,
ε
,ε
)( 18 , 1:1,[1/1,2/2,3/1℄ ,
ε
,ε
)( 19 , 2,[1/1,2/2,3/1℄ ,
ε
,ε
)C[[
ADD]](
m,
d,
h,
inp,
out) =
wennd
=
d.
1:
d.
2:
d′
,dann(
m+
1, (
d.
2+
d.
1) :
d′ ,h,
inp,
out)
1:READ 2; 8:LE; 15:STORE 3;
2:LIT 1; 9:JMC 21; 16:LOAD1;
3:STORE 1; 10:LOAD 3; 17:LIT 1;
4:LIT 0; 11:LOAD 1; 18:ADD;
5:STORE 3; 12:LOAD1; 19:STORE 1;
6:LOAD1; 13:MUL; 20:JMP 6;
7:LOAD2; 14:ADD; 21:WRITE 3;
( 16 ,
ε
,[1/1,2/2,3/1℄ ,ε
,ε
)( 17 , 1,[1/1,2/2,3/1℄ ,
ε
,ε
)( 18 , 1:1,[1/1,2/2,3/1℄ ,
ε
,ε
)( 19 , 2,[1/1,2/2,3/1℄ ,
ε
,ε
)( 20 ,
ε
,[1/2,2/2,3/1℄ ,ε
,ε
)C[[
STORE n]](
m,
d,
h,
inp,
out) =
wennd
=
d.
1:
d′
,dann(
m+
1,
d′ ,h[
n/
d.
1],
inp,
out)
1:READ 2; 8:LE; 15:STORE 3;
2:LIT 1; 9:JMC 21; 16:LOAD1;
3:STORE 1; 10:LOAD 3; 17:LIT 1;
4:LIT 0; 11:LOAD 1; 18:ADD;
5:STORE 3; 12:LOAD1; 19:STORE 1;
6:LOAD1; 13:MUL; 20:JMP 6;
7:LOAD2; 14:ADD; 21:WRITE 3;
( 17 , 1,[1/1,2/2,3/1℄ ,
ε
,ε
)( 18 , 1:1,[1/1,2/2,3/1℄ ,
ε
,ε
)( 19 , 2,[1/1,2/2,3/1℄ ,
ε
,ε
)( 20 ,
ε
,[1/2,2/2,3/1℄ ,ε
,ε
)( 6 ,
ε
,[1/2,2/2,3/1℄ ,ε
,ε
)C[[
JMPe]](
m,
d,
h,
inp,
out) = (
e,
d,
h,
inp,
out)
1:READ 2; 8:LE; 15:STORE 3;
2:LIT 1; 9:JMC 21; 16:LOAD1;
3:STORE 1; 10:LOAD 3; 17:LIT 1;
4:LIT 0; 11:LOAD 1; 18:ADD;
5:STORE 3; 12:LOAD1; 19:STORE 1;
6:LOAD1; 13:MUL; 20:JMP 6;
7:LOAD2; 14:ADD; 21:WRITE 3;
( 18 , 1:1,[1/1,2/2,3/1℄ ,
ε
,ε
)( 19 , 2,[1/1,2/2,3/1℄ ,
ε
,ε
)( 20 ,
ε
,[1/2,2/2,3/1℄ ,ε
,ε
)( 6 ,
ε
,[1/2,2/2,3/1℄ ,ε
,ε
)( 7 , 2,[1/2,2/2,3/1℄ ,
ε
,ε
)C[[
LOADn]](
m,
d,
h,
inp,
out) =
wennh
(
n) ∈ Z
,dann(
m+
1,
h(
n) :
d,
h,
inp,
out)
1:READ 2; 8:LE; 15:STORE 3;
2:LIT 1; 9:JMC 21; 16:LOAD1;
3:STORE 1; 10:LOAD 3; 17:LIT 1;
4:LIT 0; 11:LOAD 1; 18:ADD;
5:STORE 3; 12:LOAD1; 19:STORE 1;
6:LOAD1; 13:MUL; 20:JMP 6;
7:LOAD2; 14:ADD; 21:WRITE 3;
( 19 , 2,[1/1,2/2,3/1℄ ,
ε
,ε
)( 20 ,
ε
,[1/2,2/2,3/1℄ ,ε
,ε
)( 6 ,
ε
,[1/2,2/2,3/1℄ ,ε
,ε
)( 7 , 2,[1/2,2/2,3/1℄ ,
ε
,ε
)( 8 , 2:2,[1/2,2/2,3/1℄ ,
ε
,ε
)C[[
LOADn]](
m,
d,
h,
inp,
out) =
wennh