.~ ~ Springers Lehrbücher der Informatik Herausgegeben von o. Univ.-Prof. Dr.-Ing. Gerhard-Helge Schildt Technische Universität Springer-Verlag Wien GmbH Jo hann Blieberger Bernd Burgstaller Gerhard-Helge Schildt Informatik Grundlagen Vierte, überarbeitete Auflage Springers Lehrbücher der Informatik Springer-Verlag Wien GmbH Ao. Univ.-Prof. Dipl.-Ing. Dr. Johann Blieberger Univ.-Ass. Dipl.-Ing. Bemd BurgstaIIer o. Univ.-Prof. Dr.-Ing. Gerhard-HeIge Schildt Institut für Rechnergestützte Automation Technische Universität, Wien, Österreich Das Werk ist urheberrechtlich geschützt. Die dadurch begründeten Rechte, insbesondere die der Übersetzung, des Nachdruckes, der Entnahme von Abbildungen, der Funksendung, der Wiedergabe auf photomechanischem oder ähnlichem Wege und der Speicherung in Datenverarbeitungsanlagen, bleiben, auch bei nur auszugsweiser Verwertung, vorbehalten. © 1990, 1992, 1996 und 2002 Springer-Verlag Wien Ursprünglich erschienen bei Springer-Verlag Wien New York 2002 Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Buch berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen-und Markenschutz-Gesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürfen. Produkthaftung: Sämtliche Angaben in diesem Fachbuch/wissenschaftlichen Werk erfolgen trotz sorgfaltiger Bearbeitung und Kontrolle ohne Gewähr. Insbesondere Angaben über Dosierungsanweisungen und Applikationsformen müssen vom jeweiligen Anwender im Einzelfall anhand anderer Literaturstellen auf ihre Richtigkeit überprüft werden. Eine Haftung des Autors oder des Verlages aus dem Inhalt dieses Werkes ist ausgeschlossen. Satz: Reproduktionsfertige Vorlage der Autoren Gedruckt auf säurefreiem, chlorfrei gebleichtem Papier - TCF SPIN: 10846848 Mit 72 Abbildungen Die Deutsche Bibliothek - CIP-Einheitsaufnahme Ein Titeldatensatz für diese Publikation ist bei Der Deutschen Bibliothek erhältlich ISSN 0938-9504 ISBN 978-3-211-83710-8 ISBN 978-3-7091-3774-1 (eBook) DOI 10.1007/978-3-7091-3774-1 Vorwort zur 1. Auflage Für euch, Kinder der Wissenschaft und der Weisheit, haben wir dieses geschrieben. Erforschet das Buch und suchet euch unsere Ansicht zv.sammen, die wir verstreut und an mehreren Orten dargetan haben; was euch an einem Orte verborgen bleibt, das haben wir an einem anderen ojJengelegt, damit es fassbar werde für eure Weisheit. Heinrich Cornelius Agrippa von Nettesheim, liDe occulta philosophia". Angesichts einer wahren Flut von Büchern über Informatik erhebt sich die berechtigte Frage, was in der Informatiker-Ausbildung an der Technischen Universität Wien tätige Autoren veranlasst, beinahe ein ganzes Jahr ihrer ohnedies knappen Zeit zu opfern und ein weiteres zu schreiben damit es fassbar werde für eure Weisheit"? W •• Initiales Moment für die Beschäftigung mit dieser Idee war das Problem, den Hörern der für das erste Semester vorgesehenen Vorlesung "Einführung in die Informatik" geeignete schriftliche Unterlagen empfehlen zu müssen. Die Ziele dieser insgesamt sechsstündigen Lehrveranstaltung haben, im Gegensatz zu der parallel stattfindenden "Einführung in das Programmieren", jedoch kaum etwas mit der Entwicklung von Software zu tun. Vielmehr werden hier genau jene Aspekte der Informatik abgedeckt, die nicht die eigentliche Programmierung betreffen. Nun erwies sich aber ein Großteil der in der letzten Zeit erschienenen (guten) Bücher über Informatik als zu anspruchsvoll beziehungsweise zu spezialisiert; etwa 80% der in technischen Buchhandlungen zu findenden Werke sind eigentlich Programm-oder Hardware-Beschreibungen. Im Endeffekt konnten wir daher kein deutschsprachiges Buch finden, das eine dem Niveau des ersten Semesters angemessene Einführung in die moderne Informatik bietet - und dabei die eigentliche Programmierung ausklammert. Der stoffliche Aufbau unserer INFORMATIK ist daher zunächst einmal darauf ausgerichtet, einige der wesentlichen theoretischen Grundlagen zu erarbeiten. Dadurch werden nicht zuletzt auch die Voraussetzungen dafür geschaffen, sich mit der Funktionsweise moderner Computer systeme zu beschäftigen. Das Buch ist streng hierarchisch aufgebaut, das heißt, der Inhalt späterer Kapitel setzt den Inhalt früherer Kapitel voraus, nicht aber umgekehrt. Im Vordergrund steht dabei ein umfas sender Überblick über die einzelnen Themen, aber natürlich unter Berücksichtigung des für das Verständnis notwendigen und zumutbaren Detaillierungsgrades. Die Intention war, eine Art "stu dienbegleitende Übersicht" zu schaffen, also ein einführendes Werk, dessen Gültigkeit nicht mit dem ersten Semester endet; diese Absicht äußert sich nicht zuletzt schon in einem umfangreichen Index. Dass dies aber in Anbetracht der ungeheuer schnell vor sich gehenden Weiterentwicklung der Informatik nur ein Versuch sein kann, liegt auf der Hand. Was den Stil und die Aufmachung des Ganzen betrifft, haben wir versucht, den normalerweise üblichen, trockenen Sachbuchcharakter von "Definition -Satz -Beweis" zugunsten einer lockeren vi und das intuitive Verständnis fördernden Darstellung aufzugeben. In den Text eingestreut finden sich etwa, neben vielen Abbildungen, auch diverse Literaturzitate aus den verschiedensten Berei chen. Diese zu suchen haben wir nicht nur auf uns genommen, um Ihnen etwas von dem Spaß zu vermitteln, den uns die Beschäftigung mit informatischen Belangen bereitet, sondern auch, um anzudeuten, wie viele Assoziationsmöglichkeiten mit nicht minder wichtigen und interessanten Gebieten der menschlichen Kultur eine angeblich trockene Materie bieten kann. Es bleibt uns nur mehr, jenen Studenten Dank zu sagen, die mit ihren Kommentaren und Ver besserungsvorschlägen dazu beigetragen haben, dass das Buch in der vorliegenden Form präsen tiert werden kann. Vorwort zur 4. Auflage Leider war bei der vierten Auflage wieder eine Änderung bei den Autoren notwendig. Da, wie weiter unten noch erläutert, die Teile Hardware und Betriebssysteme in dieser Auflage keine Berücksichtigung finden konnten, möchten wir den entsprechenden betreuenden Autoren, DI Mag. Dr. Alexander Redlein und DI Johann Klasek, für die geleistete Arbeit hiermit herzlichen Dank aussprechen. Ebenfalls herzlichst bedanken möchten wir uns bei Ao. Prof. DI Dr. Ulrich Schmid und bei DI Dr. Stefan Stöckler für ihre Autorenschaft während der ersten beiden Aufla gen. Gleichzeitig sind wir glücklich darüber, einen fachlich versierten Autor gefunden zu haben, der sich einiger neuer Themen angenommen hat, nämlich DI Bernd Burgstaller. Die nunmehr vorliegende vierte Auflage unterscheidet sich von den bisherigen im wesentli chen dadurch, dass einige neue Kapitel hinzugekommen sind, Z.B. die Kapitel Numerik und Quanten-Computer. Die Kapitel, die bisher die umfangreiche Thematik der Hardware und der Betriebssysteme behandelt haben, wurden aus dem Buch entfernt. Sie werden überarbeitet als selbstständiges Buch neu aufgelegt werden. Notwendig wurden diese Umstrukturierungen durch die Neugestaltung des Studienplanes "Informatik" an der TU Wien. Darüber hinaus möchten wir darauf hinweisen, dass sich unter der URI http://www.auto.tuwien.ac.at/informatik w I I multimediale Aufbereitungen verschiedener Inhalte befinden. Im Buch finden Sie an den entspre chenden Stellen ein Icon nebenstehender Gestalt. Abschließend wollen wir uns bei den Lesern bedanken, die mit ihren Kommentaren dazu beigetragen haben, Fehler zu beheben und Lücken in der Präsentation zu schließen. Oberwaltersdorf, Langenwang, Preßbaum, Juli 2001 J. Blieberger, B. Burgstaller, G.-H. Schildt Inhaltsverzeichnis Einführung 1 1 Entwicklung des Berufsbildes 3 2 Inhaltsübersicht 7 Theoretische Grundlagen 13 3 Informationstheorie 15 3.1 Der Begriff Information und seine Entstehung. 15 3.2 Der nachrichtentechnische Informationsbegriff . 17 3.3 Grundlagen der Codierung ............ . 19 3.4 Informationstheorie nach Shannon . . . . . . . . 21 3.5 Kanäle, Transinformation, Verbundentropie und Irrelevanz. 26 4 Codierungstheorie 33 4.1 Datenverdichtung .......... . 33 4.1.1 Der Huffman-Code ..... . 33 4.1.2 Ein adaptiver HufIman-Code 35 4.1.3 Arithmetisches Codieren. 35 4.2 Datenkompression .. . 37 4.2.1 Modellierung ...... . 37 4.2.2 Übliche Modelle .... . 39 4.3 Fehlererkennende und fehlerkorrigierende Codes. 43 4.3.1 Die Hammingdistanz ... 44 4.3.2 Fehlererkennende Codes. 46 4.3.3 Fehlerkorrigierende Codes 48 4.4 Zifferncodierung . 49 4.4.1 BCD-Code ....... . 50 4.4.2 Gray-Code ....... . 50 4.5 Codierung alphanumerischer Zeichen . 50 4.5.1 Der ASCII-Code .... . 50 4.5.2 Der ISO 10646 Standard ... . 52 4.6 Cryptographie ............ . 53 4.6.1 Traditionelle Verschlüsselungsmethoden 55 4.6.2 Ersetzungsmethoden ..... . 56 4.6.3 Verschiebungsmethoden ... . 57 4.6.4 Der Data Encryption Standard 58 4.6.5 Public Key Cryptosystems 60 4.6.6 Die RSA-Methode . 61 4.6.7 Authentisierung .. 63 4.6.8 Elektronisches Geld 64 viii INHALTSVERZEICHNIS 5 Datenübertragungsverfahren 67 5.1 Synchronisation auf Bit- und Wortebene . 67 5.1.1 Bittaktsynchronisation ...... . 68 5.1.2 Wortsynchronisation ....... . 69 5.2 Mehrfachnutzung von Übertragungskanälen 70 5.2.1 Raumvielfach ... 70 5.2.2 Frequenzmultiplex ...... . 70 5.2.3 Zeitmultiplex ......... . 71 5.2.4 Vergleich von FDM und TDM 72 5.3 Kanalcodierung ....... . 72 5.4 Trennzeichenfreie Codierung. . . . . . 74 6 Informationsreduzierende Codierungen 75 6.1 Matrizen ................................ . 75 6.2 Diskrete Cosinus-Transformation .................. . 78 6.2.1 Einige Eigenschaften der diskreten Cosinus-Transformation 78 6.2.2 Algorithmische Durchführung der DCT ... 81 6.3 Anwendungen der diskreten Cosinus-Transformation 81 6.3.1 Signale und Sprache 81 6.3.2 Bilder ..... . 82 6.3.3 Ein Beispiel . . . . . 83 6.3.4 Film und Video. . . 84 6.4 Wavelet-Transformationen. 86 6.5 Fraktale Bildkompression 86 7 Zahlendarstellungen 89 7.1 Zahlensysteme . 89 7.2 Der ideelle Zahlenbegriff . 91 7.3 Zahlenumwandlungen .. 92 7.3.1 Konversion von ganzen Zahlen 93 7.3.2 Konversion von Zahlen mit Nachkommastellen 94 7.3.3 .Konversion zwischen binärer und hexadezimaler Darstellung 95 7.4 Rechnen im binären System ............ . 95 7.4.1 Die Addition im binären Zahlensystem ... . 95 7.4.2 Die Subtraktion im binären Zahlensystem .. 97 7.4.3 Die Multiplikation im binären Zahlensystem. 97 7.4.4 Die Division im binären Zahlensystem 98 7.5 Rechnen im hexadezimalen System 99 7.6 Rechnen mit überlangen Zahlen. 100 7.7 Potenzieren ............ . 102 7.8 Darstellung negativer Zahlen .. . 102 7.8.1 Darstellung durch Vorzeichen und Betrag 103 7.8.2 Exzessdarstellung ....... . 103 7.8.3 Einerkomplementdarstellung . 104 7.8.4 Zweierkomplementdarstellung . 105 8 Numerik 107 8.1 Festpunkt-Darstellung .................... . 107 8.2 Gleitpunkt-Darstellung .................... . 108 8.2.1 Normalisierte und denormalisierte Gleitpunktzahlen 109 8.2.2 Normalisieren von Gleitpunktzahlen ... . 110 8.3 Struktur von Gleitpunkt-Zahlensystemen .... . 111 8.3.1 Parameter eines Gleitpunkt-Zahlensystems 111 INHALTSVERZEICHNIS ix 8.3.2 Anzahl der Gleitpunktzahlen . . . . . . . 111 8.3.3 Größte und kleinste Gleitpunktzahl ... 112 8.3.4 Absolute Abstände der Gleitpunktzahlen 112 8.4 Codierung von Gleitpunktzahlen . . . . . . . . . 114 8.5 IEEE-Normen für Gleitpunkt-Zahlensysteme .. 116 8.5.1 Formate der IEEE 754 Gleitpunkt-Zahlensysteme . 118 8.5.2 Codierung von Gleitpunktzahlen der IEEE 754 Gleitpunkt-Zahlensysteme 118 8.5.3 Arithmetik der IEEE 754 Gleitpunkt-Zahlensysteme 123 8.6 Arithmetik auf Gleitpunkt-Zahlensystemen 123 8.6.1 Rundung ...... . . . . . . . . . . . . 124 8.6.2 Rundungsfehler . . . . . . . . . . . . . . . 126 8.6.3 Rundung und arithmetische Operationen 131 8.6.4 Implementierung einer IEEE 754 Gleitpunkt-Arithmetik . 133 8.7 Genauigkeitsbetrachtungen von Numerik-Software .. 143 8.7.1 Fehlerfortpflanzung . . . . . . . . . . . . . . . . 143 8.7.2 Gesamtanalyse eines numerischen Programms. 144 8.7.3 Summation von Gleitpunktzahlen ....... 145 9 Algorithmen 151 9.1 Analyse von Algorithmen ............ . 151 9.2 Binäres Suchen . . . . . . . . . . . . . . . . . . . 154 9.3 Präludium und Fuge über ein Thema von Hoare 156 10 Boolesche Algebra 165 10.1 Operationen der Booleschen Algebra 165 10.2 Gesetze der Booleschen Algebra. . . 166 10.3 Funktionen über der Booleschen Algebra. 168 10.4 Normalformen .......... . 170 10.4.1 Disjunktive Normalform . 170 10.4.2 Konjunktive Normalform 171 10.5 Vereinfachen von Funktionen .. 171 10.5.1 Verfahren nach Quine und McCluskey 172 10.5.2 Verfahren nach Karnaugh und Veitch 177 11 Fuzzy-Logik 183 11.1 Fuzzy-Mengen. 183 11.2 Fuzzyfizierung. 185 11.3 Regelbasis .. . 186 11.4 Inferenz ... . 187 11.5 Defuzzyfizierung 188 Ausklang 191 Anhang 193 A Quanten-Computer 195 A.1 Schrödingers Katze ........ . 195 A.2 Für Qubits definierte Operationen 197 A.2.1 Unäre Operationen. 198 A.2.2 Das Tensorprodukt . 199 A.2.3 Binäre Operationen 200 x INHALTSVERZEICHNIS A.2.4 Das No-Cloning Theorem 200 A.2.5 Verschränkte Qubits .. 201 A.2.6 Die Grover-Operation .. 203 A.2.7 Universelle Operationen . 204 A.2.8 Die Quanten-Fourier-Transformation . 205 A.3 Quanten-Informationstheorie . . . . . . . . . 206 A.3.1 Die von Neumannsche Quantenentropie 207 A.3.2 Die bedingte Quanten-Entropie (Quanten-Irrelevanz) . 208 A.3.3 Die Quanten-Transinformation 210 A.4 Quanten-Algorithmen ..... 210 A.4.1 Quanten-Parallelismus. . .. 210 A.4.2 Vorzeichenänderung . . . . . 210 A.4.3 Der Groversche Algorithmus 211 A.4.4 Der Shorsche Algorithmus . 213 A.5 Dichte Codierung ... . 215 A.6 Quanten-Teleportation ...... . 216 Literaturverzeichnis 219 Namensverzeichnis 221 Stichwortverzeichnis 223