Registermaschine

Definition und Aufbau

Die Registermaschine (RAM – Random Access Machine) ist ein alternatives Berechnungsmodell, das näher an realen Computern orientiert ist als die Turingmaschine. Sie besteht aus:

  • Programmspeicher: Enthält eine nummerierte Folge von Befehlen.
  • Befehlszähler (BZ): Zeigt auf den aktüll auszuführenden Befehl.
  • Akkumulator (c(0)): Spezialregister für Berechnungen (Ergebnis von Operationen).
  • Register r1, r2, r3, ...: Nummerierte Speicherzellen, die jeweils eine natürliche Zahl enthalten. Initial sind alle Register 0.
Befehlssatz

Der Befehlssatz einer typischen Registermaschine:

  • LOAD i: Lade den Wert von Register ri in den Akkumulator. c(0) := c(i)
  • STORE i: Speichere den Akkumulatorwert in Register ri. c(i) := c(0)
  • ADD i: Addiere den Wert von ri zum Akkumulator. c(0) := c(0) + c(i)
  • SUB i: Subtrahiere den Wert von ri vom Akkumulator. c(0) := max(0, c(0) − c(i))
  • MULT i: Multipliziere. c(0) := c(0) × c(i)
  • DIV i: Ganzzahlige Division. c(0) := c(0) / c(i)
  • LOAD# k: Lade die Konstante k in den Akkumulator. c(0) := k
  • GOTO j: Springe zu Befehl Nr. j. BZ := j
  • IF c(0) = 0 GOTO j: Bedingter Sprung. Wenn Akkumulator = 0, springe zu j.
  • IF c(0) > 0 GOTO j: Bedingter Sprung. Wenn Akkumulator > 0, springe zu j.
  • END: Programm beenden.
Beispiel: Addition zweier Zahlen

Eingabe: r1 = 5, r2 = 3. Berechne r1 + r2 und speichere in r3:

1: LOAD 1       // c(0) := 5
2: ADD 2        // c(0) := 5 + 3 = 8
3: STORE 3      // c(3) := 8
4: END
Beispiel: Multiplikation durch wiederholte Addition

Eingabe: r1 = a, r2 = b. Berechne a × b in r3:

1: LOAD# 0      // c(0) := 0
2: STORE 3      // r3 := 0 (Ergebnis)
3: LOAD 2       // c(0) := b
4: IF c(0)=0 GOTO 9  // wenn b=0, fertig
5: LOAD 3       // c(0) := r3
6: ADD 1        // c(0) := r3 + a
7: STORE 3      // r3 := r3 + a
8: LOAD 2       // c(0) := b
9: SUB# 1       // c(0) := b - 1
10: STORE 2     // r2 := b - 1
11: GOTO 3      // wiederhole
12: END
Äquivalenz zur Turingmaschine

Die Registermaschine und die Turingmaschine sind berechnungsäquivalent:

  • Jede TM kann eine Registermaschine simulieren: Die Register werden auf dem Band kodiert.
  • Jede Registermaschine kann eine TM simulieren: Das Band wird in Registern gespeichert.

Beide Modelle berechnen exakt die gleiche Klasse von Funktionen – die Turing-berechenbaren Funktionen. Dies unterstützt die Church-Turing-These.

Vergleich: Registermaschine vs. Turingmaschine
  • Nähe zur Praxis: Registermaschine ist näher an realen Computern (Register, Befehle). TM ist abstrakter.
  • Speicher: RM hat wahlfreien Zugriff auf Register. TM muss das Band sequentiell durchlaufen.
  • Komplexitätsanalyse: RM wird häufig für Laufzeitanalysen verwendet (O-Notation). TM wird für Berechenbarkeitsfragen verwendet.
  • Berechnungsstärke: Gleich – beide berechnen exakt die Turing-berechenbaren Funktionen.

Abitur-Tipp: Im Abitur wird häufig ein Registermaschinen-Programm gegeben, das Schritt für Schritt nachvollzogen werden soll (Tabelle mit BZ, c(0), r1, r2, ...). Übe das sorgfältige Protokollieren jedes Schritts. Typische Programme: Addition, Multiplikation durch wiederholte Addition, bedingte Verzweigungen. Die Äquivalenz zur TM ist ein beliebtes Verständnisthema.