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. GOTO-Programm – Wikipedia
GOTO-Programm – Wikipedia
aus Wikipedia, der freien Enzyklopädie

GOTO-Programme sind spezielle Programme mit einer sehr einfachen Syntax. Dennoch spielen sie in Zusammenhang mit Berechenbarkeit eine große Rolle für die theoretische Informatik, insbesondere weil sich zeigen lässt, dass jede Turing-berechenbare Funktion GOTO-berechenbar ist.

Syntax

[Bearbeiten | Quelltext bearbeiten]

GOTO-Programme haben folgende Syntax in modifizierter Backus-Naur-Form:

  • P ::= M 1 : A ; . . . ; M k : A {\displaystyle P::=M_{1}:A;...;M_{k}:A} {\displaystyle P::=M_{1}:A;...;M_{k}:A}
  • A ::= x i := x j + c | x i := x j − c | G O T O M i | I F x i = c T H E N G O T O M j | S T O P {\displaystyle A::=x_{i}:=x_{j}+c\,|x_{i}:=x_{j}-c\,|\,\mathrm {GOTO} \,M_{i}\,|\,\mathrm {IF} \,x_{i}=c\,\mathrm {THEN} \,\mathrm {GOTO} \,M_{j}\,|\,\mathrm {STOP} } {\displaystyle A::=x_{i}:=x_{j}+c\,|x_{i}:=x_{j}-c\,|\,\mathrm {GOTO} \,M_{i}\,|\,\mathrm {IF} \,x_{i}=c\,\mathrm {THEN} \,\mathrm {GOTO} \,M_{j}\,|\,\mathrm {STOP} }
  • M 1 , . . . , M k {\displaystyle M_{1},...,M_{k}} {\displaystyle M_{1},...,M_{k}} sind Marken (k ∈ ℕ)

G O T O {\displaystyle GOTO} {\displaystyle GOTO} ist die Menge aller GOTO-Programme gemäß obiger Definition.

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

Jede Turing-berechenbare Funktion ist GOTO-berechenbar und umgekehrt.

Erklärung der Syntax

[Bearbeiten | Quelltext bearbeiten]

Jedes GOTO-Programm P {\displaystyle P} {\displaystyle P} besteht aus einer Anzahl von Anweisungen A {\displaystyle A} {\displaystyle A}, getrennt mit jeweils einem Semikolon. Vor jeder Anweisung befindet sich eine (eindeutige) Marke M 1 ,   M 2 ,   … {\displaystyle M_{1},\ M_{2},\ \dots } {\displaystyle M_{1},\ M_{2},\ \dots }, gefolgt von einem Doppelpunkt.

GOTO-Programme haben eine endliche Anzahl von Variablen x 1 ,   x 2 ,   … {\displaystyle x_{1},\ x_{2},\ \dots } {\displaystyle x_{1},\ x_{2},\ \dots } und Konstanten c {\displaystyle c} {\displaystyle c}. Es sind nur fünf verschiedene Anweisungen erlaubt:

  • Zuweisung einer Variablen durch eine weitere (dieselbe oder eine andere) Variable, vermehrt um eine Konstante, etwa
x 1 := x 2 + 3 {\displaystyle x_{1}:=x_{2}+3} {\displaystyle x_{1}:=x_{2}+3}
  • oder vermindert um eine Konstante, etwa
x 3 := x 3 − 1 {\displaystyle x_{3}:=x_{3}-1} {\displaystyle x_{3}:=x_{3}-1}.
  • eine Sprunganweisung
G O T O M 4 {\displaystyle \mathrm {GOTO} \quad M_{4}} {\displaystyle \mathrm {GOTO} \quad M_{4}}
  • eine bedingte Sprunganweisung, wobei eine Variable auf Gleichheit mit einer Konstanten abgefragt wird, etwa
I F x 4 = 45 T H E N G O T O M 5 {\displaystyle {\rm {IF}}\quad x_{4}=45\quad {\rm {THEN}}\quad {\rm {GOTO}}\quad M_{5}} {\displaystyle {\rm {IF}}\quad x_{4}=45\quad {\rm {THEN}}\quad {\rm {GOTO}}\quad M_{5}}
  • und die STOP-Anweisung
S T O P {\displaystyle {\rm {STOP}}} {\displaystyle {\rm {STOP}}}.

Konsequenz

[Bearbeiten | Quelltext bearbeiten]

Man kann formal beweisen, dass jedes GOTO-Programm auch durch ein äquivalentes Pascal-, C-, C++- oder Java-Programm dargestellt werden kann, und umgekehrt.

Beispiele

[Bearbeiten | Quelltext bearbeiten]

Addition zweier Variablen

