Vorlesung 10 Thomas
Aus ProgrammingWiki
Inhaltsverzeichnis |
Kreativaufgabe: LOOP, WHILE, GOTO - Compiler
Grammatik
Parser
Compiler
LOOP -> WHILE
- LOOP Syntax
- Wertzuweisung $x_i~:=x_j~+c~x_i~:=x_j~-c$
- Sequenz $P_1:P_2$
- Zyklus $\mathrm{P}$ ist ein LOOP-Programm, dann ist $\mathrm{LOOP}~x_i~\mathrm{DO}~\mathrm{P}~ \mathrm{END}$ auch ein LOOP Programm
- minimalistische Syntaktik wird nicht geparst, Bsp: $x_i := x_j$
- LOOP kann mit WHILE Simuliert werden
- $x_i~:=~x_j;~\mathrm {WHILE}~x_i~\neq~0~\mathrm{DO}~x_i~:=~x_i~-~1;~\mathrm{P}~\mathrm{END}$
WHILE -> WHILE
- WHILE Syntax
- $\mathrm {WHILE}~x_i~\neq~0~\mathrm{DO}~\mathrm{P}~\mathrm{END}$
GOTO -> WHILE
- GOTO Syntax
- Wertzuweisung $x_i~:=x_j~+c~x_i~:=x_j~-c$
- unbedingter Sprung: $\mathrm{GOTO}~M_i$
- bedingter Sprung: $\mathrm{IF}~x_i~=~\mathrm{c}~\mathrm{THEN}~\mathrm{GOTO}~M_j$
- Stopanweisung: $\mathrm{HALT}$
Idee zu GOTO -> WHILE
- Entwicklung eines zweiten/dritten Compilers
- 1ter Compiler -> Loop, GOTO, WHILE -> LOOP, WHILE Syntax
- 2/3ter Compiler -> LOOP, WHILE -> WHILE
- Beispiel: IF Anweisungen von LOOP zu WHILE
- Prüfung ob Loop, GOTO, WHILE -> LOOP -> WHILE "einfacher"