Eberhard Sturm. Programmieren in PLII

Ähnliche Dokumente
Das neue PL/I. Eberhard Sturm. ... für pe, Workstation und Mainframe 7., aktualisierte und erweiterte Auflage Mit 80 Abbildungen PRAXIS TEUBNER

Eberhard Sturm. Das neue PL/l. ... für PC, Workstation und Mainframe. 6., verbesserte und erweiterte Auflage. Mit 75 Abbildungen.

H. Pudlatz. Einführung in die Programmiersprache Modula-2

P. P. Bothner W.-M. Kähler. Einführung in die Programmiersprache APL

Eberhard Sturm. Das neue PL/I

Eberhard Sturm. PLI I für Workstations

F. Sause W. Tölle. Einführung in die Programmiersprache C++

D. Herrmann. Probleme und Lösungen mi t Turbo-Prolog

Vieweg Programmbibliothek Mikrocomputer 39. Simulationen in BASIC mit dem IBM PC, XT, AT

H. Kreth. C. P. Ortlieb. Lehr und Obungsbuch fur die Rechner SHARP PC-1246/47 PC-1251 PC-1260/61 PC-1350 PC-1401/02

Jakob Schwarz. DOS Einsteigen leichtgemacht

H. Günther. Programme und Tools für Erddruck und Erdwiderstand mit gekrümmten und ebenen Gleitflächen

Paul Schmitz Werner Dinkelbach (Hrsg.) Arbeitsbuch zum Macintosh

Ekkehard Kaier. Informationstechnische Grundbildung Turbo Pascal

Hansrobert Kohler. FORTRAN-Trainer

Ekkehard Kaier. Informationstechnische Grundbildung Multiplan

Annette Weinert. Programmieren mit Ada und C

Anton Liebetrau. Turbo Pascal 4.0. von A.. Z

Regina B. und Rolf B. Baumeister (Hrsg.) dbase III Software Training

Regina B. und Rolf B. Baumeister (Hrsg.) Chart Software Training

Aufgaben zum Skriptum Informatik

Ekkehard Kaier. Informationstechnische Grundbildung MS-DOS

Claudia Borchard-Tuch. Computersysteme - Ebenbilder der Natur?

MS SQL Server Einstieg in relationale Datenbanken und SQL Marco Skulschus Marcus Wiederstein

Ronald Schnetzer. Business Process Reengineering kompakt und verständlich

Wolf-Dietrich Schwill. Roland Weibezahn BASIC

Gerhard Moll. Rechenstru kturen und Geometrie mit LOGO

Gene Zelazny Wie aus Zahlen Bilder werden

Dietmar Abts. Masterkurs Client/Server-Programmierung mit Java

Inhaltsverzeichnis. Inhalt. Bemerkung... 9 Vorwort Programme und Programmiersprachen

Vieweg Programmbibliothek Mikrocomputer 14. Lineares Optimieren Maximierung- Minimierung 11 HP-41-Programme

Walter Schlee. Einführung in die Spieltheorie

Hansrobert Kohler. Technisch-naturwissenschaftlicher Pascal-Trainer

Stefan Hering PC TOOLS 6.0. Ein praxisgerechtes Nachschlagewerk

Ratgeber zur Reihe Fortschritte der Psychotherapie Band 5 Ratgeber Bluthochdruck von Prof. Dr. Dieter Vaitl

Peter F. Orlowski. Simulation und Optimierung von Regelkreisen mit dem IBM AT und Kompatiblen

Hans-Georg Kemper Henning Baars. Business Intelligence Arbeits- und Übungsbuch

Wolf-Dietrich Schwill. Roland Weibezahn. Einfuhrung in die Programmiersprache BASIC

Paul Chlebek. Praxis der User Interface-Entwicklung

Software-Praktikum. Ein praxisorientiertes Vorgehen zur Software-Erstellung

Hansrobert Kohler. Technisch-naturwissenschaftlicher Pascal-Trainer

Turbo Pascal 5.0/5.s Units und Utilities

Dietrich Krekel Wolfgang Trier. Die Programmiersprache PASCAL

TopSpeed Modula-2 Units und Utilities

Inhaltsverzeichnis I Grundlagen...1 II Programmieren in C/C

C/C++ für Studium und Beruf

ispa Prof. Dr. K.-F. Ackermann. Risikomanagement im Personalbereich

Springer Spektrum, Springer Vieweg und Springer Psychologie.

Aufgabensammlung Technische Mechanik 2

