Programmiersprache Pascal

Hauptprogramm

Als Hauptprogramm wird eine Programmeinheit bezeichnet, die von außen (z.B. über Befehle des Betriebssystems) direkt aktivierbar ist.
Andere Programmeinheiten sind über das Betriebssystem nicht direkt aktivierbar. Die Ressourcen eines Moduls können immer nur indirekt angesprochen werden, Unterprogramme sind nur intern aktivierbar.

Ein typisches Hauptprogramm besitzt folgenden Aufbau:

In Pascal wird das Hauptprogramm mit Hilfe des Programm-Blocks realisiert.
Der Deklarationsteil kann im einfachsten Fall entfallen.
Er kann folgende Anweisungen umfassen:

  LABEL ...;               { Marken }
  CONST ...;               { Konstanten }
  TYPE ...;                { Datentypen }
  VAR ...;                 { Variablen }
  PROCEDURE ...;           { Prozeduren }
  FUNCTION ...;            { Funktionen }
In Standard Pascal müssen Deklarationen in der angegebenen Reihenfolge vorgenommen werden, lediglich Prozeduren und Funktionen sind gleichberechtigt.
Es gibt jedoch kaum noch Pascal-Systeme, die auf dieser Einschränkung bestehen.

Ein Hauptprogramm ohne Anweisungsteil ist im allgemeinen nicht verboten, jedoch im Höchstfall zum syntaktischen Test von Deklarationsanweisungen zu gebrauchen.

Bemerkung:
In Standard Pascal ist der Begriff "Hauptprogramm" nicht üblich. Er macht dort auch relativ wenig Sinn, da bedingt durch fehlende Modularisierungsmöglichkeiten alle anderen Programmeinheiten vom Programm-Block eingeschlossen werden müssen.
Der Programm-Block ist in Standard Pascal die einzig mögliche Übersetzungseinheit.

Alle leistungsfähigen Pascal-Systeme verfügen jedoch heute über Sprachmittel zur Modularisierung.
Zur Nutzung der Ressourcen eines Moduls bedarf es eines Hauptprogramms.

Zur Ausführung von Pascal-Anweisungen muß immer ein Hauptprogramm zur Verfügung gestellt werden.
Bei der traditionellen Programmierung liefert der Anwendungsprogrammierer das Hauptprogramm. Neuere Programmiersysteme (z.B. Delphi) gestatten es, daß der Programmierer seine anwendungsspezifischen Routinen in einen verfügbaren Rahmen (ein vorgefertigtes Hauptprogramm) "einhängt".

Der Pascal-Standard sieht für die PROGRAM-Anweisung eine Parameterliste vor.
Über die Parameterliste kann mitgeteilt werden, welche "Kanäle" das Programm zum Datenaustausch mit seiner Umgebung benötigt.
Mit externen Mitteln kann dafür gesorgt werden, daß die Datenströme richtig kanalisiert werden.
Häufig sieht die PROGRAM-Anweisung wie folgt aus:

  PROGRAM name(INPUT, OUTPUT);
name sollte den Verwendungszweck des Programms zum Ausdruck bringen und muß den Pascal-Namenskonventionen entsprechen. In vielen Pascal-Systemen spielt er keine weitere Rolle.
INPUT ermöglicht den Zugriff auf die Standardeingabe
OUTPUT gestattet die Nutzung der Standardausgabe.
Die Parameterliste kann die Namen weiterer Dateivariablen enthalten.

Bei einigen Pascal-Systemen ist die Angabe von INPUT bzw. OUTPUT zwingend erforderlich, wenn das Programm die Standardeingabe bzw. -ausgabe nutzen will.
Andere Pascal-Systeme (z.B. Turbo Pascal, XL Pascal) erlauben das Weglassen der Parameterliste.

In welcher Form die Bindung der in der Parameterliste benannten Dateivariablen mit konkreten Dateien bzw. Geräten erfolgt, ist in hohem Maße systemabhängig.

Beispiel:

  PROGRAM name(f, INPUT, OUTPUT);
  TYPE rec = RECORD ... END;
  VAR f : FILE OF rec;
f muß deklariert werden, INPUT und OUTPUT sind vordefiniert.
Die Zuordnung einer konkreten Datei zu f muß - systemabhängig - über das Betriebssystem erfolgen.
Dies kann z.B. über Parameter beim Programmaufruf geschehen, oder bei interaktiven Betriebssystemen durch eine Abfrage beim ersten Zugriff.

Bemerkung: Moderne Pascal-Systeme nutzen meist Prozeduren zur Zuordnung einer Datei an eine Dateivariable.
Gegebenenfalls können bei der Programmausführung INPUT und/oder OUTPUT umgelenkt werden. Dazu sind die Mittel des Betriebssystems zu nutzen.

Siehe auch: Dateivariablen in der PROGRAM-Anweisung

Beispiel:
Ausführung eines Programms mit Pascal++

  int /output=ausgabe.dat bsp
  int bsp >ausgabe.dat              unter DOS oder Unix
Mittels des Befehls int wird das zuvor übersetzte Pascal-Programm bsp ausgeführt.
Die Standardausgabe wird in beiden Fällen in die Datei ausgabe.dat umgeleitet.

Beispiele:

  PROGRAM minimal;
  BEGIN
  END.

  PROGRAM bsp1(OUTPUT);
  BEGIN
    Writeln('Hello, World !');
  END.

  PROGRAM bsp2(INPUT, OUTPUT);
  VAR code : INTEGER
  BEGIN
    Write('Geben Sie bitte Ihre Codenummer ein : ');
    Readln(code);
    Writeln('Danke, ', code, ' !');
  END.
Turbo Pascal, Delphi, XL Pascal

Es genügt die Angabe

  PROGRAM name;
Standardein- und -ausgabe stehen automatisch immer zur Verfügung.
In Turbo Pascal und Delphi darf sogar die gesamte PROGRAM-Anweisung entfallen.

Ist eine Portierung des Programms vorgesehen, so sollte stets die PROGRAM-Anweisung einschließlich Parameter angegeben werden.

Pascal++

Die Parameter INPUT bzw. OUTPUT müssen angegeben werden, wenn das Pascal-Programm Ein- bzw. Ausgabeoperationen über die Standardein- und -ausgabe vornehmen soll.



P. Böhme, 07.09.1996