[Bearbeiten | Quelltext bearbeiten]

Das folgende GOTO-Programm berechnet die Summe x 1 + x 2 {\displaystyle x_{1}+x_{2}} {\displaystyle x_{1}+x_{2}} von zwei nicht-negativen Zahlen x 1 , x 2 {\displaystyle x_{1},x_{2}} {\displaystyle x_{1},x_{2}} und speichert diese in die Variable x 3 {\displaystyle x_{3}} {\displaystyle x_{3}}.

 
  
    
      
        
          M
          
            1
          
        
        :
      
    
    {\displaystyle M_{1}:}
  
{\displaystyle M_{1}:} 
  
    
      
        
          x
          
            3
          
        
        :=
        
          x
          
            1
          
        
      
    
    {\displaystyle x_{3}:=x_{1}}
  
{\displaystyle x_{3}:=x_{1}};
 
  
    
      
        
          M
          
            2
          
        
        :
      
    
    {\displaystyle M_{2}:}
  
{\displaystyle M_{2}:} 
  
    
      
        
          x
          
            4
          
        
        :=
        
          x
          
            2
          
        
      
    
    {\displaystyle x_{4}:=x_{2}}
  
{\displaystyle x_{4}:=x_{2}};
 
  
    
      
        
          M
          
            3
          
        
        :
      
    
    {\displaystyle M_{3}:}
  
{\displaystyle M_{3}:} 
  
    
      
        
          
            I
            F
          
        
         
        
          x
          
            4
          
        
        =
        0
         
        
          
            T
            H
            E
            N
          
        
         
        
          
            G
            O
            T
            O
          
        
         
        
          M
          
            7
          
        
      
    
    {\displaystyle {\rm {IF}}\ x_{4}=0\ {\rm {THEN}}\ {\rm {GOTO}}\ M_{7}}
  
{\displaystyle {\rm {IF}}\ x_{4}=0\ {\rm {THEN}}\ {\rm {GOTO}}\ M_{7}};
 
  
    
      
        
          M
          
            4
          
        
        :
      
    
    {\displaystyle M_{4}:}
  
{\displaystyle M_{4}:} 
  
    
      
        
          x
          
            3
          
        
        :=
        
          x
          
            3
          
        
        +
        1
      
    
    {\displaystyle x_{3}:=x_{3}+1}
  
{\displaystyle x_{3}:=x_{3}+1};
 
  
    
      
        
          M
          
            5
          
        
        :
      
    
    {\displaystyle M_{5}:}
  
{\displaystyle M_{5}:} 
  
    
      
        
          x
          
            4
          
        
        :=
        
          x
          
            4
          
        
        −
        1
      
    
    {\displaystyle x_{4}:=x_{4}-1}
  
{\displaystyle x_{4}:=x_{4}-1};
 
  
    
      
        
          M
          
            6
          
        
        :
      
    
    {\displaystyle M_{6}:}
  
{\displaystyle M_{6}:} 
  
    
      
        
          G
          O
          T
          O
        
        
        
          M
          
            3
          
        
      
    
    {\displaystyle \mathrm {GOTO} \quad M_{3}}
  
{\displaystyle \mathrm {GOTO} \quad M_{3}};
 
  
    
      
        
          M
          
            7
          
        
        :
      
    
    {\displaystyle M_{7}:}
  
{\displaystyle M_{7}:} 
  
    
      
        S
        T
        O
        P
      
    
    {\displaystyle STOP}
  
{\displaystyle STOP}

Multiplikation zweier Variablen

[Bearbeiten | Quelltext bearbeiten]

Das folgende Programm berechnet das Produkt x 1 ⋅ x 2 {\displaystyle x_{1}\cdot x_{2}} {\displaystyle x_{1}\cdot x_{2}} von zwei nicht-negativen Zahlen x 1 , x 2 {\displaystyle x_{1},x_{2}} {\displaystyle x_{1},x_{2}} und speichert dieses in die Variable x 3 {\displaystyle x_{3}} {\displaystyle x_{3}}. Da wir schon ein Programm zur Implementierung der Addition zweier Variablen haben, verwenden wir diese, um eine Implementierung der Multiplikation zu entwickeln.

 
  
    
      
        
          M
          
            1
          
        
        :
      
    
    {\displaystyle M_{1}:}
  
{\displaystyle M_{1}:} 
  
    
      
        
          x
          
            3
          
        
        :=
        0
      
    
    {\displaystyle x_{3}:=0}
  
{\displaystyle x_{3}:=0};
 
  
    
      
        
          M
          
            2
          
        
        :
      
    
    {\displaystyle M_{2}:}
  
