Von Neumann Architektur? Unterscheidung zwischen wortwörtlichen Instruktionen und Interpretation?

2 Antworten

Was ist mit "der Computer" genau gemeint?

Die CPU muss nichts unterscheiden. Die hat einen "program counter", der immer auf die Speicheradresse des nächsten Befehls zeigt. Dieser wird dann geholt und ausgeführt. Und dann wird der program counter inkrementiert (um die Länge des Befehles).

Bei einem Unterprogrammaufruf legt sie die Rücksprungadresse auf den Stack. Auch da muss die CPU nichts unterscheiden.

Ein Programmierer muss allerdings dafür sorgen, dass er z.B. mit seinen Daten nicht ungewollt das Programm überschreibt, er muss sich also Gedanken über die Aufteilung der Speicherbereiche machen.

Viele CPUs haben Mechanismen, die ein versehentliches Überschreiben des Programmes verhindern (man kann z.B. Code-, Stack- und Datensegmente definieren, und beim Versuch des Schreibens in das "falsche" Segment gibt's einen "segmentation fault").

Ich verstehe nicht ganz, was mit "Instruktionen, die er interpretieren muss" gemeint sein soll. Geht es um so was wie indirekte Adressierung, oder eine Art "Virtualisierung"?

Ausgeführt werden ja nur Maschinenbefehle der Architektur. Bei interpretierten Programmiersprachen läuft halt ein Stück Software (Maschinenbefehle), dass in Abhängigkeit der Befehle unterschiedliche Unterroutinen mit den jeweiligen Maschinenbefehlen ausführt.

Die Architektur bezieht sich ja aber auf den Prozessor.