Springer-Lehrbuch Friedrich L. Bauer Oerhard Ooos Informatik 1 Eine einführende Übersicht Vierte, verbesserte Auflage bearbeitet von F. L. Bauer und W. Dosch Mit 164 Abbildungen, 16 Tabellen und zahlreichen Programmb eispielen Springer-Verlag Berlin Heidelberg GmbH Dr. rer. nato Dr es sc. h. c. Dr. rer. nato h. c. FRIEDRICH L. BAUER Professor emeritus der Mathematik und Informatik an der Technischen Universität München Dr. rer. nato GERHARD Goos ord. Professor der Informatik an der Universität Karlsruhe Mitglied des Vorstands der Gesellschaft für Mathematik und Datenverarbeitung (GMD) Dr. rer. nato WALTER DOSCH Professor der Informatik an der Universität Augsburg Die früheren Auflagen erschienen in der Reihe "Heidelberger Taschenbücher". Mathematics Subject Classification (1980): 68-02, 68A05, 68AI0 ISBN 978-3-540-52790-9 CIP-Titelaufnahme der Deutschen Bibliothek Informatik: eine einführende Übersicht 1 Friedrich L. Bauer; Gerhard Goos. - Berlin; Heidelberg; New York; London; Paris; Tokyo; Hong Kong; Barcelona: Springer. (Springer-Lehrbuch) NE: Bauer, Friedrich L. [Mitverf.); Goos, Gerhard [Mitverf.); [Lehrbuch). 1.-4., verb. Aufl./bearb. von F. L. Bauer u. W. Dosch. - 1991 ISBN 978-3-540-52790-9 ISBN 978-3-642-58185-4 (eBook) DOI 10.1007/978-3-642-58185-4 Dieses Werk ist urheberrechtlieh geschützt. Die dadurch begründeten Rechte, ins besondere die der Übersetzung, des Nachdrucks, des Vortrags, der Entnahme von Abbildungen und Tabellen, der Funksendung, der Mikroverfilmung oder der Ver vielfältigung auf anderen Wegen und der Speicherung in Datenverarbeitungsanla gen, bleiben, auch bei nur auszugsweiser Verwertung, vorbehalten. Eine Vervielfäl tigung dieses Werkes oder von Teilen dieses Werkes ist auch im Einzelfall nur in den Grenzen der gesetzlichen Bestimmungen des Urheberrechtsgesetzes der Bundes republik Deutschland vom 9. September 1965 in der jeweils geltenden Fassung zu lässig. Sie ist grundsätzlich vergütungspflichtig. Zuwiderhandlungen unterliegen den Strafbestimmungen des Urheberrechtsgesetzes. © Springer-Verlag Berlin Heidelberg 1971, 1973, 1982, 1991 Ursprünglich erschienen bei Springer-Verlag Berlin Heide1berg New York 1991 Satzarbeiten: Zechnersche Buchdruckerei, Speyer 2145/3140-543210 - Gedruckt auf säurefreiem Papier Dem Gedachtnis an Alwin Walther 1898-1967 Hans Piloty 1894-1969 Robert Sauer 1898-1970 gewidmet Aus dem Vorwort zur ersten Auflage Informatik ist die deutsche Bezeichnung fUr computerscience, ein Gebiet, das sich vor allem in den USA, daneben in Grol3britannien, in den sechziger Jah ren zur selbstandigen wissenschaftlichen Disziplin entwickelt hat. Neuerdings auch durch das Bundesministerium fUr Bildung und Wissenschaft gefordert, nimmt das Studium der Informatik in Deutschland einen raschen Auf schwung. Das Buch gibt eine einfiihrende Obersicht iiber die Informatik, die im Einklang mit den Empfehlungen der Fachverbande GAMM und NTG steht. Es kann insbesondere zur Unterstiitzung einer zweisemestrigen Einfiih rungsvorlesung dienen. Entstanden ist das Buch aus solchen Vorlesungen, die seit 1967 mit der Aufnahme des reguHiren Informatik-Studiums in der Abtei lung Mathematik der Technischen Universitat Miinchen gehalten wurden. Die Darstellung geht yom Allgemeinen zum Speziellen. Sie stellt die Grund begriffe der Programmierung an die Spitze, anstatt sie, wie es anderswo hau fig geschah, aus speziellen Maschinenfunktionen herzuleiten. Der Vorteil, der darin liegt, dal3 man sich von Zufalligkeiten der technischen Entwicklung frei macht, urn zu tragfahigeren Aussagen zu kommen, ist nicht gering zu veran schlagen; noch starker scheint uns das Vorgehen dadurch motiviert zu sein, dal3 es den Anfanger zum Nachdenken zwingt, anstatt ihm Patentlosungen vorzusetzen. Ais "top-down-teaching" wird diese Methode neuerdings auch in den USA, unteranderem von ALAN PERLlS, propagiert. Schliel3lichzielt auch die Entwicklung der Programmiersprachen im Hinblick auf die Formalisie rung der Semantik darauf hin, schrittweise das Komplizierte auf Einfacheres zuriickzufiihren. Mit der einfiihrenden Obersicht will das Buch insbesondere die Zusammen hange aufzeigen, die zwischen einzelnen Spezialvorlesungen iiber Themen der Informatik bestehen. Beim Aufbau dieser Vorlesung konnten wir uns auf konstruktive Beitrage unserer Herren Kollegen K. SAMELSON, M. PAUL, F. PEISCHL stiitzen. Eine erste Ausarbeitung fertigte im Studienjahr 1967/68 Frau D. MAISON an. Bei den Obungen zur Vorlesung, insbesondere der Zusammenstellung von Aufga ben, hatten wir die Hilfe von Herrn R. GNATZ und Herrn H. J. WALTHER, welch letzterer auch eine zweite Ausarbeitung im Studienjahr 1968/69 redi gierte. Herr Kollege SAMELSON, der die Einfiihrungsvorlesungim Studienjahr 1969170 las, hat uns wertvolle Kritik geliefert, daneben hatten wir zu einzel- VIII Vorwort zur zweiten Auflage nen Kapiteln niitzliche Hinweise von den Herren Kollegen J. EICKEL, P. DEUSSEN, W. HAHN und Frl. U. HILL. Eine Durchsicht des ersten Kapitels besorgtenauch die HerrenKollegen W. KEIDEL, Erlangen, und H. ZEMANEK, Wien. Allen, die an der Fertigstellung mitarbeiteten, danken wir herzlich, auch wenn wir sie nicht samtlich namentlich nennen konnen. Dies gilt nicht nur fiir Sekretarinnen und fi.ir Mitarbeiter, die uns beim Lesen der Korrektu ren halfen. Herrn H. W6SSNER, der die ALGOL-Beispiele auf syntaktische Richtigkeit pri.ifte, mi.issen wir hier besonders nennen. In der Zeit, in der der altere der beiden Autoren Vorsitzender des Terminologie-Ausschusses im FachnormenausschuB Informationsverarbeitung war, hat er viel von den dort gefi.ihrten Diskussionen gelernt, wofi.ir er ebenfalls seinen Dank zum Aus druck bringen mochte. In den schwierigen Jahren des Aufbaus nach der ZerstOrung hatte Deutsch land das G1i.ick, drei Manner zu haben, die den Mut hatten, an ein Aufleben wissenschaftlicher Leistung auf dem neuen und bis 1955 nur mit Einschran kungen erlaubten Gebiet der Rechenanlagen zu glauben. Ihnen, die die Ein fi.ihrung der lnformatik in Deutschland vorbereiten halfen, ist dieses Buchge widmet. Mi.inchen, im Sommer 1970 F. L. BAUER' G. Goos Vorwort zur zweiten Auflage Die zweite Auflage wurde in vielen Einzelheiten verbessert. Fi.ir die zahlrei chen Anregungen, die wir erhalten haben, bedanken wir uns sehr. Unser be sondererDankgiltFrl. Dr. H. VOGG fi.ir die unermi.idliche Hilfebei der Dber arbeitung. Mi.inchen und Karlsruhe, im Fri.ihjahr 1973 F. L. BAUER' G. Goos Aus dem Vorwort zmdritten Auflage IX Aus dem Vorwort zur dritten Auflage Angesichts des Aufschwungs und Fortschritts, den die Informatik in den letz ten zwolf Jahren genommen hat, war mit der dritten Auflage (31.-34. Tau send) dieses Buches eine Neubearbeitung dringend geboten. Aul3erlich am auWmigsten ist wohl, dal3 die Programmbeispiele des Buches nunmehr "zweispaltig", in ALGOL68 und PASCAL, geschriebensind. FUrdie Berticksichtigungvon PASCAL sprachnicht nur dessen seit 1975 erfolgteweite Verbreitung, sondernvor allem, dal3 es etwa aufdem Gebiet der Datenstruktu ren einige Schwachstellen von ALGOL 68 erganzt; wahrend umgekehrt das tibersetzerunabhangig konzipierte ALGOL 68 immer noch in einigen Punkten die durchsichtigere Notation hat - obschones seiner offensichtlichen Schrullig keit wegenan manchenOrten nicht Ful3 fassen konnte. Wieschoninder ersten Auflage bei ALGOL 68, wurde nun auch bei PASCAL - allerdings in weit geringerem AusmaB - Wildwuchs an 'features' beschnitten. Hinzugeftigt wer den muBten im wesentlichen lediglich einige kollaterale Konstruktionen. In der Hauptsache drtickt sich aber in dem friedlichen Nebeneinander von ALGOL 68 und PASCAL ein Wandel aus, der sich in den 70er Jahren volIzo gen hat: die Etablierung einer allgemeinen und abstrakten, von Notationen unabhangigen begrifflichen Basis ftir Ablauf- und (etwas nachhinkend) ftir Datenstrukturen. Sowohl ALGOL 68 wie PASCAL (und nicht allein sie) sind von dieser Basis aus semantisch leicht erreichbar, wobei in dieser Sicht einige Neuorientierungen bei ALGOL 68 (etwa der Wegfall der Gleichheitsvereinba rung als fundamentaler Begriff) unvermeidlich sind, gewisse Schmalbrtistig keit bei PASCAL (etwa das Fehlen von Zwischenergebnisvereinbarungen und von bedingten Formeln) Abhilfe erfordert, die sich in einigen PASCAL-Vari anten (MESA u.a.) auch abzeichnet. Dementsprechend steht im Hintergrund eine abstrakte, maschinenunabhan gigeoperativeSemantik aufder Basisvon Formelbildungund -vereinfachung, mit einem Oberbau von abstrakten Datentypen und Termersetzung (vgl. F. L. BAUER "Algorithms and Algebra", in: Algorithms in Modern Mathematics and Computer Science (Urgench Symposium 1979), LNCS 122). In einem Buch ftir Anfanger kann man aber nicht mit dieser Theorie beginnen. Statt dessensteht eininformelles, intuitiv einleuchtendes Modellzur Verftigung, die "Formularmaschine". Sie ist eigentlich eine Protomaschine des "applikativen Niveaus", aus der sich verschiedenste ablauf- oder auch datenfluBorientierte Maschinenmodelle herleiten lassen. Damit soli das Buch zu einer zukunftssicheren Ausrichtung der Inhalte des Informatikstudiums beitragen. Stets galt es abzuwagen, was als ftir den An fanger zunachst unwichtiges Detail und als rein theoretische Erorterung weg gelassen werden soli. x Aus dern Vorwort zurdritten Auflage Der Leser, den das Nebeneinander von ALGOL-Notation (jeweils links) und PASCAL-Notation (jeweils rechts) stort, mag sich entschlieBen, nur die eine oder die andere Fassung zur Kenntnis zu nehmen; wenn er beide Fassun gen betrachtet, kann er gelegentlich aus dem Unterschied auch etwas lernen, und sei es nur, daB der Unterschied eigentlich unerheblich ist. Insbesondere der Hochschullehrer, der das Buch zum Gebrauch neben der Vorlesung emp fiehlt, wird sichvielleichtausunterrichtspraktischenGrundenaufeinederbei den Fassungen konzentrieren und die andere mehr nebenherlaufen lassen oder dem Selbststudium anheimgeben. Ebenso wird sich der Hochschullehrer vielleicht im Hinblick auf Obungs moglichkeiten zu Umstellungen in der Stoffdarbietung entschlieBen wollen. Einige Hinweise zu Beginn der betreffenden Paragraphen sollen dafUr hilf reich sein. Mit voller Absicht wurde in diesem Buch eine mittlere Linie zwischen radi kal-moderner und traditionalistischer Ausrichtung der Informatik eingenom men. Wir beginnen also nicht mit abstrakter Algebra und Fixpunkttheorie. Wenn aber ein Dozent aus didaktischen, methodischen oder theoretischen Grunden auch nicht mit der allgemeinen Rekursion, sondern mit Wiederho lungen (und Sprungen), also mit Elementen des sog. "prozeduralen Niveaus" beginnen mochte, kann er mit geringen Anpassungen an die veranderte Moti vation die entsprechende Umstellung vornehmen und von 2.3.1 sogleich auf das 3. Kapitel, bei schwerpunktmaBiger Behandlung von PASCAL auch auf 3.2 springen. Der Rest des zweiten Kapitels kann dann im AnschluB an 3.4 oder 3.5 nachgeholt werden. 3.6 und 3.7 betreffen implementierungsabhangi ge maschinennahe Oberlegungen und konnen auch weiter zuriickgestellt wer den. In den Anhangen findet sich nicht-zentrales, erganzendes Material, darun ter auch die Einfuhrung in die Shannonsche Informationstheorie, die fruher, im ersten Kapitel stehend, ein zielstrebiges Zugehen auf den Algorithmenbe griff verzogerte. Hiersei auch eineWarnungangebracht: der Text enthalt gelegentlich knap pe Formulierungen, die zu genauerem Nachdenken veranlassen sollen. Auch diese Fassung des Buches entstand aus der Einfuhrungsvorlesung her aus, die inzwischen nicht mehr auf zwei Semester beschrankt ist und auch nicht mehran der AbteilungMathematik, sondernan der Fakultat fUr Mathe matik und Informatik der Technischen Universitat Munchen abgehalten wird. Zu danken habe ich vor allem meinem verstorbenen Freund KLAUS SAMEL SON fur tiefgreifende Diskussionen, sowie meinen Kollegen J. EICKEL, W. HAHN, M. PAUL, A. JAMMEL und R. BAYER, die mir manche praktische Hinweise gaben, und vielen meiner Kollegen wie auch Studierenden, die ich namentlich nicht aile auffUhren kann, fUr fruchtbare Kritik. Besonders meine Mitarbeiter in der Arbeitsgruppe CIP haben mir bei vielen Klippen - ein- Vorwort zur vierten Auflage XI schlieBlich der Uberprtifung der Programmbeispiele - die wahrend der qual vollen Entstehung eines Buches zu tiberwinden sind, geholfen; unter ihnen mochteichvor allem nennen Herrn OberstudienratW. DOSCH, der bereits die Ausarbeitung des Vorlesungsskriptums betreute und mit schatzenswerter Ge duld und Genauigkeit Korrekturen las. Mein besonderer Dank gilt schlieBlich Frau Dr. H. BAUER-VOGG ftir das Verstandnis, das sie ihrem immer noch vielbeschaftigten Mann entgegengebracht hat. Mtinchen, Ostern 1982 F. L. BAUER Vorwort zur vierten Auflage In der vorliegenden vierten Auflage (45.-49. Tausend) konnten Verbesserun gen und Erganzungen vorgenommen werden. Insbesondere legte der inzwi schen erschienene Sprachbericht der CIP-Gruppe (01) eine solide definitori sche Basis ftir die im Buch verwendete ALGOL-Variante. Das Vorliegen des ISO-Standards ftir PASCAL (04) erlaubteeinige Prazisierungen, die auch teil weise eine starkere Ubereinstimmung der ALGOL- und PASCAL-Fassungen mit sich brachten. Nach wie vor deckt aber PASCAL - wieauch MODULA-2 - einige fUr eine moderne Einftihrung unerlaBlichen funktionalen Sprachkon zepte - insbesondere Kollateralitat und Nichtdeterminismus - nicht abo Wir danken Herrn Dr. H. EHLER ftir die Durchsicht der Syntaxdiagramme und Herrn Dipl.-Ing. R. GEROLD ftir die Aktualisierung einiger technischer Daten. Mtinchen, im Sommer 1990 F. L. BAUER . W. DOSCH Handschrift von GOTTFRIED WILHELM LEIBNIZ 15. Marz 1679 ,Pt.e,. , ..,,,,,, I''''' '1- • ~. 1 I 'J 'to "" \ , " 1f ~ ~ )~ ;' J ,,. , • 'I ... • VLSI-Schaltung