{\displaystyle M_{2}:} 
  
    
      
        
          x
          
            4
          
        
        :=
        
          x
          
            2
          
        
      
    
    {\displaystyle x_{4}:=x_{2}}
  
{\displaystyle x_{4}:=x_{2}};
 
  
    
      
        
          M
          
            3
          
        
        :
      
    
    {\displaystyle M_{3}:}
  
{\displaystyle M_{3}:} 
  
    
      
        
          
            I
            F
          
        
        
        
          x
          
            4
          
        
        =
        0
        
        
          
            T
            H
            E
            N
          
        
        
        
          
            G
            O
            T
            O
          
        
        
        
          M
          
            7
          
        
      
    
    {\displaystyle {\rm {IF}}\quad x_{4}=0\quad {\rm {THEN}}\quad {\rm {GOTO}}\quad M_{7}}
  
{\displaystyle {\rm {IF}}\quad x_{4}=0\quad {\rm {THEN}}\quad {\rm {GOTO}}\quad M_{7}};
 
  
    
      
        
          M
          
            4
          
        
        :
      
    
    {\displaystyle M_{4}:}
  
{\displaystyle M_{4}:} 
  
    
      
        
          x
          
            4
          
        
        :=
        
          x
          
            4
          
        
        −
        1
      
    
    {\displaystyle x_{4}:=x_{4}-1}
  
{\displaystyle x_{4}:=x_{4}-1};
 
  
    
      
        
          M
          
            5
          
        
        :
      
    
    {\displaystyle M_{5}:}
  
{\displaystyle M_{5}:} 
  
    
      
        
          x
          
            3
          
        
        :=
        
          x
          
            3
          
        
        +
        
          x
          
            1
          
        
      
    
    {\displaystyle x_{3}:=x_{3}+x_{1}}
  
{\displaystyle x_{3}:=x_{3}+x_{1}};
 
  
    
      
        
          M
          
            6
          
        
        :
      
    
    {\displaystyle M_{6}:}
  
{\displaystyle M_{6}:} 
  
    
      
        
          G
          O
          T
          O
        
        
        
          M
          
            3
          
        
      
    
    {\displaystyle \mathrm {GOTO} \quad M_{3}}
  
{\displaystyle \mathrm {GOTO} \quad M_{3}};
 
  
    
      
        
          M
          
            7
          
        
        :
      
    
    {\displaystyle M_{7}:}
  
{\displaystyle M_{7}:} 
  
    
      
        S
        T
        O
        P
      
    
    {\displaystyle STOP}
  
{\displaystyle STOP};

Hier ist zu beachten, dass M 5 : {\displaystyle M_{5}:} {\displaystyle M_{5}:} x 3 := x 3 + x 1 {\displaystyle x_{3}:=x_{3}+x_{1}} {\displaystyle x_{3}:=x_{3}+x_{1}} formal kein gültiges GOTO-Programm ist, sondern durch ein entsprechendes GOTO-Programm für die Addition ersetzt werden muss. Führt man diese Ersetzung durch, erhält man folgendes GOTO-Programm für die Multiplikation von zwei nicht-negativen Zahlen x 1 , x 2 {\displaystyle x_{1},x_{2}} {\displaystyle x_{1},x_{2}}.

 
  
    
      
        
          M
          
            1
          
        
        :
      
    
    {\displaystyle M_{1}:}
  
{\displaystyle M_{1}:} 
  
    
      
        
          x
          
            3
          
        
        :=
        0
      
    
    {\displaystyle x_{3}:=0}
  
{\displaystyle x_{3}:=0};
 
  
    
      
        
          M
          
            2
          
        
        :
      
    
    {\displaystyle M_{2}:}
  
{\displaystyle M_{2}:} 
  
    
      
        
          x
          
            4
          
        
        :=
        
          x
          
            2
          
        
      
    
    {\displaystyle x_{4}:=x_{2}}
  
{\displaystyle x_{4}:=x_{2}};
 
  
    
      
        
          M
          
            3
          
        
        :
      
    
    {\displaystyle M_{3}:}
  
{\displaystyle M_{3}:} 
  
    
      
        
          
            I
            F
          
        
        
        
          x
          
            4
          
        
        =
        0
        
        
          
            T
            H
            E
            N
          
        
        
        
          
            G
            O
            T
            O
          
        
        
        
          M
          
            10
          
        
      
    
    {\displaystyle {\rm {IF}}\quad x_{4}=0\quad {\rm {THEN}}\quad {\rm {GOTO}}\quad M_{10}}
  
{\displaystyle {\rm {IF}}\quad x_{4}=0\quad {\rm {THEN}}\quad {\rm {GOTO}}\quad M_{10}};
 
  
    
      
        
          M
          
            4
          
        
        :
      
    
    {\displaystyle M_{4}:}
  