Inhaltsverzeichnis. Kurseinheit 1. Kurseinheit 2

Sichtweisen der Informatik

Bibliotheca Zelteriana

Aufgaben zum Skriptum Informatik

Otto Forster Thomas Szymczak. Übungsbuch zur Analysis 2

Begleittext: Einführung in das Programmieren in Java für Nichtinformatiker

Dietmar Herrmann. Programrnierprinzipien in BASIC und Pascal

Springer Spektrum, Springer Vieweg und Springer Psychologie.

Berichte aus der Informatik. Dieter Pawelczak. Start in die C-Programmierung

Eugen Gehrer. Musik mit dem TI 99/4A

Weitere Bände in dieser Reihe

Mädchen spielen mit Puppen Jungen auch?

Programmierung von verteilten Systemen und Webanwendungen mit Java EE

Springer Essentials sind innovative Bücher, die das Wissen von Springer DE in kompaktester Form anhand kleiner, komprimierter Wissensbausteine zur

H. R. Behrendt/H. Junghans. Einführung in die Anwendung des Betriebssystems Apple DOS (Apple II)

Frau Schmitt, die Zigaretten und Sie

Geyer Kredite aktiv verkaufen

Georg Fischer. DOS Profi Utilities mit Turbo Pascal

Springer Essentials sind innovative Bücher, die das Wissen von Springer DE in kompaktester Form anhand kleiner, komprimierter Wissensbausteine zur

Ralf Bohnsack Rekonstruktive Sozialforschung

Springer Spektrum, Springer Vieweg und Springer Psychologie.

Ratgeber Panikstörung und Agoraphobie

Springer Spektrum, Springer Vieweg und Springer Psychologie.

Ekbert Hering. Mathematische Probleme der Betriebswirtschaft in BASIC mit dem IBM PC

Springer Spektrum, Springer Vieweg und Springer Psychologie.

Franco di Primio Hybride Wissensverarbeitung

Ratgeber Somatoforme Beschwerden und Krankheitsängste

Springer Essentials sind innovative Bücher, die das Wissen von Springer DE in kompaktester Form anhand kleiner, komprimierter Wissensbausteine zur

Gerd Küveler Dietrich Schwoch. Informatik für Ingenieure und Naturwissenschaftler 1

Hans-Georg Schumann. Visual Basic Inklusive DVD-ROM

Ratgeber Depression Hogrefe Verlag GmbH & Co. KG. Keine unerlaubte Weitergabe oder Vervielfältigung

McNeil Die Kraft im Zentrum

Effektiv Programmieren in С und C++

Springer Spektrum, Springer Vieweg und Springer Psychologie.

Aufgabensammlung Fertigungstechnik

Springer Spektrum, Springer Vieweg und Springer Psychologie.

Informatik. Christian Kuhn. Web 2.0. Auswirkungen auf internetbasierte Geschäftsmodelle. Diplomarbeit

Einführungskurs Soziologie. Herausgegeben von Hermann Korte, Münster, Deutschland Bernhard Schäfers, Karlsruhe, Deutschland

Erstellung eines Prototyps zum sicheren und gesteuerten Zugriff auf Dateien und Dokumente auf Basis von Lotus Domino und Notes

. -Aus dem Bereich Computerliteratur

Springer Spektrum, Springer Vieweg und Springer Psychologie.

VGA und SuperVGA professionell programmiert

Diplomarbeit BESTSELLER. Eva-Maria Matzker. Einrichtungen des Gesundheitswesens strategisch steuern. Anwendung der Balanced Scorecard

Günther Bourier. Statistik-Übungen

Karl-Heinz Bruck (Hrsg.) FAHRZEUG VERGLASUNG

EDV nicht nur für Techniker

Reiner Schmalz-Bruns Ansätze und Perspektiven der Institutionentheorie

essentials Weitere Bände in dieser Reihe

ISO-SiMMlarcl. als erste Programmiersprache. Von Prof. Dr. Joachim Goll Uwe Grüner Prof. Herbert Wiese 2., durchgesehene Auflage

Thomas Paul: Ratgeber Magersucht - Informationen für Betroffene und Angehörige, Hogrefe-Verlag, Göttingen Hogrefe Verlag GmbH & Co.

360 -Beurteilung und Persönlichkeitstest in der Führungsbeurteilung

Transkript:

Eberhard Sturm Programmieren in PLII

