Programmiersprache Pascal

Adresse von Variablen

Die Adresse verweist auf den Hauptspeicherbereich, auf dem zur Laufzeit des Programms der Wert einer Variablen aufbewahrt wird.

Mit der Kenntnis einer Adresse allein ist relativ wenig anzufangen.
Benötigt wird ferner

Beide Informationen lassen sich aus dem Datentyp der Variablen ableiten.

In Standard und Extended Pascal lassen sich weder der Typ einer Variablen noch die Größe des von ihr belegten Speicherbereichs dynamisch zur Laufzeit ermitteln.
Einige Pascal-Systeme bieten jedoch (bedingt) Unterstützung:

Auch für die Ermittlung der Adresse selbst leisten weder Standard noch Extended Pascal Unterstützung.
Da Pascal nicht als Sprache für die Systemprogrammierung konzipiert wurde, besteht hierzu auch keine Notwendigkeit.

Auch hier gibt es in verschiedenen Pascal-Systemen wieder Spracherweiterungen:

Möglichkeiten zur direkten Zuordnung einer festen Adresse an eine Variable sind in Pascal nicht möglich und machen bei modernen Betriebssystemen, bei denen meist verschiedene, sich teilweise überlagernde Programme "gleichzeitig" arbeiten, wenig Sinn.
Turbo Pascal unter DOS stellt eine Ausnahme dar: Für die - nicht ungefährliche - gemeinsame Nutzung eines Speicherbereichs durch verschiedenen Variablen gibt es allerdings in Standard Pascal eine legale Lösung: Mit den - nicht standardgerechten - absoluten Variablen gibt es in einigen Pascal-Systemen eine Alternative.


Modernen Programmiersprachen vermeiden es, Sprachmittel anzubieten, die einen direkten Zugriff auf Adressen erlauben. Dies gilt zum einen für die Abfrage und mehr noch für die Manipulation von Adreßwerten.
Derartige Operationen sind fehleranfällig und gefährden zudem die Portabilität.

Außerhalb der Systemprogrammierung ist in modernen Programmiersprachen ein direkter Zugriff auf Adressen (fast) immer zu umgehen.

Pascal ist keine Sprache zur Systemprogrammierung.
Turbo Pascal ist einsetzbar zur Systemprogrammierung, jedoch ist Turbo Pascal eigentlich schon eine eigene Sprache ...



P. Böhme, 09.09.1996