{\displaystyle M_{4}:} 
  
    
      
        
          x
          
            4
          
        
        :=
        
          x
          
            4
          
        
        −
        1
      
    
    {\displaystyle x_{4}:=x_{4}-1}
  
{\displaystyle x_{4}:=x_{4}-1};
 
  
    
      
        
          M
          
            5
          
        
        :
      
    
    {\displaystyle M_{5}:}
  
{\displaystyle M_{5}:} 
  
    
      
        
          x
          
            5
          
        
        :=
        
          x
          
            1
          
        
      
    
    {\displaystyle x_{5}:=x_{1}}
  
{\displaystyle x_{5}:=x_{1}};
 
  
    
      
        
          M
          
            6
          
        
        :
      
    
    {\displaystyle M_{6}:}
  
{\displaystyle M_{6}:} 
  
    
      
        
          
            I
            F
          
        
        
        
          x
          
            5
          
        
        =
        0
        
        
          
            T
            H
            E
            N
          
        
        
        
          
            G
            O
            T
            O
          
        
        
        
          M
          
            3
          
        
      
    
    {\displaystyle {\rm {IF}}\quad x_{5}=0\quad {\rm {THEN}}\quad {\rm {GOTO}}\quad M_{3}}
  
{\displaystyle {\rm {IF}}\quad x_{5}=0\quad {\rm {THEN}}\quad {\rm {GOTO}}\quad M_{3}};
 
  
    
      
        
          M
          
            7
          
        
        :
      
    
    {\displaystyle M_{7}:}
  
{\displaystyle M_{7}:} 
  
    
      
        
          x
          
            3
          
        
        :=
        
          x
          
            3
          
        
        +
        1
      
    
    {\displaystyle x_{3}:=x_{3}+1}
  
{\displaystyle x_{3}:=x_{3}+1};
 
  
    
      
        
          M
          
            8
          
        
        :
      
    
    {\displaystyle M_{8}:}
  
{\displaystyle M_{8}:} 
  
    
      
        
          x
          
            5
          
        
        :=
        
          x
          
            5
          
        
        −
        1
      
    
    {\displaystyle x_{5}:=x_{5}-1}
  
{\displaystyle x_{5}:=x_{5}-1};
 
  
    
      
        
          M
          
            9
          
        
        :
      
    
    {\displaystyle M_{9}:}
  
{\displaystyle M_{9}:} 
  
    
      
        
          G
          O
          T
          O
        
        
        
          M
          
            6
          
        
      
    
    {\displaystyle \mathrm {GOTO} \quad M_{6}}
  
{\displaystyle \mathrm {GOTO} \quad M_{6}};
 
  
    
      
        
          M
          
            10
          
        
        :
      
    
    {\displaystyle M_{10}:}
  
{\displaystyle M_{10}:} 
  
    
      
        S
        T
        O
        P
      
    
    {\displaystyle STOP}
  
{\displaystyle STOP};

Simulation durch WHILE-Programm

[Bearbeiten | Quelltext bearbeiten]

Ein GOTO-Programm

M1: A1; M2: A2; ... Mk: Ak

kann durch ein WHILE-Programm der folgenden Form simuliert werden

counter := 1;
WHILE counter != 0 DO
  IF counter = 1 THEN B1 END;
  IF counter = 2 THEN B2 END;
  ...
  IF counter = k THEN Bk END;
  IF counter = k+1 THEN counter := 0 END
END

wobei

Bi = xj := xn + c; counter := counter + 1   falls Ai = xj := xn + c
Bi = xj := xn - c; counter := counter + 1   falls Ai = xj := xn - c
Bi = counter := n                           falls Ai = GOTO Mn
Bi = IF xj = c THEN counter := n
     ELSE counter := counter + 1            falls Ai = IF xj = c THEN GOTO Mn
     END
Bi = counter := 0                           falls Ai = STOP

In WHILE-Programmen gibt es keine IF THEN END Anweisungen, diese können aber mit LOOP oder WHILE Schleifen implementiert werden. Das folgende Programm simuliert eine IF x1 = c THEN P1 END Anweisung, dabei werden drei neue Variablen xn1, xn2, xn3 verwendet.

xn1:=x1-(c-1); xn2:=x1-c; xn3:=1;
LOOP xn1 DO
  LOOP xn2 DO
     xn3:=0
  END;
  LOOP xn3 DO
     P1
  END
END

Siehe auch

[Bearbeiten | Quelltext bearbeiten]
  • Sprunganweisung (GOTO)
  • LOOP-Programm
  • WHILE-Programm
  • µ-Rekursion

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=GOTO-Programm&oldid=235725984“
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