~--Programmierung ~_~ Einführung in die Programmicrsprache P:l~cal, von G. Lamprecht Einfiihrung in die Programmicrsprachc Modul:l-2, von H. Pudlatz Parallele Programmicrung mit Modula-2, von E. A. Heinz TopSpeed Modula-2 griffl)crcit, von A. Liebetrau Das Modula-2 Umsteigcrbuch, von R. Abdelhamid Programmieren 111 PL/I von E. Sturm Einfiihrung in die Programmiersprachc Ada, von M. Nagl Einfiihrung in dic Programmiersprachc FORTRAN 77, von G. Lamprecht Einfiihrung in die Programmicrsprache SIMULA, von G. Lamprecht Einfiihrung in die Programmicrsprachc COnOL, von W.-M. Kähler Einfiihrung in die Methode des.j ackson Structured Programming (.J SP), von K. Kilberth PEARL, Process and Experimcnt Automation Realtime Language, von W. Werum und H. Windauer Prolog - Eine methodischc Einfiihrung, von R. Cordes, R. Kruse, H. Langendörfer, H. Rust LlSP - Fallstudien mit Anwendungen in der Kiinstlichcn Intelligenz, von R. Esser und E. Feldmar '---- Viewe~g--_-----

EßERHARD STURM PROGRAMMIEREN IN EINE MODERNE EINFÜHRUNG

ISBN 978-3-528-04792-4 ISBN 978-3-663-13970-6 (ebook) DOI 10.1007/978-3-663-13970-6 Das in diesem Buch enthaltene Programm-Material ist mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden. Der Autor und der Verlag übernehmen infolgedessen keine Verantwortung und werden keine daraus folgende oder sonstige Haftung übernehmen, die auf irgendeine Art aus der Benutzung dieses Programm-Materials oder Teilen davon entsteht. Alle Rechte vorbehalten Springer Fachmedien Wiesbaden 1990 Ursprünglich erschienen bei Friedr. Vieweg & Sohn Verlagsgesellschaft, Braunschweig 1990. 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 für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen. Umschlaggestaltung: Sehrimpf und Partner, Wiesbaden

v Vorwort Was kann einen Autoren heutzutage veranlassen, ein Buch über das Programmieren in PLiI zu schreiben? Wo es doch so viele neue Programmiersprachen gibt mit tollen Konzepten wie "information hiding" und "abstrakten Datentypen" - Konzepten, die von PLiI nicht unmittelbar zur Verfügung gestellt werden. Auch was die Verbreitung von PLiI angeht, so muß man zugestehen, daß an sich nur Großrechner alle Möglichkeiten der Sprache anbieten. Die auf PC laufenden Versionen sind im Umfang etwas eingeschränkt. Nun - dies könnte sich ändern, wenn demnächst auch PCs über eine Hauptspeicher-Kapazität und eine Rechengeschwindigkeit verfügen, die die Benutzung einer universellen Programmiersprache der Mächtigkeit von PLiI interessant werden lassen. So hat z.b. die Firma IBM im Rahmen ihres SAA-Konzepts' auch einen PLII-Compiler für das PC-Betriebssystem OS/2 angekündigt. Warum also ein neues Buch über PLlI? Ich könnte eine psychologische Antwort geben, die auch für mich Gültigkeit hat: Die Loyalität eines Programmierers zu seiner Sprache ist bei PLiI am größten! Aber hat diese Loyalität auch einen realen Hintergrund? Ich meine, ja! Welche Konzepte auch nach dem Erscheinen von PLiI auf den Markt kamen, der PLlI-Programmierer konnte immer sagen: Im Prinzip kann ich das in PLiI sowieso schon und noch viel schönere Dinge! Neuere Programmiersprachen verbieten allerdings sehr viele Sprachkonstrukte, von denen sich im Laufe der Zeit herausgestellt hat, daß sie unbeabsichtigt zu Fehlern führen. Hier kann bei PLiI nur die Disziplin des Programmierers einen Ausgleich schaffen - und eine Ausbildung, die einerseits neuere Erkenntisse des "Software Engineering" berücksichtigt, andererseits aber auch die PLlI-Philosophie in den Vordergrund stellt und auf diese Weise die Klippen umschifft, die PLiI z.b. für den unbedarften FORTRAN-Programmierer2 bereithält. In diesem Sinne soll nun das vorliegende Buch eine moderne Einführung bieten. Es entstand aus Vorlesungen, die ich an der Universität Münster gehalten habe, wobei ich aber auch hoffe, daß dem Buch anzumerken ist, daß eine große Anzahl der täglich am Universitätsrechenzentrum laufenden Programme, sei es aus dem betriebssystemnahen Bereich oder dem der Computer-Grafik, aus meiner Feder stammen. Beabsichtigt ist sowohl, Anfangern ein Selbststudium zu ermöglichen, als auch, Profis, SAA heißt System-Anwendungs-Architektur und bedeutet u.a. eine gemeinsame Programmierschninstelle fur alle IBM-Rechner vom pe bis zum Groß rechner. SAA-PLII ist eine Untennenge des Großrechner-PLlI. 2 Damit soll nicht gesagt werden, daß FORTRAN-Programmierer allgemein unbedarft sind, sondern nur, daß ein solcher sich nicht wundem soll, daß z.b. bei der Division zweier ganzer Zahlen in PLiI nicht wieder eine ganze Zahl herauskommt. Letzteres vennuten normale Menschen sowieso nur ganz selten!

