Programmiersprache Pascal

Datenaustausch mit Unterprogrammen

Für den Datenaustausch mit Unterprogrammen gibt es folgende prinzipielle Möglichkeiten: Der Datenaustausch über Dateien bietet die größte Flexibilität, ist jedoch mit gegebenfalls erheblich höherer Laufzeit und dem Problem verbunden, daß sich gegebenenfalls 'Dritte' relativ einfach Zugang zu den Daten verschaffen können.

Die Arbeit mit globalen und gemeinschaftlichen Daten ist für den Programmierer die - scheinbar - unaufwendigste Form für den Datenaustausch innerhalb eines Programms:

Programmeinheiten, die diese Formen des Datenaustausches nutzen, sind nicht bzw. nur eingeschränkt nachnutzbar.

Gemeinschaftliche Daten sind in speziellen Bereichen (COMMON-Blöcken) angeordnet, auf die jede Programmeinheit bei Bedarf Bezug nehmen kann. Im Gegensatz zu Dateien werden diese Daten permanent im Hauptspeicher gehalten.
COMMON-Blöcke sind in Pascal nicht üblich.

Globale Daten werden automatisch an alle Unterprogramme weitergegeben, die der Deklaration dieser Daten folgen und die im gleichen Programmblock angesiedelt sind.
Die Arbeit mit globalen Daten wird durch Pascal unterstützt.

Parameter werden an ein Unterprogramm über eine definierte Schnittstelle - die Parameterliste - übergeben.
Diese Schnittstelle legt fest, welche Daten (Anzahl, Datentyp) in welcher Richtung (lesen oder schreiben) ausgetauscht werden.
Die Organisation der Datenübergabe und Art und Umfang der dabei wirksamen Kontrolle sind in den einzelnen Programmiersprach(version)en unterschiedlich ausgebaut.
Pascal stellt eine gute Kontrolle bereit.

Der Datenaustausch mit Parametern ist aufwendiger zu programmieren, bietet aber folgende Vorteile:

Die Arbeit mit Parameterlisten ist die sicherste Form des Datenaustausches. Sie kann entweder ausschließlich oder in Kombination mit anderen Techniken genutzt werden.

Die an das Unterprogramm bei einem Aufruf zu übergebenden Daten werden als aktuelle Parameter bezeichnet.
Als aktuelle Parameter können

angegeben werden.
Bei bestimmten Techniken der Parameterübergabe sind Variablen vorgeschrieben.
Ausdrücke werden vor der Übergabe ausgewertet.

Die in der Deklaration eines Unterprogramms notierten Parameter werden in Unterscheidung von den aktuellen Parametern auch als formale Parameter bezeichnet.

Es gibt verschiedene Techniken der Parameterübergabe an ein Unterprogramm. Dabei werden vor allem zwei Techniken eingesetzt:

Referenzparameter (call by reference):
Das Unterprogramm erhält die Adresse des aktuellen Parameters.
Entweder darf es in dem Speicherbereich, den der aktuelle Parameter belegt Bei der zweiten Variante muß der aktuelle Parameter stets eine Variable sein.
Das Unterprogramm arbeitet im Speicherbereich der aufrufenden Programmeinheit.

Wertparameter (call by copy):
Das Unterprogramm arbeitet mit einer Kopie, es arbeitet nicht im Speicherbereich der aufrufenden Programmeinheit.
Es gibt folgende Varianten:
Pascal sieht folgende Formen der Parameterübergabe vor: Delphi und XL Pascal (VM-Modus) gestatten eine dritte Form der Parameterübergabe: Mit welchen der oben beschriebenen Techniken der Parameterübergabe diese Formen realisiert werden, kann von Pascal-System zu Pascal-System variieren.
Es sollte in der Regel so programmiert werden, daß keine Abhängigkeiten von der verwendeten Technik entstehen.
Beispiel:
Als Eingangsgrößen deklarierte Parameter sollten im Unterprogramm nie einen neuen Wert erhalten.

Die Technik der Parameterübergabe kann jedoch Einfluß auf das Laufzeitverhalten und den Speicherbedarf des Programms haben. Ferner besteht ein gewisser Einfluß auf die mögliche Höhe von Schäden durch fehlerhaften Programmcode.
Folgende Faktoren spielen dabei unter anderem eine Rolle:

Gestaltungsregeln

Für den Aufbau von Unterprogrammen gibt es einige Gestaltungsregeln:



P. Böhme, 24.08.1995