CB-I im WS99/00Blatt 9 mit Lösungen |
Nr. | Gamma | goto | f | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 |
1 |
S |
A |
B |
eps |
0 |
1 |
00 |
01 |
10 |
11 |
||
0 | eps | 3 | 1 | 2 | B->eps | S | B->eps | ||||||
1 | A | 4 | b->eps | B->eps | |||||||||
2 | B | 6 | 5 | S | S | ||||||||
3 | 0 | A->0 | A->0 | ||||||||||
4 | AB | 8 | 7 | S | S | ||||||||
5 | BA | S->BA | |||||||||||
6 | B0 | 9 | A->0 | S | |||||||||
7 | ABA | S->ABA | |||||||||||
8 | AB0 | 9 | A->0 | S | |||||||||
9 | B01 | B->B01 | B->B01 |
010
:
K=Z0, L=01 f=>(B->eps)
K=Z0 B, L=01, g=>
K=Z0 B Z2, L=01, f=>
K=Z0 B Z2 0, L=10, g=>
K=Z0 B Z2 0 Z6, L=10, f=>
K=Z0 B Z2 0 Z6 1, L=0, g=>
K=Z0 B Z2 0 Z6 1 Z9, L=0, f=>(B->B01)
K=Z0 B, L=0, g=>
K=Z0 B Z2, L=0, f=>
K=Z0 B Z2 0, L=eps, g=>
K=Z0 B Z2 0 Z6, L=eps, f=>(A->0)
K=Z0 B Z2 A, L=eps, g=>
K=Z0 B Z2 A Z5, L=eps, f=>(S->BA)
K=Z0 S, L=eps
010
wird akzeptiert.G = ({s,x,e,a,p},{REAL,INT,VAR,+,-,*,/,(,),=},P,s)
mit
P = {
s::=x,
x::= x=e|e,
e::= e+p|e-p|p,
p::= p*a|p/p|a,
a::= REAL|INT|VAR|(e)
}
und die folgenden Ausdrücke:
( rx - rm ) / rs * 2.0 * rpi
1.14 - rs / (ra * rb ) + (1.0 - rs ) / 2
( ia + ib ) * ( ia + ib ) = 2
Dokumentation des Simulators |
(((( rx - rm ) / rs) * 2.0) * rpi)
((1.14 - (rs / (ra * rb ))) + ((1.0 - rs ) / 2))
((( ia + ib ) * ( ia + ib )) = 2)
(real+-*/ , real)
statt
E(real
lauten
Ereal
.
Wir erhalten:
verb. Ausdruck | Hilfsausdruck | freie Hilfsvariablen |
---|---|---|
((((rx-rm)/rs)*2.0)*rpi) |
|
F={h1,h2,...} |
(((h1/rs)*2.0)*rpi) |
h1:=(rx-rm) |
F={h2,h3,...} |
((h2*2.0)*rpi) |
h2:=(h1/rs) |
F={h1,h3,h4,...} |
(h1*rpi) |
h1:=(h2*2.0) |
F={h2,h3,...} |
h2 |
h2:=(h1*rpi) |
F={h1,h3,h4...} |
Code | Kommentar |
---|---|
LDA 6,0 |
rx in den Akkumulator |
FSB 7,0 |
rm abziehen |
STA 11,0 |
in h1 speichern |
LDA 11,0 |
h1 laden (eingentl. überflüssig) |
FDV 8,0 |
durch rs teilen |
STA 12,0 |
in h2 speichern |
LDA 12,0 |
h2 laden |
FMU 9,0 |
2.0 multipliziern. (Wäre das nicht im
Konstantenspeicher abgelegt, hätten wir hier erst
FNA 2.0 verwenden müssen) |
STA 11,0 |
Speichern in h1 |
LDA 11,0 |
h1 laden |
FMU 10,0 |
mal rpi |
STA 12,0 |
in h2 speichern. Fertig. |