Table Of ContentHermann Kamp
Hilmar Pudlatz
Einführung in die
Programmier-
sprache PL I
für Hörer aller Fachrichtungen ab
1. Sem
Third Edition
Hermann Kamp
Hilmar Pudlatz
Einführung in die
Programmiersprache PL/1
Programmiersprachen-------------------
Formale Sprachen, von H. Becker und H. Walter
Einführung in ALGOL 60, von H. Feldmann
Einführung in ALGOL 68, von H. Feldmann
Einführung in die Programmiersprache PASCAL,
von K.-H. Becker und G. Lamprecht
Einführung in PASCAL, von H. Feldmann
Die Programmiersprache PASCAL, von D. Krekel und W. Trier
Einführung in die Programmiersprache Ada, von M. Nagl
Einführung in die Programmiersprache PL/1,
von H. Kamp und H. Pudlatz
Einführung in die Programmierpsrache FORTRAN 77,
von G. Lamprecht
Einführung in die Programmiersprache SIMULA,
von G. Lamprecht
Einführung in die Programmiersprache BASIC,
von W.-D. Schwill und R. Weibezahn
BASIC in der medizinischen Statistik, von H. Ackermann
Einführung in die Programmiersprache COBOL,
von W.-M. Kähler
PEARL, Processand Experiment Automation Realtime
Language, von W. Werum und H. Windauer
Vieweg---------------------/
Hermann Kamp/Hilmar Pudlatz
Einführung in die
Programmiersprache
PL/1
Für Hörer
aller Fachrichtungen ab 1. Semester
3. Auflage
Springer Fachmedien Wiesbaden GmbH
1. Auflage I 9 72
2., verbesserte Auflage 1974
Nachdruck 1980
Nachdruck 1983
3. Auflage 1986
Alle Rechte vorbehalten
© Springer Fachmedien Wiesbaden 1986
Ursprünglich erschienen bei Friedr. Vieweg & Sohn Verlagsgesellschaft mbH, Braunschweig 1986
Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Jede Verwertung
außerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlags
unzulässig und strafbar. Das gilt insbesondere ftir Verviclf<iltigungen, Übersetzungen,
Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen.
ISBN 978-3-528-23316-7 ISBN 978-3-663-14154-9 (eBook)
DOI 10.1007/978-3-663-14154-9
Vorwort
Das vorliegende Buch gibt eine Einführung in die Programmiersprache PL/1; es möchte
dem Benutzer ein Selbststudium ermöglichen, wobei mathematische oder program
miertechnische Vorkenntnisse nicht erforderlich sind. Die zum Verständnis des
Buches notwendigen Begriffserklärungen werden in der Einleitung sowie in Teilen
von Kapitel I vermittelt, während Kapitel II die Grundelemente der Sprache PL/1
beschreibt. Die folgenden Kapitel wollen den Anfänger auch an kompliziertere Pro
gramm-und Datenstrukturen heranführen und Grundfragen der Programm-Optimie
rung behandeln.
Für die Benutzung des Buches möchten wir uns wünschen, daß die beiden ersten
Kapitel besonders gründlich erarbeitet werden, da uns dann bereits ein selbständiges
Programmieren in der Sprache PL/1 möglich erscheint. Wir denken dabei nicht nur
an technisch-wissenschaftliche oder kommerzielle Anwendungen, sondern möchten
auch Benutzer aus dem Bereich der Geisteswissenschaften und der Verwaltungen
ansprechen. Dieses Skriptum lehnt sich eng an Vorlesungen und Kurse an, die wir
am Rechenzentrum der Universität Münster abgehalten haben. Eine größere Anzahl
von Beispielprogrammen soll die an ihnen veranschaulichten Sprachelemente er
läutern, wobei auch die Daten und Ergebnisse der Programme mitgegeben werden.
Wir danken Frau I. Schulze und Herrn J. van Dyck für das Schreiben des Manus
kripts sowie den Herren Dipl.-Math. B. Neukäter und Dr. S. Zörkendörfer für das
Lesen der Korrekturen und für zahlreiche Verbesserungsvorschläge. Nicht zuletzt
danken wir dem Verlag ftir die gute Zusammenarbeit bei der Entstehung dieses
Buches.
Hermann Kamp
Münster Hilmar Pudlatz
In ha ltsverze ich ni s
Einleitung 1
I Grundbegriffe der Programmierung 9
1. Ein einfaches Programm 9
2. Ein-und Ausgabeoperationen, Sprungbefehl 11
3. Verarbeitung von Zeichenketten 15
4. 00-Schleife, Felder 17
5. Darstellung von Zahlen und Zeichen 32
II Elementares PL/1 51
1. Verschiedene Formen der Ein-und Ausgabe 51
2. Eingebaute Funktionen 54
3. Bitketten, logische Operationen 70
4. Strukturen, Felder von Strukturen 79
5. Satzweise Ein-und Ausgabe, Files 87
III Block-und Programmstrukturen 102
1. Blöcke, Geltungsbereiche von Variablenerklärungen, Marken 102
2. Programmunterbrechungen und Testhilfen 116
3. Subroutinen und Funktionen 130
4. Verschiedene Speicherklassen 142
IV Datenorganisation 146
1. Aufbau von Dateien, Band und Platte 146
2. Indexsequentielle Dateien 163
3. Regionaldateien 174
V Fortgeschrittene PL/1-Techniken 182
1. Zeiger und Listen 182
2. Programmgenerierung während der Übersetzung 194
3. PL/1 -integriertes Sortier /Mischprogramm 202
4. Parallelverarbeitung 208
VI Programmbeispiele 213
-1-
Einleitung
Eine Programmiersprache ist eine Kunstsprache, mit deren
Hilfe die Eingabe einer Folge von Arbeitsanweisungen (In
struktionen) in eine elektronische Datenverarbeitungsanlage
(EDVA) möglich ist. Eine EDVA ist einer Hilfskraft in einem
Büro vergleichbar, die nach einer festen Arbeitsvorschrift
immer wiederkehrende Aufgaben erledigen kann. Dies soll am
folgenden Bild anschaulich erläutert werden:
Arbeits gegebene
Ergebnisse
vorschrift Daten
Tisch
rechen
maschine
ergebnisse
Die Bürohilfskraft erhält eine detaillierte Arbeitsvor
schrift, in der die zu bewältigende Aufgabe (z.B. eine Lohn
abrechnung) genau beschrieben ist. Nach dieser Arbeitsvor
schrift muß sie für eine Anzahl von Personen die Bruttolöhne
aus Stundenlohn und Stundenzahl ermitteln, Steuer- und Sozi
alversicherungsbeiträge in Tabellen nachschlagen und aus den
Bruttolöhnen und den genannten Abzügen die Nettolöhne er
mitteln. Für jede Person müssen also zunächst gewisse Daten
(Personalstammdaten und Arbeitsdaten) gelesen werden. Zur
Durchführung der erforderlichen Rechnungen bedient sich die
Hilfskraft einer Tischrechenmaschine, wobei die anfallenden
Zwischenergebnisse auf Papier notiert werden (Bruttolohn,
Summe der Abzüge). Steuern und Sozialversicherungsbeiträge
werden aus vorhandenen Tabellenheften entnommen. Sie haben
mit den erwähnten Zwischenergebnissen gemein, daß sie auch
auf Papier festgehalten - wir sagen "gespeichert" - sind.
-2-
Schließlich werden alle interessierenden Daten als Ergebnis
der Lohnabrechnung notiert und abgelegt.
Eine EDVA - wir sagen auch vereinfachend Rechenanlage,
Rechner oder "Maschine" - arbeitet im wesentlichen nach dem
gleichen Prinzip. Dabei entsprechen den oben angegebenen
Kästchen (bis auf das Kästchen für die Arbeitsvorschrift)
einzelne Geräte der EDVA, die man als Einheiten bezeichnet.
Die gegebenen Daten oder Eingabedaten werden über die Ein
gabeeinheit "eingelesen", der eigentliche Arbeitsablauf ge
schieht in der Zentraleinheit, dem Kernstück der Rechenan
lage, und die Ergebnisse oder Ausgabedaten werden über eine
Ausgabeeinheit sichtbar gemacht:
Eingabeeinheit Ausgabeeinheit
Eingabe Ausgabe
daten daten
Rechen
Speicher
werk
I I
L-------------------------------------..J
Die Arbeitsvorschrift entspricht bei einer EDVA dem Pro
gramm, das in maschinenlesbarer Form etwa als Lochkartenpa
ket über eine Eingabeeinheit in die Zentraleinheit gebracht
wird. Dort wird es zunächst gespeichert. Vom Speicher werden
die einzelnen Instruktionen des Programms nach und nach in
das Steuerwerk geholt, wo sie interpretiert werden und von
wo aus der einzelne Arbeitsschritt z.B. die Ausführung einer
Multiplikation (Stundenlohn x Stundenzahl!) im Rechenwerk
gesteuert und überwacht wird. Das Steuerwerk, das im obigen
Bild der Bürokraft entspricht, übernimmt hier deren zentrale
Rolle im Arbeitsablauf. Die Aufgabe der Hilfskraft war im
wesentlichen auch eine Steuerfunktion, nämlich für die kor-
-3-
rekte Ausführung der einzelnen Instruktionen der Arbeitsvor
schrift Sorge zu tragen.
Wenn eben vom Speicher die Rede war, so ist damit der
Hauptspeicher der Zentraleinheit gemeint, der wegen seines
Aufbaus aus magnetisierbaren Ferrit-Kernen auch Kernspeicher
genannt wird. Jeder Ferrit-Kern kann einen von zwei polaren
magnetischen Zuständen haben, denen man die Begriffe "Ja"
und "Nein" oder die Ziffern "O" und "1" als kleinste Infor
mationseinheiten zuordnen kann. Diese kleinste Informations
einheit nennt man ein Bit(= Bissen, Happen). 8 Bits faßt
man zu einem Byte zusammen, und 1024 Bytes nennt man 1 Kilo
Byte(= KB, analoge Bildung wie Kilogramm= 1000 Gramm). Die
Größe des Kernspeichers ist ein ungefähres Maß für die Größe
und Leistungsfähigkeit einer Rechenanlage: Rechner mit
4-16 KB Kernspeichergröße zählt man zu den kleineren, solche
mit 32-128 KB zu den mittleren Anlagen, während man bei EDVA
mit über 256 KB von Großrechnern spricht.
Wichtig für die Leistungsfähigkeit von Rechenanlagen ist
ferner das Vorhandensein von schnellen externen Speieberein
heiten wie Magnetplatten-, Magnettrommel- und Magnetstrei
fenspeichern. Extern heißen diese Speichertypen deshalb,
weil sie räumlich von der Zentraleinheit getrennt sind (im
Gegensatz zum internen Kernspeicher), und schnell sind diese
Speicher wegen der Möglichkeit, zu einzelnen auf ihnen ge
speicherten Daten in kurzer Zeit wahlfrei zugreifen zu kön
nen, wobei je Sekunde mehrere 100000 Bytes in den Kernspei
cher überführt werden können. In diesem Sinne sind Magnet
bandeinheiten langsame Externspeicher, weil hier die Über
tragungsgeschwindigkeit von Daten in den Kernspeicher lang
samer als bei den oben genannten Typen ist und der Zugriffs
mechanismus nicht wahlfrei sein kann (bei einem Magnetband
kann es Sekunden, ja Minuten dauern, bis das Band soweit ab
gespult ist, daß die gewünschten Daten abgerufen werden kön
nen).