VI Vorwort mit neuen Ideen zu versorgen, letzteres auf Grund der umfassenden Darstellung der gesamten Sprache. Mein besonderer Dank gilt meinen Kollegen St. Ost und H. Pudlatz, die nicht nur dieses Buch korrekturgelesen haben, sondern denen ich auch viele wertvolle Anregungen verdanke. Nicht vergessen möchte ich unsere auszubildenden Mathematischtechnischen Assistenten: Ihre Hinweise haben mir u.a. geholfen, auf Anfängerprobleme einzugehen. Auch all jene, denen ich unwissentlich Beispielprogramme verdanke, sollen wenigstens auf diese Weise erwähnt werden. Erwarten Sie also keine theoretische Erörterung über Algorithmen oder Struktogramme, sondern eine praktische Einführung, die es Ihnen ermöglichen soll, konkrete Probleme mit Hilfe von PUl auf übersichtliche Weise zu lösen! Ich werde - im Gegensatz zu einem "Reference Manual" - immer erwähnen, welche Verwendung von Sprachmittein "gut" und welche "böse" ist. Einen großen Nachteil von PUl allerdings habe ich oben schon angedeutet: Wer die Sprache einmal gründlich kennengelernt hat, wird sich immer ärgern, wenn er mit einem Rechner arbeiten muß, für den es keinen PUl-Compiler gibt. Nicht umsonst heißt PUl ja "Programming Language" Nummer I!

VII Inhaltsverzeichnis Einleitung 1. Elementares PLiI... 3 1.1 Die Programmierumgebung 1.1.1 Terminal und Betriebssystem... 1.1.2 Programm und Compiler 1.2 Datenattribute 1.2.1 Der Hauptspeicher 1.2.2 Ganze Zahlen... 1.2.3 Gleitkommazahlen 1.2.4 Zeichenfolgen. 1.2.5 Bitfolgen... 1.2.6 Operatoren 3 3 3 5 5 7 11 13 16 18 1.3 Schleifen.... 20 1.3.1 Die WHILE-Schleife 1.3.2 Die UNTIL-Schleife 1.3.3 Die Schleife mit Laufvariable 20 22 23 1.4 Ein- und Ausgabe.... 25 1.4.1 Die GET -Anweisung..... 1.4.2 Die ON-Anweisung beim Einlesen 1.5 Fallunterscheidungen 1.5.1 Die IF-Anweisung 1.5.2 Die SELECT-Gruppe 25 27 30 30 33 2. Erweiterung der Grundlagen... 39 2.1 Ein- und Ausgabe eines Zeichenstroms......... 39 2.1.1 Das FILE-Attribut..................... 39 2.1. 2 EDIT -gesteuerte Ein- und Ausgabe 2.1.3 Datenformate 2.2 Die allgemeine Schleife.... 2.2.1 Die DO-Anweisung 2.2.2 Die LEA VE-Anweisung.... 2.3 Matrizen.... 2.3.1 Deklaration und Benutzung.. 2.3.2 Matrixoperationen 2.3.3 Mehrdimensionale Matrizen 2.3.4 Das INITIAL-Attribut 2.4 Strukturen 2.4.1 Deklaration und Benutzung 2.4.2 Die Matrix von Strukturen 2.4.3 Mehrfachdeklarationen 2.5 Manipulation von Zeichenfolgen 2.5.1 SUBSTR und LENGTH 2.5.2 INDEX.... 42 46 50 50 53.... 55 55 58 59 62 64 64 69 70 72 73 75

