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. 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.
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.
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 UnixMittels des Befehls int wird das zuvor übersetzte Pascal-Programm bsp ausgeführt.
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 PascalEs genügt die Angabe
PROGRAM name;Standardein- und -ausgabe stehen automatisch immer zur Verfügung.
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.