ebook img

Theoretische Informatik: Grundlagen und praktische Anwendungen PDF

258 Pages·1995·9.71 MB·German
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Theoretische Informatik: Grundlagen und praktische Anwendungen

Werner Brecht Theoretische Informatik Rechneran:hhlctur von John l. Hennessy and David A. Patterson Aufbau unci ArheitswHe wn Rechenanlagen von WoI£gang CfYt Mehr all nur Programmieren .•• Eine EinfUhrung in die Inlormatik von Rainer Gmehlich und Heinrich Rust InMtaldiw Syst.me Software-Enlwicldung und Software-Ergonomie von Christian Stary MocIernes Software Engineering von Reiner Dumke Management von Softwareproielden von Fritz Peter Elzer Parallel. Progiammiervng von Thomas Braunl Konzeple unci Praxis des Compilerbaus von Volker Penner 1heoretiKhe Informatik von Werner Brecht Fonnalisieren unci Beweisen von Dirk Siefkes UNIX von Werner Brecht Verteihe $ysleme unler UNIX von Werner Brecht Werner Brecht Theorelische Informalik Grundlagen und praktische Anwendungen I ) vleweg ISBN -13: 97 8-3-528-05462-5 e-ISBN-13 :978-3-322-86827-5 DOl: 10.1007/978-3-322-86827-5 Das in diesem Buch enthaltene Programm-Material ist mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden. Der Autor und der Verlag libernehmen infolgedessen keine Verantwortung und werden keine daraus folgende oder sonstige Haftung liber nehmen, die auf irgendeine Art aus der Benutzung dieses Programm-Materials oder Teilen davon entsteht. Aile Rechte vorbehalten © Friedr. Vieweg & Sohn Verlagsgesellschaft mbH, Braunschweig/Wiesbaden, 1995 Der Verlag Vieweg ist ein Unternehmen der Bertelsmann Fachinformation GmbH. Das Werk einschlieBlich aller seiner Teile ist urheberrechtlich ge schlitzt. Jede Verwertung auBerhalb der engen Grenzen des Ur heberrechtsgesetzes ist ohne Zustimmung des Verlags unzulCissig und strafbar. Das gilt insbesondere fUr VervielfCiltigungen, Ober setzungen, Mikroverfilmungen und die Einspeicherung und Ver arbeitung in elektronischen Systemen. Umschlaggestaltung: Klaus Birk, Wiesbaden Druck und buchbinderische Verarbeitung: Langelliddecke, Braunschweig Gedruckt auf sCiurefreiem Papier Inhaltsverzeichnis Vorwort .......................................................................................... VII 1 Mathematische Grundlagen ............................................... 1 1.1 Mengen ................................................................... 1 1.2 Strukturen ............................................................... 10 1.3 Ubungen ................................................................. 18 2 Algorithmen ........................................................................ 19 2.1 Turing-Maschinen ................................................... 19 2.2 Produktionssysteme ................................................. 48 2.3 Formulierung von Algorithmen ................................ 58 2.4 Ubungen ................ ................................................. 74 3 Berechen- und Entscheidbarkeit ........................................ 75 3.1 Berechenbarkeit ....................................................... 75 3.2 Entscheidbarkeit ...................................................... 90 3.3 J.1-rekursive Funktionen ............................................ 95 3.4 These von Church ................................................... 101 3.5 Grenzen algorithmischer Losbarkeit ......................... 103 3.6 Ubungen ................................................................. 114 VI Inhaltsverzeichnis 4 Komplexitat ....................................................................... 115 4.1 Zeit-und Speicherkomplexitat ................................. 115 4.2 Sortieralgorithmen ................................................... 127 4.3 Ubungen ................ ................................................. 140 5 Nebenlaufigkeit .................................................................. 141 5.1 Nichtdeterminismus ................................................. 141 5.2 Nebenlaufige Prozesse ............................................. 154 5.3 Ubungen ................................................................. 168 6 SelbstmodirlZierende und selbstreproduzierende Algorithmen ........... .............................................. .......... .... 169 6.1 Selbstbeziiglichkeit .................................................. 169 6.2 Computerviren: Grundbegriffe ................................. 175 6.3 Arbeitsweise von Computerviren ............................. 180 6.4 Umgang mit Computerviren ..................................... 200 6.5 Ubungen ................................................................. 216 Losungen zu den Ubungen .............................................. ............... 217 Abbildungen .................................................................. ............. .... 231 Literaturverzeichnis ....................................................................... 233 Register .......................................................................................... 239 Vorwort Die theoretische Informatik hat ihre Wurzeln in dem mathematisch philosophischen Bereich der prinzipiellen Berechenbarkeit mathematischer Funktionen. Grundlegende Arbeiten sind im wesentlichen in den dreilliger Jahren dieses Jahrhunderts geleistet worden, also vor dem Erscheinen der ersten Rechenanlagen und lange bevor die Informatik den Rang eines eigenstandigen F orschungs- und Lehrgebiets bekommen hat. Das mag einer der Griinde dafiir sein, daB die theoretische Informatik in der Infor matikausbildung meist der Mathematik und weniger den praktischen Anwendungen zugeordnet wird. Das schlagt sich in den Informatikstudien gangen an den Hochschulen entsprechend nieder. 1m Bereich der (inner-) betrieblichen Aus- und Weiterbildung wird die theoretische Informatik fast vollstandig ignoriert. Eine starkere Hinwendung zu den Anwendungsgebieten kann zum einen fur die mathematisch orientierte theoretische Informatik eine sinnvolle Erganzung sein, zum anderen konnen dadurch prinzipielle Gegebenheiten der Anwendungsgebiete auf einige wenige fundamentale Konzepte zurUck gefuhrt werden. Dazu mochte das vorliegende Buch einen kleinen und bescheidenen Beitrag leisten. Es ist aus einem Vorlesungsmanuskript fur Lehrveranstaltungen an der Technischen Fachhochschule in Berlin hervor gegangen. Der Autor, ein Informatiker und Mathematiker, ist dort Profes sor fur Betriebssysteme und Systemprogrammierung und verfugt tiber eine langjahrige Erfahrung als Rechenzentrumsleiter. Die Lehrveranstaltungen wurden Studierenden des Hauptstudiums der Studiengange Allgemeine Informatik, Technische Informatik, Ingenieurinformatik und Mathematik angeboten. Die Resonanz auf diese Angebote war ermutigend. Zum einen ist aus dem Kreis der Kolleginnen und Kollegen Zustimmung geauBert und auf einen grundsatzlichen Bedarf an theoretischer Informatik zur Unterstiitzung der eigenen Veranstaltungen hingewiesen worden. Zum anderen hat das Inter- VIII Vorwort esse der (zahlreichen) Studierenden zu stellenweise sehr tiefgehenden Dis kussionen gefuhrt. Beides hat das Buch inhaltlich mitgestaltet. Es beginnt mit einer kurzen Zusammenstellung des notwendigen mathematischen Werkzeugs, das im Bereich der Mengen und Strukturen angesiedelt ist. Danach wird der A Igorithmusbegriff mit Hilfe von Turing-Maschinen und den ihnen aquivalenten Produktionssystemen eingefuhrt. Die Behandlung der Turing-Maschinen schlieBt mit dem Bau einer Experimentiermaschine, die das fundamentale Algorithmenkonzept anfafibar machen solI. Eine solche Experimentiermaschine ist prinzipiell in jeder Programmier sprache realisierbar, und interessierte Leser(innen) sind aufgerufen, eine entsprechende Implementierung vorzunehmen. Urn moglichst schnell zu einem funktionsfahigen Prototypen zu kommen, ist fur das Buch eine Rea lisierung mit UNIX -Kommandoprozeduren, sogenannten Shell-Scripts, gewahlt worden. Ziel bei dieser Realisierungsform war nicht nur eine schnelle Anwendungsentwicklung, sondem auch das Vorhaben, in dem Anwendungsgebiet, das sich mit Nebenlaufigkeit beschaftigt, die Multi taskingfahigkeit des UNIX-Betriebssystems auszunutzen. Die Experimen tiermaschine kann mit wenigen Befehlen so erweitert werden, daB mit ihr auch praktische Experimente mit nebenlaufig arbeitenden Programmen durchgefuhrt werden konnen. Damit ist bereits zu den Anwendungskapiteln ubergeleitet worden. Vorher jedoch und fur das Buch zentral wird die Berechenbarkeit mathematischer Funktionen und die Grenzen dieser (algorithmischen) Berechenbarkeit beschrieben. Dazu wird an dafur geeigneten Stellen eine hOhere Pro grammiersprache als Formulierungshilfe fur die algorithmischen Betrach tungen benutzt. Dies ist in der theoretischen Informatik durchaus ublich, und meist bedient man sich Pascal-ahnlicher Sprachen. Wegen der groBen Verbreitung der Programmiersprache C und auch (das war der Haupt grund) urn den Anwendungsbezug hervorzuheben, wird als hohere Sprache ein C-ahnlicher Pseudocode verwendet. Die Beschrankung auf ganz wenige und intuitiv verstandliche Sprachkonstrukte bewirkt, daB auch Leser(innen) ohne C-Kenntnisse die Programmbeispiele problemlos nach vollziehen konnen. An die Berechenbarkeitsuberlegungen schlieBen sich beispielhaft drei Anwendungsgebiete an. Das erste und fur die theoretische Informatik traditionelle Gebiet Komplexitdt hat eine sehr tiefgehende mathematische Vorwort IX Dimension, auf deren Beschreibung zugunsten praktischer Aufwandsana lysen konkreter Algorithmen verzichtet worden ist. Statt dessen ist ver sucht worden, das zugehOrige theoretische Konzept praktisch greifbar zu machen und auf bekannte Sortierverfahren anzuwenden. 1m dem Kapitel iiber Nebenlaufigkeit werden unter Zugrundelegung der Turing-Maschinen und nichtdeterministischer Programme grundlegende Konzepte der sogenannten Parallelprogrammierung aufgezeigt. Dabei werden Prozesse untersucht, die auf einer (einzigen) Maschine bezie hungsweise in einem Netzwerk nebenlaufig durchgefuhrt werden. Unter anderem wird dargestellt, welche Erweiterungen an den iiblichen Pro grammiersprachen vorgenommen werden miiBten, urn mit ihnen nebenlau fige Prozesse formulieren zu konnen. Das letzte Kapitel schlieBlich befaBt sich mit der Arbeitsweise selbstmodi fizierender und selbstreproduzierender Algorithmen. Anwendungen dieses Gebiets sind unter dem Schlagwort Computerviren bekannt. Es wird gezeigt, wie ein grundlegendes, auf dem Konzept der Turing-Maschi nen beruhendes Verstandnis dieser Algorithmen den Umgang mit ihnen praktikabel werden laBt. Das wird soweit getrieben, daB plakativ eine Handlungsanleitung fur den Fall einer Virusinfektion angegeben wird, die durch Empfehlungen abgerundet ist, die dazu dienen, einem Befall durch Viren vorzubeugen. Zu diesem Buch haben nicht nur die vielen Studierenden mit ihren Dis kussionsbeitragen beigetragen, sondem insbesondere meine beiden Kolle gen an der Technischen Fachhochschule Berlin, Prof. Dr. Ulrich Grude und Prof. Dr. Andreas Solymosi, die das Manuskript gelesen und kon struktiv kritisiert haben. Beiden verdanke ich viele Anregungen. Besonders zu erwahnen ist in diesem Zusammenhang auch Hans-Christian Brecht, der als fortgeschrittener Student der Physik und Informatik Testleser war und viele didaktische Ungeschicklichkeiten entdeckt hat. Ihnen allen gebiihrt mein Dank. Danken mochte ich auch dem Vieweg-Verlag fur die Moglichkeit der Realisierung dieses Buchprojekts und fur die unbUrokrati sche Begleitung. 1 Mathematische Grundlagen 1.1 Mengen Konventionen 1m folgenden werden in aller Kiirze einige grundlegende Begriffe aus dem Bereich der strukturellen Mathematik zusammengestellt. Sie werden in den weiteren Kapiteln stiindig verwendet, und es wird von ihnen angenommen, daB sie nicht allen Lesem gelaufig sind. Begriffe der mehr traditionellen Mathematik, wie Polynome, Folgen, Reihen, Ableitungen und Integrale, werden als bekannt vorausgesetzt. Bei der Beschreibung mathematischer Sachverhalte werden Formulierungen der Umgangssprache meist den pra dikatenlogisch korrekten AusdrUcken vorgezogen. Damit solI den Lesem entgegengekommen werden, die im Umgang mit mathematisch-logischen AusdrUcken weniger geschult sind. So wird zum Beispiel fur den Aus druck ('ifxl [H (xl 1 die Formulierung Es gilt H (xl fUr alle x oder H (xl gilt fUr alle x oder meist H (xl fUr alle x geschrieben. An der Logik und ihrer korrekten Schreibweise interessierte Leser(innen) wer den auf die Literatur, beispielsweise auf das Buch Symbolic Logic and Mechanical Theorem Proving von Chang und Lee [CHA73], verwiesen. Mengenbegriff Der Begriff Menge wird im Sinne der naiven Mengenlehre verwendet, so wie er von dem deutschen Mathematiker Georg Cantor (1845-1918) einge fuhrt worden ist. Leser(innen), die an einer Prazisierung des Mengenbe griffs interessiert sind, finden zum Beispiel in dem Buch Mengenlehre von Schmidt [SCH66] eine axiomatische Darstellung. Die naive Mengenlehre versteht unter einer Menge eine Zusammenfassungen wohlunterschiedener Objekte. Dabei muB prazise genug beschreibbar sein, was ein Objekt ist. Beispielsweise ist eine Objektbeschreibung wie Aile Leser dieses Buchs

Description:
Dieses Lehrbuch bietet in handlichem Format und zu attraktivem Ladenpreis allen Studenten an Fach- und sonstigen Hochschulen eine anwendungsorientierte Sicht der Theoretischen Informatik. Es eignet sich in hervorragender Weise für die gängigen Lehrveranstaltungen, in denen die Grundzüge der Theor
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.