VIII Inhaltsverzeichnis 2.5.3 TRANS LA TE 2.5.4 VERIFY und das Gegenteil.... 76 78 2.5.5 Übrige spracheigene Funktionen zur Zeichen verarbeitung.... 82 2.5.6 PICTURE-Zeichenfolgen.... 84 2.5.7 GET/PUT STRING.... 85 2.6 Arithmetik.... 86 2.6.1 Das FIXED-Attribut.... 86 2.6.2 Das FLOAT-Attribut 90 2.6.3 Rechenregeln und Fallstricke.... 92 2.6.4 PICTURE-Zahlen.... 96 2.6.5 Komplexe Zahlen.... 102 2.7 Manipulation von Bitfolgen.... 104 2.7.1 Operatoren und spracheigene Funktionen.... 105 2.7.2 Mengenlehre.... 107 2.7.3 UNSPEC.... 108 3. Block- und Programmstruktur... 113 3.1 Geltungsbereich und Lebensdauer von Variablen... 113 3.1.1 Der BEGIN-Block... 113 3.1.2 Der PROCEDURE-Block.... 3.1.3 Schachtelung von Blöcken.... 3.2 Strukturierung durch Prozeduren.... 3.2.1 Die Parameter-Übergabe.... 3.2.2 Scheinargumente.... 3.2.3 Die Attribute AUTOMATIC und STATIC.... 3.2.4 Funktionen 3.2.5 Rekursive Prozeduren.... 3.2.6 Interne und externe Prozeduren.... 3.2.7 Benutzung von Programmbibliotheken.... 3.3 Ausnahmebedingungen.... 3.3.1 Allgemeine Handhabung.... 3.3.2 Berechnungsbedingungen.... 3.3.3 Programm-Test.... 3.3.4 Restliche Bedingungen.... 3.4 Objektorientierte Verwendung von Prozeduren.... 3.4.1 Die ENTRY-Anweisung.... 3.4.2 Das GENERIC-Attribut.... 115 116 117 118 121 122 125 127 131 134 139 139 146 150 158 162 163 166 4. Dynamische Speicherplatzverwaltung.... 4.1 Das CONTROLLED-Attribut.... 4.1.1 ALLOCATE und FREE.... 4.1.2 Stapel.... 4.1.3 Das INITIAL-CALL-Attribut.... 4.2 Das BASED-Attribut 4.2.1 Dynamische Speicherplatzinterpretation.... 4.2.2 Lineare Listen.... 4.2.3 Allgemeine Listen.... 171 171 171 174 178 179 179 183 190

In h altsycrzcichnis 4.3 Das AREA-Attribut.. 4.3.1 Benutzung von Gebieten 4.3.2 Speicherbereinigung 5. Benutzung von Dateien.... 5.1 Aufbau von Datenbeständen auf Band und Platte. 5.1.1 Das Magnetband 5.1.2 Die Magnetplatte 5.2 PUl-Dateien 5.2.1 Dateiwerte... 5.2.2 Dateiattribute 5.2.3 Öffnen und Schließen 5.3 Ein- und Ausgabe von Sätzen.... 5.3.1 CONSECUTIVE-Datenbestände 5.3.2 REGIONAL-Datenbestände. 5.3.3 VSAM-Datenbestände 5.3.3.1 Der ESDS 5.3.3.2 Der RRDS... 5.3.3.3 Der KSDS 5.3.3.4 Sekundärindizes 5.3.4 Spezielle Möglichkeiten der Ein- und Ausgabe 6. Höhere PL/I-Techniken 6.1 Matrixausdrücke... 6.1.1 Spracheigene Matrix-Funktionen.... 6.1.2 Spracheigene Funktionen mit Matrixargumenten 6.2 Variablendefinition.... 6.2.1 Korrenspondenzdefinition 6.2.2 Überlagerungsdefinition 6.2.3 isub-definition... 6.3 Parallelverarbeitung.... 6.3.1 Das EVENT-Attribut 6.3.2 Ein Alkoholismusprogramm 6.3.3 Multitasking-Konventionen 6.4 Programmgenerierung zur Übersetzungszeit.. 6.4.1 Die %INCLUDE-Anweisung. 6.4.2 Grundlagen der Makro-Sprache 6.4.3 Die Präprozessor-Prozedur 6.4.4 Definition eigener Anweisungen Anhang: Lösungsideen IX 195 195 197 203 203 203 205 207 207 208 210 214 215 220 224 226 228 229 233 234 241 241 241 245 247 247 248 249 251 252 255 260 264 265 266 270 273 277 Index... 283