Speicherkonzepte
Der Speicher unseres Rechners besteht aus
einzelnen Zellen fester Länge,
die ab 0 bis zu einem vom Ausbau abhängigen
Maximalwert durchnumeriert sind;
die Nummern nennen wir Hausnummern,
um sie von den im Adreßteil von Maschinenbefehlen
vorkommenden Adressen bei Bedarf unterscheiden zu können;
je nach Prozessor kann sich eine Adresse auch auf ein Register beziehen,
oder die Adressen werden beim Speicherzugriff
noch durch eine eigene Hardware-Einheit umgerechnet.
Wir fassen Folgen von Zellen, die wir zur Ablage von Daten verwenden
wollen, logisch zu Speicherobjekten zusammen.
Ein Speicherobjekt hat folgende Attribute:
- einen Typ, der die interne Darstellung der Daten und
die Länge bestimmt,
- einen Inhalt: die Daten selbst in interner Darstellung,
- einen Ort: die Hausnummer,
Als Methoden haben wir
- lesen: auf den Inhalt zugreifen,
- schreiben: den Inhalt ändern.
Wie alle Objekte kann man auch Speicherobjekte
erzeugen (belegen) und löschen (freigeben).
Ein Speicherobjekt kann, wenn die Daten eine Struktur tragen,
in weitere Speicherobjekte zerfallen.
Auf der Ebene der höheren Programmiersprachen
entsprechen den Speicherobjekten Variablen,
doch ist die Zuordnung nicht umkehrbar eindeutig.
Zu jedem Datentyp T, also einer Klasse von Werten
zusammen mit den darauf definierten Operationen,
betrachten wir eine Klasse Var(T)
der Behälter für Werte aus T.
Ein Behälter hat die folgenden Attribute:
- den Typ T
- einen Zugriffspfad, die Referenz,
auf ein zugeordnetes Speicherobjekt
- dessen Inhalt (vom Typ T)
- evtl. eine Benennung oder mehrere davon
Als Methoden kommen in Betracht:
- auswerten: Ausliefern des Inhalts
- besetzen: Ändern des Inhalts
Wann (und ob) wir einer Variablen ein Speicherobjekt zuordnen
(daran binden),
hängt von der Lebensdauer der Variablen ab.
Die Zuordnung kann man auch wieder auflösen.
zurück |
Inhalt | Index |
vor |
Vorlesung
Klaus Lagally, 22. Februar 2000, 19:36