Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
teknopedia

teknopedia

teknopedia

teknopedia

teknopedia
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. WHILE-Programm – Wikipedia
WHILE-Programm – Wikipedia
aus Wikipedia, der freien Enzyklopädie

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

Eigenschaften

[Bearbeiten | Quelltext bearbeiten]
  • RAM-berechenbar, Turing-berechenbar, GOTO-berechenbar und WHILE-berechenbar sind äquivalent
  • LOOP-berechenbar ⊊ {\displaystyle \varsubsetneq } {\displaystyle \varsubsetneq } WHILE-berechenbar
  • Kleenesche Normalform (Jedes WHILE-Programm kommt auch nur mit einer While-Schleife aus)

Syntax

[Bearbeiten | Quelltext bearbeiten]

WHILE-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&::=&x_{i}:=x_{j}+c\\&|&x_{i}:=x_{j}-c\\&|&P;P\\&|&\mathrm {LOOP} \,x_{i}\,\mathrm {DO} \,P\,\mathrm {END} \\&|&\mathrm {WHILE} \,x_{i}\neq 0\,\mathrm {DO} \,P\,\mathrm {END} \end{array}}} {\displaystyle {\begin{array}{lrl}P&::=&x_{i}:=x_{j}+c\\&|&x_{i}:=x_{j}-c\\&|&P;P\\&|&\mathrm {LOOP} \,x_{i}\,\mathrm {DO} \,P\,\mathrm {END} \\&|&\mathrm {WHILE} \,x_{i}\neq 0\,\mathrm {DO} \,P\,\mathrm {END} \end{array}}}

Auf das LOOP-Konstrukt in dieser Definition kann auch verzichtet werden, ohne dass die Menge der WHILE-berechenbaren Funktionen kleiner wird. Schließlich 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 können.

Erklärung der Syntax

[Bearbeiten | Quelltext bearbeiten]

Ein WHILE-Programm P besteht aus den Symbolen WHILE, LOOP, DO, END, :=, +, -, ;, ≠ {\displaystyle \neq } {\displaystyle \neq }, einer Anzahl Variablen x 1 , x 2 , . . . {\displaystyle x_{1},x_{2},...} {\displaystyle x_{1},x_{2},...} sowie beliebigen Konstanten c.

Es sind nur vier verschiedene Anweisungen erlaubt, nämlich

  • die Zuweisung einer Variablen durch eine weitere Variable, vermehrt um eine Konstante, etwa
x 3 := x 4 + 10 {\displaystyle x_{3}:=x_{4}+10} {\displaystyle x_{3}:=x_{4}+10}
  • oder vermindert um eine Konstante, etwa
x 5 := x 6 − 300 {\displaystyle x_{5}:=x_{6}-300} {\displaystyle x_{5}:=x_{6}-300}
  • eine LOOP-Anweisung, die zu Beginn den Wert einer Variablen überprüft und ein WHILE-Programm entsprechend oft wiederholt, etwa
L 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} } {\displaystyle \mathrm {LOOP} \quad x_{7}\quad \mathrm {DO} \quad x_{7}:=x_{7}+1\quad \mathrm {END} }

Zu beachten ist, dass bei LOOP eine Änderung 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 enthält, etwa
W 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} } {\displaystyle \mathrm {WHILE} \quad x_{8}\neq 0\quad \mathrm {DO} \quad x_{8}:=x_{8}+1\quad \mathrm {END} }

Die Anweisungen sind für sich genommen bereits vollständige WHILE-Programme. Des Weiteren ist die

  • Aneinanderreihung von WHILE-Programmen, jeweils getrennt durch ein Semikolon, etwa
x 9 := x 9 + 3 ; x 10 := x 9 − 2 {\displaystyle x_{9}:=x_{9}+3;\quad x_{10}:=x_{9}-2} {\displaystyle x_{9}:=x_{9}+3;\quad x_{10}:=x_{9}-2}

wieder ein WHILE-Programm.

Allgemein

[Bearbeiten | Quelltext bearbeiten]

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

Mit W H I L E {\displaystyle \mathrm {WHILE} } {\displaystyle \mathrm {WHILE} } wird ferner die Menge aller WHILE-Programme gemäß obiger Definition bezeichnet.

Kleenesche Normalform für WHILE-Programme

[Bearbeiten | Quelltext bearbeiten]

Jede WHILE-berechenbare Funktion kann durch ein WHILE-Programm mit nur einer WHILE-Schleife berechnet werden.

Beweis: Sei P {\displaystyle P} {\displaystyle P} ein beliebiges WHILE-Programm. Wir formen P {\displaystyle P} {\displaystyle P} zunächst, wie im Abschnitt „Simulation durch GOTO-Programme“ dieses Artikels beschrieben, um, um ein äquivalentes GOTO-Programm P ′ {\displaystyle P'} {\displaystyle P'} zu erhalten. Anschließend formen wir P ′ {\displaystyle P'} {\displaystyle P'} den Anweisungen im Abschnitt „Simulation durch WHILE-Programm“ im Artikel GOTO-Programm folgend in ein äquivalentes WHILE-Programm P ″ {\displaystyle P''} {\displaystyle P''} um. Hierbei ist zu beachten, dass die für diese Konstruktion notwendigen IF THEN END Anweisungen durch LOOPs simuliert werden können. Per Konstruktion hat P ″ {\displaystyle P''} {\displaystyle P''} nur eine WHILE-Schleife.

Konsequenzen

[Bearbeiten | Quelltext bearbeiten]

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 „Spaghetticode“ zu erzeugen.

Simulation durch GOTO-Programm

[Bearbeiten | Quelltext bearbeiten]

Ein 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} } {\displaystyle \mathrm {WHILE} \quad x_{2}\neq 0\quad \mathrm {DO} \quad P\quad \mathrm {END} }

kann durch das folgende GOTO-Programm simuliert werden:

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

Siehe auch

[Bearbeiten | Quelltext bearbeiten]
  • LOOP-Programm
  • GOTO-Programm

Literatur

[Bearbeiten | Quelltext bearbeiten]
  • Uwe Schöning: 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.teknopedia.teknokrat.ac.id/w/index.php?title=WHILE-Programm&oldid=235726108“
Kategorie:
  • Berechenbarkeitstheorie

  • indonesia
  • Polski
  • العربية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصرى
  • Nederlands
  • 日本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українська
  • Tiếng Việt
  • Winaray
  • 中文
  • Русский
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id