Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

Registermaschine

Die Registermaschine (RM) ist eine abstrakte Maschine der theoretischen Informatik. Registermaschinen sind Turing-vollständig, das heißt, …

Inhalt4 Abschnitte
  1. 1. Grundidee und Bedeutung
  2. 2. Aufbau und Ausführung
  3. 3. Beispiel: Identitätsfunktion
  4. 4. Random Access Machine

Grundidee und Bedeutung

Eine Registermaschine (RM) ist eine abstrakte Maschine der theoretischen Informatik. Sie verarbeitet natürliche Zahlen in durchnummerierten Speicherzellen, den Registern, nach einem endlichen Programm aus einfachen Befehlen.

Registermaschinen sind Turing-vollständig. Das bedeutet: Sie können prinzipiell alle Berechnungen ausführen, die auch eine Turingmaschine oder ein realer Rechner ausführen kann. Registermaschine und Turingmaschine können sich gegenseitig mit polynomieller Laufzeit simulieren. Deshalb gelten Aussagen, die für Turingmaschinen bewiesen werden, auch für Registermaschinen und damit für beliebige Rechenmaschinen. Für viele Beweise ist das Modell der Turingmaschine besonders günstig.

Aufbau und Ausführung

Es gibt leicht unterschiedliche Definitionen von Registermaschinen; hier besteht eine einfache RM aus einem Programm mit endlich vielen, ab 1 nummerierten Befehlen, einem Befehlszähler b, einem Input-Wert m, einem Output-Wert n und unendlich vielen Registern r(1), r(2), r(3), … . Jedes Register speichert eine natürliche Zahl.

Zum Start steht b auf der Startmarke des Programms. Die Register 1 bis m erhalten die geordneten Werte des Eingabedatensatzes, alle übrigen Register den Wert 0. Danach wird stets der Befehl mit der Nummer b ausgeführt. Verweist b auf einen nicht vorhandenen Befehl, terminiert das Programm. Anschließend werden die Werte r(1) bis r(n) ausgegeben.

Die drei Grundoperationen sind: Aᵢ then p setzt r(i) := r(i) + 1 und b := p. Sᵢ then p vermindert r(i) um 1, falls r(i) > 0 ist, und setzt danach b := p. if Tᵢ then p else q prüft r(i): Bei r(i) = 0 wird b := p gesetzt, sonst b := q. Flussdiagramme eignen sich zur anschaulichen Darstellung solcher Programme.

Beispiel: Identitätsfunktion

Das dargestellte Beispiel gibt stets den ersten Eingabewert aus und implementiert damit die Identitätsfunktion. Ein Test prüft dabei, ob R₁ den Wert 0 enthält.

Ist der Test negativ, wiederholt die Maschine eine Schleife: Sie dekrementiert R₁ und inkrementiert R₀. Sobald R₁ den Wert 0 enthält, ist der Test positiv und die Maschine hält an. Im Haltezustand steht in R₀ genau der ursprüngliche Eingabewert aus R₁.

Random Access Machine

Die Random Access Machine (RAM) ist eine spezielle Registermaschine mit indirekter Adressierung. Dabei kann ein Registerinhalt selbst die Nummer des Registers festlegen, auf das zugegriffen wird. Die RAM besitzt ein endliches, ab 1 nummeriertes Programm, den Befehlszähler b, den Akkumulator c(0) sowie die Register c(1), c(2), … . Auch b und c(0) speichern beliebig große natürliche Zahlen.

Zu Beginn gilt b = 1 und c(0) = 0. Die Register ab Nummer 1 enthalten die endliche Eingabe; alle weiteren Register sind 0. Der Akkumulator ist das zentrale Arbeitsregister. LOAD i lädt c(i) in c(0), CLOAD i lädt die Konstante i. INDLOAD i lädt c(c(i)) und verwendet damit indirekte Adressierung. STORE i speichert c(0) in c(i), INDSTORE i in c(c(i)).

Für Rechnungen gibt es ADD, SUB, MUL und DIV sowie Varianten mit Konstanten (CADD, CSUB, CMUL, CDIV) und indirekter Adresse (INDADD, INDSUB, INDMUL, INDDIV). Bei der Subtraktion wird nicht negativ gerechnet: SUB i setzt c(0) := max(c(0) − c(i), 0); entsprechend nutzen CSUB und INDSUB diese Begrenzung. Division verwendet den ganzzahligen Abrundungswert, etwa DIV i: c(0) := ⌊c(0)/c(i)⌋.

Fast alle dieser Befehle erhöhen b um 1. GOTO i setzt b direkt auf i. IF c(0) α l GOTO i mit α ∈ {<, =, ≠, >} und l ∈ ℕ springt zu i, wenn die Bedingung wahr ist; andernfalls wird b := b + 1. END lässt b unverändert. Die Maschine hält an, wenn b den Befehl END bezeichnet; das Ergebnis steht dann in zuvor festgelegten Registern.

Lernvideos zu Registermaschine

Weiterlesen

Automat (Informatik) Ein Automat oder eine abstrakte Maschine ist in der Informatik, speziell in der Automatentheorie, das Modell eines digitalen, zeitdiskreten Rechners. Theoretische Informatik Ihre Inhalte sind die Automatentheorie, die Theorie der formalen Sprachen, die Berechenbarkeits- und Komplexitätstheorie, aber auch die Logik und formale … Turingmaschine Eine Turingmaschine ist ein mathematisches Modell der theoretischen Informatik, das eine abstrakte Maschine definiert. Bei diesem Rechnermodell werden nach … Natürliche Zahl Die natürlichen Zahlen (ℕ) sind Teil der ganzen Zahlen (ℤ), die Teil der rationalen Zahlen (ℚ), die wiederum Teil der reellen Zahlen (ℝ) sind. Die dabei global … Programmablaufplan Ein Programmablaufplan (PAP) ist ein Ablaufdiagramm für ein Computerprogramm, das auch als Flussdiagramm (engl. flowchart) oder Programmstrukturplan … Adressierung (Rechnerarchitektur) Adressierung ist in der Programmierung das Festlegen, auf welche Operanden (z. B. Datenfelder) sich ein Maschinenbefehl bezieht. Die Operanden können auf … Verfeinerung (Informatik) Unter Verfeinerung versteht man in der Informatik ein Verfahren, bei dem aus einer abstrakten Beschreibung (z. B. Registermaschine, formale Spezifikation … Kellerautomat Ein Kellerautomat (KA, auch PDA für englisch pushdown automaton; auch Stackmaschine) ist ein Automat im Sinne der theoretischen Informatik, ein Konstrukt, … Berechenbarkeitstheorie Die Berechenbarkeitstheorie (auch Rekursionstheorie) ist ein Teilgebiet der theoretischen Informatik ... Ein weiteres Problem ist das Halteproblem. Es …