www.wikidata.de-de.nina.az
WHILE Programme spielen in der Theoretischen Informatik eine Rolle insbesondere in Zusammenhang mit Berechenbarkeit Inhaltsverzeichnis 1 Eigenschaften 2 Syntax 2 1 Erklarung der Syntax 2 2 Allgemein 3 Kleenesche Normalform fur WHILE Programme 4 Konsequenzen 5 Simulation durch GOTO Programm 6 Siehe auch 7 LiteraturEigenschaften BearbeitenRAM berechenbar Turing berechenbar GOTO berechenbar und WHILE berechenbar sind aquivalent LOOP berechenbar displaystyle varsubsetneq nbsp WHILE berechenbar Kleenesche Normalform Jedes WHILE Programm kommt auch nur mit einer While Schleife aus Syntax BearbeitenWHILE Programme haben folgende Syntax in modifizierter Backus Naur Form P x i x j c x i x j c P P L O O P x i D O P E N D W H I L E x i 0 D O P E N D displaystyle begin array lrl P amp amp x i x j c amp amp x i x j c amp amp P P amp amp mathrm LOOP x i mathrm DO P mathrm END amp amp mathrm WHILE x i neq 0 mathrm DO P mathrm END end array nbsp Auf das LOOP Konstrukt in dieser Definition kann auch verzichtet werden ohne dass die Menge der WHILE berechenbaren Funktionen kleiner wird Schliesslich kann jeder LOOP Ausdruck durch ein WHILE emuliert werden Allerdings hat ein Verzicht auf das LOOP zur Folge dass nicht mehr alle WHILE Programme in Kleenesche Normalform gebracht werden konnen Erklarung der Syntax Bearbeiten Ein WHILE Programm P besteht aus den Symbolen WHILE LOOP DO END displaystyle neq nbsp einer Anzahl Variablen x 1 x 2 displaystyle x 1 x 2 nbsp sowie beliebigen Konstanten c Es sind nur vier verschiedene Anweisungen erlaubt namlich die Zuweisung einer Variablen durch eine weitere Variable vermehrt um eine Konstante etwax 3 x 4 10 displaystyle x 3 x 4 10 nbsp dd oder vermindert um eine Konstante etwax 5 x 6 300 displaystyle x 5 x 6 300 nbsp dd eine LOOP Anweisung die zu Beginn den Wert einer Variablen uberpruft und ein WHILE Programm entsprechend oft wiederholt etwaL O O P x 7 D O x 7 x 7 1 E N D displaystyle mathrm LOOP quad x 7 quad mathrm DO quad x 7 x 7 1 quad mathrm END nbsp dd Zu beachten ist dass bei LOOP eine Anderung des Variablenwertes im zu wiederholenden Teilprogramm keine Auswirkung auf die Anzahl der Wiederholungen dieses Teilprogramms hat eine WHILE Anweisung die eine Variable auf ungleich Null abfragt und ein WHILE Programm zwischen DO und END enthalt etwaW H I L E x 8 0 D O x 8 x 8 1 E N D displaystyle mathrm WHILE quad x 8 neq 0 quad mathrm DO quad x 8 x 8 1 quad mathrm END nbsp dd Die Anweisungen sind fur sich genommen bereits vollstandige WHILE Programme Des Weiteren ist die Aneinanderreihung von WHILE Programmen jeweils getrennt durch ein Semikolon etwax 9 x 9 3 x 10 x 9 2 displaystyle x 9 x 9 3 quad x 10 x 9 2 nbsp dd wieder ein WHILE Programm Allgemein Bearbeiten Jede WHILE berechenbare Funktion ist GOTO berechenbar und umgekehrt sowie turingberechenbar Mit W H I L E displaystyle mathrm WHILE nbsp wird ferner die Menge aller WHILE Programme gemass obiger Definition bezeichnet Kleenesche Normalform fur WHILE Programme BearbeitenJede WHILE berechenbare Funktion kann durch ein WHILE Programm mit nur einer WHILE Schleife berechnet werden Beweis Sei P displaystyle P nbsp ein beliebiges WHILE Programm Wir formen P displaystyle P nbsp zunachst wie im Abschnitt Simulation durch GOTO Programme dieses Artikels beschrieben um um ein aquivalentes GOTO Programm P displaystyle P nbsp zu erhalten Anschliessend formen wir P displaystyle P nbsp den Anweisungen im Abschnitt Simulation durch WHILE Programm im Artikel GOTO Programm folgend in ein aquivalentes WHILE Programm P displaystyle P nbsp um Hierbei ist zu beachten dass die fur diese Konstruktion notwendigen IF THEN END Anweisungen durch LOOPs simuliert werden konnen Per Konstruktion hat P displaystyle P nbsp nur eine WHILE Schleife Konsequenzen BearbeitenDie einfach beweisbare Tatsache dass jedes GOTO Programm in ein WHILE Programm uberfuhrt 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 Ausserdem zeigt sie dass man jedes Programm auch strukturiert programmieren kann ohne Spaghetticode zu erzeugen Simulation durch GOTO Programm BearbeitenEin jedes WHILE Programm W H I L E x 2 0 D O P E N D displaystyle mathrm WHILE quad x 2 neq 0 quad mathrm DO quad P quad mathrm END nbsp kann durch das folgende GOTO Programm simuliert werden M1 IF x2 0 THEN GOTO M2 P GOTO M1 M2 Siehe auch BearbeitenLOOP Programm GOTO ProgrammLiteratur BearbeitenUwe Schoning Theoretische Informatik kurz gefasst 5 Auflage Spektrum Akademischer Verlag Heidelberg ISBN 978 3 8274 1824 1 2 3 LOOP WHILE und GOTO Berechenbarkeit Abgerufen von https de wikipedia org w index php title WHILE Programm amp oldid 235726108