HTWK Leipzig, IM Prof. Dr. Sibylle Schwarzsibylle.schwarz@htwk-leipzig.de
6. Übung zu Theoretische Informatik: Berechenbarkeit und Komplexität Wintersemester 2021/22 zu lösen bis 25. November 2021
Aufgabe 6.1:
Zur Übersetzung von While nach Goto: Bestimmen Sie 1. compilep0,While1pDec1qq “
2. compilep3,IfZp1,Dec1,Inc0qq “
3. compilep0,While2pIfZ1,SeqpDec1,Inc0q,Skipqq “
Aufgabe 6.2:
Zeigen Sie, dass für jedes While-Programmpund das daraus erzeugte Goto-Programm q mit pe, qq “compilepa, pq gilt:
@s, s1 :pps, s1q Psempq gdw. ppa, sq,pe, s1qq Pstep˚q
Aufgabe 6.3:
Zeigen Sie, dass für jedes While-Programmpund das daraus erzeugte Goto-Programm q“p1˝ rStops mit compilep0, pq “ pe, p1q gilt:
q erreicht eine finale Konfiguration gdw. p hält.
Aufgabe 6.4:
Zeigen Sie, dass bei der Übersetzung jedes goto- in ein while-Programm alle Anwei- sungen der Form if (c == i) und c := l in while-(Unter-)Programme übersetzt werden können, die kein Whileenthalten.
Aufgabe 6.5:
Zeigen Sie, dass zu jedem Loop-Programm p ein äquivalentes Loop-Programm q existiert, in dem kein IfZ vorkommt.
Aufgabe 6.6:
Zeigen Sie, dass die Menge LOOP unter Substitution abgeschlossen ist, d.h. für alle partiellen Funktionen f, g:NÑN gilt:
falls f, gPLOOP, dann ist auchpxÞÑfpgpxqqq PLOOP Aufgabe 6.7:
1. Geben Sie ein Verfahren an, nach dem sich jedes Loop-Programm p in ein äquivalentes While-Programm q übersetzen lässt.
2. Demonstrieren Sie Ihr Verfahren am Loop-Programm p“SeqpLoopp2,Inc0q,Loopp1,Dec0qq.
3. Zeigen Sie, dass beide Programme äquivalent sind.
Übungsaufgaben, Folien und weitere Hinweise zur Vorlesung finden Sie online unter https://informatik.htwk-leipzig.de/schwarz/lehre/ws21/tim