WHILE-Programm

Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 9. Mai 2006 um 19:07 Uhr durch 82.82.69.48 (Diskussion) (Kleenesche Normalform für WHILE-Programme). Sie kann sich erheblich von der aktuellen Version unterscheiden.

WHILE-Programme spielen in der Theoretischen Informatik eine Rolle, insbesondere in Zusammenhang mit Berechenbarkeit.

Syntax

WHILE-Programme haben folgende Syntax in Backus-Naur-Form:

 

  ist die Menge aller WHILE-Programme gemäß obiger Definition.

Jede WHILE-berechenbare Funktion ist GOTO-berechenbar und umgekehrt sowie turingberechenbar.

--82.82.69.48 19:07, 9. Mai 2006 (CEST)Media:Beispiel.ogg Link-TextLink-TextFehler beim Parsen (Syntaxfehler): {\displaystyle Formel hier einfügen}

Ebene 2 Überschrift

Link-TextKursiver Text Unformatierten Text hier einfügen==Kleenesche Normalform für WHILE-Programme== Jede WHILE-berechenbare Funktion kann durch ein WHILE-Programm mit nur einer WHILE-Schleife berechnet werden.

Beweis: Sei   ein beliebiges WHILE-Programm. Wir formen   zunächst um, um ein äquivalentes GOTO-Programm   zu erhalten und dann wieder zurück in ein äquivalentes WHILE-Programm  . Per Konstruktion hat dieses nur eine WHILE-Schleife.

Konsequenzen

Die einfach beweisbare Tatsache, dass jedes GOTO-Programm in ein WHILE-Programm überführt werden kann und umgekehrt, hat zur Konsequenz, dass man beweisen kann, dass ein beliebiges Pascal-Programm die gleichen Leistungen erbringen kann wie ein beliebiges BASIC-Programm. Außerdem zeigt sie, dass man jedes Programm auch strukturiert programmieren kann, ohne Spagetticode zu erzeugen.

Simulation durch GOTO-Programm

Ein jedes WHILE-Programm

WHILE xi != 0 DO P END

kann durch das folgende GOTO-Programm simuliert werden

M1: IF xi = 0 THEN GOTO M2;
    P;
    GOTO M1;
M2: ...

Eine weitere verwendete Schleifenstruktur ist ein LOOP-Programm.