BuK/IIm20/Vorlesung 12 Grüning
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>FLACI_c3040gfy2wykcr</language> LoopWhileGoto Compiler Loop: <run id="60cb92095735f"> x0 := x4 + 1; LOOP x2 DO x0 := x4 + 1 END; x0 := x4 + 1; LOOP x2 DO LOOP x2 DO x0 := x4 + 1 END END </run> Wobei dabei nur das Loop mit dem While erstetzt wird. Das ergibt validen WHILE-Code, jdeoch kann die Semantik verfälscht werden While: <run id="60cb9209573ba"> x0 := x4 + 1 ; WHILE x2 != 0 DO x0 := x4 + 1 END ; x0 := x4 + 1 ; WHILE x2 != 0 DO x0 := x4 + 4; WHILE x2 != 0 DO x0 := x4 + 1 END END </run> Goto: <run id="60cb9175a56e0"> M1: IF x1 = 0 THEN GOTO M2; M3: x0 := x0 + 0; M2: GOTO M1; M4: x0 := x0 + 1 </run> - Um geparst zu werden muss auf jeder Zeile des GOTO-Programms eine Marke stehen. - GOTO-Programm muss in der Form: $M1: A1; M2: A2; ... ; Mk: Ak$ vorliegen um semantisch richtig kompiliert zu werden. - $xz > k$ müsste noch implementiert werden