Table Of Contentuni-texte
LehrbUcher
G. M. Barrow, Physikalische Chemie I, II, III
W. L. Bontsch-Brujewitsch II. P. Swaigin II. W. Karpenko I A. G. Mironow,
Aufgabensammlung zur Halbleiterphysik
L. Collatz I J. Albrecht, Aufgaben aus der Angewandten Mathematik I, II
W. Czech, Obungsaufgaben aus der Experimentalphysik
H. Dallmann I K.-H. Elster, Einfiihrung in die hahere Mathematik
M. Denis-Papin I G. Cullmann, Obungsaufgaben zur Informationstheorie
M. J. S. Dewar, Einfiihrung in die moderne Chemie
N. W. Efimow, Hahere Geometrie I, II
A. P. French, Spezielle Relativitiitstheorie
J. A. Baden Fuller, Mikrowellen
D. Geist, Halbleiterphysik I, II
W. L. Ginsburg I L. M. Levin IS. P. Strelkow, Aufgabensammlung der Physik I
P. Guillery, Werkstoffkunde fiir Elektroingenieure
E. Hala IT. Boublik, Einfiihrung in die statistische Thermodynamik
J. G. Holbrook, Laplace-Transformationen
I. E. Irodov, Aufgaben zur Atom-und Kernphysik
D. Kind, Einfiihrung in die Hochspannungs·Versuchstechnik
S. G. Krein I V. N. Uschakowa, Vorstufe zur haheren Mathematik
H. Lau I W. Hardt, Energieverteilung
R. Ludwig, Methoden der Fehler-und Ausgleichsrechnung
E. Meyer I R. Pottel, Physikalische Grundlagen der Hochfrequenztechnik
E. Poulsen Nautrup, Grundpraktikum der organischen Chemie
L. Prandtl I K. Oswatitsch I K. Wieghardt, Fiihrer durch die Stramungslehre
J. Ruge, Technologie der Werkstoffe
W. Rieder, Plasma und Lichtbogen
D. Schuller, Thermodynamik
F. G. Taegen, Einfiihrung in die Theorie der elektrischen Maschinen I, II
W. Tutschke, Grundlagen der Funktionentheorie
W. Tutschke, Grundlagen der reellen Analysis I, II
H.-G. Unger, Elektromagnetische Wellen I, II
H.-G. Unger, Quantenelektronik
H.-G. Unger, Theorie der Leitungen
H.-G. Unger I W. Schultz, Elektronische Bauelemente und Netzwerke I, II, III
B. Vauquois, Wahrscheinlichkeitsrechnung
W. Wuest, StramungsmeBtechnik
Skripten
J. Behne I W. Muschik I M. Piisler,
Ringvorlesung zur Theoretischen Physik, Theorie der Elektrizitiit
H. Feldmann, Einfiihrung in ALGOL 60
O. Hittmair I G. Adam, Ringvorlesung zur Theoretischen Physik, Wiirmetheorie
H. Jordan I M. Weis, Asynchronmaschinen
H. Jordan I M. Weis, Synchronmaschinen I, II
H. Kamp I H. Pudlatz, Einfiihrung in die Programmiersprache PL/I
G. Lamprecht, Einfiihrung in die Programmiersprache FORTRAN IV
E. Macherauch, Praktikum in Werkstoffkunde
P. Paetzold, Einfiihrung in die allgemeine Chemie
E.-V. Schliinder, Einfiihrung in die Wiirme-und Stoffiibertragung
W. Schultz, Einfiihrung in die Quantenmechanik
W. Schultz, Dielektrische und magnetische Eigenschaften der Werkstoffe
Hermann Kamp
Hilmar Pudlatz
EinfGhrung in die
Programmiersprache PL/I
uni--texte
Programmiersprachen
Harry Feldmann
EinfDhrung in ALGOL 60
Hermann Kamp / Hilmar Pudlatz
EinfDhrung in die Programmiersprache PLf I
GUnther Lamprecht
EinfDhrung in die Programmiersprache
FORTRAN IV
Hermann Kamp / Hilmar Pudlatz
Einfuhrung in die
Programmiersprache
PL/I
Skriptum fOr Harer
aller Fachrichtungen ab 1. Semester
2., verbesserte Auflage
Friedr. Vieweg + Sohn . Braunschweig
Hermann Kamp ist wissenschaftlicher Mitarbeiter und
Dr. Hilmar Pudlatz ist Akademischer Rat
am Rechenzentrum der Westfälischen Wilhelms-Universität Münster.
1974
Alle Rechte vorbehalten
Copyright © 1974 by Friedr. Vieweg & Sohn Verlagsgesellschaft mbR, Braunschweig
Die Vervielfältigung und Übertragung einzelner Textabschnitte, Zeichnungen oder Bilder, auch
fUr Zwecke der Unterrichtsgestaltung, gestattet das Urheberrecht nur, wenn sie mit dem Verlag
vorher vereinbart wurden. Im Einzelfall muß über die Zahlung einer Gebühr flir die Nutzung
fremden geistigen Eigentums entschieden werden. Das gilt fUr die Vervielfältigung durch alle
Verfahren einschließlich Speicherung und jede Übertragung auf Papier, Transparente, Filme,
Bänder, Platten und andere Medien.
ISBN 978-3-528-13316-0 ISBN 978-3-322-85532-9 (eBook)
DOI 10.1007/978-3-322-85532-9
Vorwort
Das vorliegende Buch gibt eine Einfiihrung in die Programmiersprache PL/I; es mochte
dem Benutzer ein Selbststudium ermog1ichen, wobei mathematische oder program
miertechnische Vorkenntnisse nicht erforderlich sind. Die zum Verstiindnis des
Buches notwendigen Begriffserkliirungen werden in der Einleitung sowie in Teilen
von Kapitel I vermittelt, wiihrend Kapitel II die Grundelemente der Sprache PL/I
beschreibt. Die folgenden Kapitel wollen den Anfanger auch an kompliziertere Pro
gramm-und Datenstrukturen heranfiihren und Grundfragen der Programm-Optimie
rung behandeln.
FUr die Benutzung des Buches mochten wir uns wtinschen, da~ die beiden ersten
Kapitel besonders grtindlich erarbeitet werden, da uns dann bereits ein selbstiindiges
Programmieren in der Sprache PL/I mog1ich erscheint. Wir denken dabei nicht nur
an technisch-wissenschaftliche oder kommerzielle Anwendungen, sondern mochten
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 Universitiit MUnster abgehalten haben. Eine gr6~ere Anzahl
von Beispielprogrammen solI die an ihnen veranschaulichten Sprachelemente er
liiutern, wobei auch die Daten und Ergebnisse der Programme mitgegeben werden.
Wir danken Frau I. Schulze und Herrn J. van Dyck flir das Schreiben des Manus
kripts sowie den Herren Dipl.-Math. B. Neukiiter und Dr. S. Zorkendorfer flir das
Lesen der Korrekturen und flir zahlreiche Verbesserungsvorschiiige. Nicht zuletzt
danken wir dem Verlag fUr die gute Zusammenarbeit bei der Entstehung dieses
Buches.
Hermann Kamp
Hilmar Pudlatz
MUnster, im Juli 1972
I nhaltsverzeichnis
Einleitung 1
I Gnmdbegriffe der Programmierung 9
1. Ein einfaches Programm 9
2. Ein-und Ausgabeoperationen, Sprungbefehl 11
3. Verarbeitung von Zeichenketten 15
4. OO-Schleife, Felder 17
5. Darstellung von Zahlen und Zeichen 32
n Elementares PL/I 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
1lI Block-und Programmstrukturen 102
1. Blacke, Geltungsbereiche von VariablenerkHirungen, Marken 102
2. Programmunterbrechungen und Testhilfen 116
3. Subroutinen und Funktionen 130
4. Verschiedene Speicherklassen 142
N Datenorganisation 146
1. Aufbau von Dateien, Band und Platte 146
2. Indexsequentielle Dateien 163
3. Regionalda teien 174
V Fortgeschrittene PL/I-Techniken 182
1. Zeiger und Listen 182
2. Programmgenerierung wiihrend der Dbersetzung 194
3. PL/I-integriertes SortierjMischprogramm 202
4. Parallelverarbeitung 208
VI Programmbeispieie 213
-1-
Einleitung
Eine Programmiersprache ist eine Kunstsprache, mit deren
Hilfe die Eingabe einer Folge von Arbeitsanweisungen (In
struktionen) in eine elektronische Datenverarbeitungsanlage
(EDVA) moglich ist. Eine EDVA ist einer Hilfskraft in einem
Bliro vergleichbar, die nach einer festen Arbeitsvorschrift
immer wiederkehrende Aufgaben erledigen kann. Dies solI am
folgenden Bild anschaulich erlautert werden:
Arbeits gegebene
Ergebnisse
vorschrift Daten
Tabellen,
Tisch
notierte
rechen
Zwischen
maschine
ergebnisse
Die Blirohilfskraft erhalt eine detaillierte Arbeitsvor
schrift, in der die zu bewaltigende Aufgabe (z.B. eine Lohn
abrechnung) genau beschrieben ist. Nach dieser Arbeitsvor
schrift muS sie fUr eine Anzahl von Personen die Bruttolohne
aus Stundenlohn und Stundenzahl ermitteln, Steuer- und Sozi
alversicherungsbeitrage in Tabellen nachschlagen und aus den
Bruttolohnen und den genannten Abzligen die Nettolohne er
mitteln. FUr jede Person mlissen also zunachst gewisse Daten
(Personalstammdaten und Arbeitsdaten) gelesen werden. Zur
Durchflihrung der erforderlichen Rechnungen bedient sich die
Hilfskraft einer Tischrechenmaschine, wobei die anfallenden
Zwischenergebnisse auf Papier notiert werden (Bruttolohn,
Summe der Abzlige). Steuern und Sozialversicherungsbeitrage
werden aus vorhandenen Tabellenheften entnommen. Sie haben
mit den erwahnten Zwischenergebnissen gemein, daB sie auch
auf Papier festgehalten - wir sagen "gespeichert" - sind.
-2-
SchlieBlich 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
Kastchen (bis auf das Kastchen ftir die Arbeitsvorschrift)
einzelne Gerate der EDVA, die man als Einheiten bezeichnet.
Die gegebenen Daten oder Eingabedaten werden tiber die Ein
gabeeinheit "eingelesen", der eigentliche Arbeitsablauf ge
schieht in der Zentraleinheit, dem Kernsttick der Rechenan
lage, und die Ergebnisse oder Ausgabedaten werden tiber eine
Ausgabeeinheit sichtbar gemacht:
Eingabeeinheit Ausgabeeinheit
Eingabe Ausgabe
daten daten
Zr-e-n-tr-a-l-e-in--h-e-it- ---
I r----"--.L-......t::....-...,
I
I Rechen
Speicher
werk
IL _____________________________________ ...1I
Die Arbeitsvorschrift entspricht bei einer EDVA dem Pro
gramm, das in maschinenlesbarer Form etwa als Lochkartenpa
ket tiber eine Eingabeeinheit in die Zentraleinheit gebracht
wird. Dort wird es zunachst 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 Ausftihrung einer
Multiplikation (Stundenlohn x Stundenzahl!) im Rechenwerk
gesteuert und tiberwacht wird. Das Steuerwerk, das im obigen
Bild der Btirokraft entspricht, tibernimmt hier deren zentrale
Rolle im Arbeitsablauf. Die Aufgabe der Hilfskraft war im
wesentlichen auch eine Steuerfunktion, namlich fUr die kor-
-3-
rekte Ausflihrung 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 Zust1:i.nden haben, denen man die Begriffe "Ja"
und "Nein" oder die Ziffern "0" und "1" als kleinste Infor
mationseinheiten zuordnen kann. Diese kleinste Informations
einheit nennt man ein Bit (= Bissen, Happen). 8 Bits faBt
man zu einem Byte zusammen, und 1024 Bytes nennt man 1 Kilo
Byte (= KB, analoge Bildung wie Kilogramm = 1000 Gramm). Die
GroBe des Kernspeichers ist ein ungefahres MaB flir die GroBe
und Leistungsfahigkeit einer Rechenanlage: Rechner mit
4-16 KB KernspeichergroBe zahlt man zu den kleineren, solche
mit 32-128 KB zu den mittleren Anlagen, wahrend man bei EDVA
mit liber 256 KB von GroBrechnern spricht.
Wichtig flir die Leistungsfahigkeit von Rechenanlagen ist
ferner das Vorhandensein von schnellen externen Speicherein
heiten wie Magnetplatten-, Magnettrommel- und Magnetstrei
fenspeichern. Extern heiBen diese Speichertypen deshalb,
weil sie raumlich von der Zentraleinheit getrennt sind (im
Gegensatz zum internen Kernspeicher), und schnell sind diese
Speicher wegen der Moglichkeit, zu einzelnen auf ihnen ge
speicherten Daten in kurzer Zeit wahlfrei zugreifen zu kon
nen, wobei je Sekunde mehrere 100000 Bytes in den Kernspei
cher liberflihrt werden konnen. In diesem Sinne sind Magnet
bandeinheiten langsame Externspeicher, weil hier die Uber
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, daB die gewlinschten Daten abgerufen werden kon
nen).