Formale Sprachen, abstrakte Automaten und Compiler Christian Wagenknecht • Michael Hielscher Formale Sprachen, abstrakte Automaten und Compiler Lehr- und Arbeitsbuch für Grundstudium und Fortbildung 2., überarbeitete Aufl age Christian Wagenknecht Michael Hielscher Fakultät Elektrotechnik und Informatik Institut für Medien und Schule Hochschule Zittau/Görlitz Pädagogische Hochschule Schwyz Görlitz, Deutschland Goldau, Schweiz ISBN 978-3-658-02691-2 ISBN 978-3-658-02692-9 (eBook) DOI 10.1007/978-3-658-02692-9 Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliogra(cid:191) e; detail- lierte bibliogra(cid:191) sche Daten sind im Internet über http://dnb.d-nb.de abrufbar. Springer Vieweg © Springer Fachmedien Wiesbaden 2009, 2014 Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Jede Verwertung, die nicht ausdrücklich vom Urheberrechtsgesetz zugelassen ist, bedarf der vorherigen Zustimmung des Verlags. Das gilt insbeson- dere für Vervielfältigungen, Bearbeitungen, Übersetzungen, Mikrover(cid:191) lmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen. Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werk 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ürften. Der Verlag, die Autoren und die Herausgeber gehen davon aus, dass die Angaben und Informationen in diesem Werk zum Zeitpunkt der Veröffentlichung vollständig und korrekt sind. Weder der Verlag noch die Autoren oder die Herausgeber übernehmen, ausdrücklich oder implizit, Gewähr für den Inhalt des Werkes, etwaige Fehler oder Äußerungen. Gedruckt auf säurefreiem und chlorfrei gebleichtem Papier Springer Fachmedien Wiesbaden ist Teil der Fachverlagsgruppe Springer Science+Business Media (www.springer.com) Vorwort Lernen und (erst recht) Studieren erfordern Aktivität. Die beste Vorlesung bleibt wirkungslos,wennsieals„Kinoeffekt“verpufft.Schnellsiehtmanein,dassprak- tische Prozesse, die man beherrschen muss, eingeübt werden müssen. Abstrakte Denktechnikenscheinendapflegeleichterzusein.DasGegenteilistderFall!Die wirklicheVerinnerlichungabstrakterInhalteerforderthöchstegeistigeAktivität. Dabei soll dieses Arbeitsbuch zur theoretischen Informatik helfen. Benutzen Sie es! Verinnerlichen Sie die anfangs unappetitlichen Happen. Sie werden zuneh- mendspüren,dassabstrakteDenktechnikenFreudebereitenkönnen.Diesgiltauch fürverwandteDenkaktivitätenaußerhalbdertheoretischenInformatik.DieReise lohntsichundSIEsindderKapitän.WirreichenIhnenKarteundKompass. Der Text basiert auf Vorlesungen zur theoretischen Informatik, die seit 1993 im Fachbereich Informatik an der Hochschule Zittau/Görlitz gehalten wurden. Sie wurdenständigmodifiziert,verbessertunddurchBegleitmaterialimWebergänzt. EswirdlediglichSchulwissenausderMathematikvorausgesetzt. KernstückdesArbeitsbuchesisteineLernumgebung,diewirseit2004indeno.g. Vorlesungen einsetzen und seither weiterentwickeln. Sie heißt AtoCC (from au- tomatontocompilerconstruction),(cid:0)(cid:2)(cid:2)(cid:3)(cid:4)(cid:5)(cid:5)(cid:6)(cid:6)(cid:6)(cid:7)(cid:8)(cid:2)(cid:9)(cid:10)(cid:10)(cid:7)(cid:11)(cid:12),undbietetdieMög- lichkeit,GrundlagenderTheorieformalerSprachenundAutomatenmitBezugauf sehr praxisbezogene Anwendungen im automatisierten Übersetzerbau (compiler compilerbzw.compilerconstruction)amComputereinzuüben.AndereTeilgebie- te der theoretischen Informatik, wie Berechenbarkeitstheorie und Komplexitäts- theorie,werdenhiernichtbetrachtet. Der Dank der Autoren gilt allen Personen, die sich mit dem Material beschäf- tigthabenundmitihremFeedbackzurEntstehungbzw.QualifizierungdesTextes beigetragen haben. Musterlösungen oder Lösungshinweisen zu den Übungsauf- gaben finden Sie bei den studienbegleitenden Ressourcen, die Sie über die Seite (cid:0)(cid:2)(cid:2)(cid:3)(cid:4)(cid:5)(cid:5)(cid:6)(cid:6)(cid:6)(cid:7)(cid:10)(cid:0)(cid:13)(cid:14)(cid:15)(cid:2)(cid:14)(cid:8)(cid:16)(cid:17)(cid:6)(cid:8)(cid:18)(cid:12)(cid:16)(cid:19)(cid:16)(cid:12)(cid:10)(cid:0)(cid:2)(cid:7)(cid:11)(cid:12)(cid:5) erreichen. InderzweitenAuflagewurdenSchreibfehlerkorrigiertundverbessertebzw.an- gepassteAlgorithmeneingearbeitet.BeispielsweisewurdedasVerfahrenzurEli- minierungvonKettenregelnvereinfacht.FürStudierendeschwierigeThemen,wie derSatzvonMyhillundNerodeunddiePumpingLemmatafürreguläreundkon- textfreieSprachen,undweitereTextpassagenwurdendidaktischangereichert. DietrotzgroßerSorgfaltnichtauszuschließendenFehlerbzw.Ungeschicklichkei- ten sind allein den Autoren anzulasten. Bitte senden Sie uns Ihre Anmerkungen. Dafürsindwirsehrdankbar! VI Vorwort VervielfältigungenbeliebigerTeilediesesTextesoderderenWeitergabesindnicht gestattet. © 2014byChristianWagenknechtandMichaelHielscher (cid:0)(cid:2)(cid:2)(cid:3)(cid:4)(cid:5)(cid:5)(cid:6)(cid:6)(cid:6)(cid:7)(cid:8)(cid:0)(cid:9)(cid:10)(cid:11)(cid:2)(cid:10)(cid:12)(cid:13)(cid:14)(cid:6)(cid:12)(cid:15)(cid:16)(cid:13)(cid:17)(cid:13)(cid:16)(cid:8)(cid:0)(cid:2)(cid:7)(cid:18)(cid:16)(cid:5) (cid:0)(cid:2)(cid:2)(cid:3)(cid:4)(cid:5)(cid:5)(cid:6)(cid:6)(cid:6)(cid:7)(cid:19)(cid:10)(cid:8)(cid:0)(cid:12)(cid:16)(cid:20)(cid:14)(cid:0)(cid:10)(cid:16)(cid:20)(cid:11)(cid:8)(cid:0)(cid:16)(cid:9)(cid:7)(cid:18)(cid:16)(cid:5) Inhaltsverzeichnis 1 Einleitung 1 1.1 TheoretischeInformatikundihreAnwendungen . . . . . . . . . . 1 1.2 AtoCC-unsereLernumgebung . . . . . . . . . . . . . . . . . . . 4 2 StrukturvonProgrammen 5 2.1 Sprache,Syntax,SemantikundPragmatik . . . . . . . . . . . . . 5 2.2 KonkreteSyntax . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.3 AbstrakteSyntax . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.4 Syntaxanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3 Grundbegriffe 17 3.1 AlphabetundZeichen . . . . . . . . . . . . . . . . . . . . . . . . 17 3.2 Wort,WortlängeundVerkettung . . . . . . . . . . . . . . . . . . 19 3.3 Wortmenge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.4 Sprache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4 DefinitionunendlicherMengen 27 4.1 MusterundformaleGrammatiken . . . . . . . . . . . . . . . . . 27 4.2 AbleitungunddefinierteSprache . . . . . . . . . . . . . . . . . . 30 4.3 NichtdeterminismusdesAbleitungsprozesses . . . . . . . . . . . 32 4.4 MehrdeutigkeitkontextfreierGrammatiken . . . . . . . . . . . . 35 4.5 CHOMSKY-Hierarchie . . . . . . . . . . . . . . . . . . . . . . . 36 4.6 ε-Sonderregelungen . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.7 DasWortproblem . . . . . . . . . . . . . . . . . . . . . . . . . . 42 4.8 RecognizerundParserfürkontextfreieSprachen . . . . . . . . . 44 5 Sprachübersetzer 47 5.1 CompilerundInterpreter . . . . . . . . . . . . . . . . . . . . . . 47 5.2 DieSpracheeinesZeichenroboters . . . . . . . . . . . . . . . . . 48 5.3 ModellierungvonÜbersetzungsprozessen . . . . . . . . . . . . . 50 5.4 ScannerundParser . . . . . . . . . . . . . . . . . . . . . . . . . 55 6 EndlicheAutomatenundreguläreSprachen 61 6.1 AufbauabstrakterAkzeptoren . . . . . . . . . . . . . . . . . . . 61 6.2 DeterministischerEndlicherAutomat(DEA,EA) . . . . . . . . . 63 6.3 EndlicherAutomatundreguläreGrammatik . . . . . . . . . . . . 67 6.4 NichtdeterministischerendlicherAutomat(NEA) . . . . . . . . . 70 VIII Inhaltsverzeichnis 6.5 Konstruktioneinesäquiv.DEAauseinemNEA . . . . . . . . . . 76 6.6 Minimalautomaten . . . . . . . . . . . . . . . . . . . . . . . . . 81 6.7 NEAmitε-Übergängen . . . . . . . . . . . . . . . . . . . . . . . 91 6.8 DasPumpingLemmafürreguläreSprachen . . . . . . . . . . . . 98 6.9 EndlicheMaschinen. . . . . . . . . . . . . . . . . . . . . . . . . 101 7 ReguläreAusdrücke 107 7.1 Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 7.2 Klammersparregeln . . . . . . . . . . . . . . . . . . . . . . . . . 109 7.3 ÄquivalentereguläreAusdrücke . . . . . . . . . . . . . . . . . . 109 7.4 ReguläreAusdrückeundendlicheAutomaten . . . . . . . . . . . 110 7.5 ReguläreAusdrückeinderPraxis . . . . . . . . . . . . . . . . . 117 7.6 AnwendungsgebietefürreguläreAusdrücke . . . . . . . . . . . . 120 7.7 ReguläreAusdrückeinScannergeneratoren . . . . . . . . . . . . 122 8 KellerautomatenundkontextfreieSprachen 129 8.1 GrenzenendlicherAutomaten . . . . . . . . . . . . . . . . . . . 129 8.2 NichtdeterministischerKellerautomat(NKA) . . . . . . . . . . . 130 8.3 ÄquivalenzvonNKAundkontextfreierGrammatik . . . . . . . . 137 8.4 ParsingkontextfreierSprachen . . . . . . . . . . . . . . . . . . . 144 8.5 DeterministischerKellerautomat(DKA) . . . . . . . . . . . . . . 148 8.6 DeterministischkontextfreieSprachen . . . . . . . . . . . . . . . 150 8.7 ParsergeneratorenfürdkfS . . . . . . . . . . . . . . . . . . . . . 153 8.8 OptimierungkontextfreierGrammatiken . . . . . . . . . . . . . . 155 8.9 CHOMSKY-Normalform . . . . . . . . . . . . . . . . . . . . . . 158 8.10 DasPumpingLemmafürkontextfreieSprachen . . . . . . . . . . 160 9 LL(k)-Sprachen 165 9.1 DeterministischeTop-down-Syntaxanalyse. . . . . . . . . . . . . 165 9.2 Begriff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 9.3 LL(1)-Forderungen . . . . . . . . . . . . . . . . . . . . . . . . . 168 9.4 Top-down-ParserfürLL(1)-Grammatiken . . . . . . . . . . . . . 173 9.5 MethodedesRekursivenAbstiegs . . . . . . . . . . . . . . . . . 175 9.6 Grammatiktransformationen . . . . . . . . . . . . . . . . . . . . 184 10 LR(k)-Sprachen 191 10.1 Begriff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 10.2 DeterministischeBottom-up-Syntaxanalyse . . . . . . . . . . . . 191 10.3 TabellengesteuerteLR(k)-Syntaxanalyse . . . . . . . . . . . . . . 195 10.4 AutomatisierteParsergenerierung. . . . . . . . . . . . . . . . . . 199 10.5 Compiler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 11 Sprachübersetzerprojekt 211 11.1 MotivationundAnwendungskontext . . . . . . . . . . . . . . . . 211 Inhaltsverzeichnis IX 11.2 DieNotenspracheML . . . . . . . . . . . . . . . . . . . . . . . . 212 11.3 EntwicklungeinesML-Interpreter . . . . . . . . . . . . . . . . . 214 11.4 EntwicklungeinesML→SVG-Compilers . . . . . . . . . . . . . 218 12 TURING-Maschine(TM)undCHOMSKY-Typ-0/1-Sprachen 225 12.1 GrenzenvonKellerautomaten . . . . . . . . . . . . . . . . . . . 225 12.2 DieTURING-Maschine(TM) . . . . . . . . . . . . . . . . . . . . 226 12.3 DieArbeitsweiseeinerDTM . . . . . . . . . . . . . . . . . . . . 228 12.4 AlternativeTM-Definitionen . . . . . . . . . . . . . . . . . . . . 230 12.5 DieDTMalsAkzeptor . . . . . . . . . . . . . . . . . . . . . . . 231 12.6 DTM,NTM,LBTMundSprachklassen . . . . . . . . . . . . . . 233 12.7 TMinKomplexitäts-undBerechenbarkeitstheorie. . . . . . . . . 235 12.8 TMzurBerechnungvonFunktionen . . . . . . . . . . . . . . . . 236 Sachverzeichnis 243 1 Einleitung 1.1 Theoretische Informatik und ihre Anwendungen Zur Weihnachtszeit sind Flughäfen oft überfüllt und restlos ausgelastet. Jeder möchteraschnachHauseindenKreisderFamilie.Weihnachten2004gingdieser Wunschfürca.30000ReisendenichtinErfüllung:EineUS-amerikanischeFlug- gesellschaftmussteüber1100Flügestreichen.GrundwareinSoftwarefehler.Ein enormerImage-SchadenfürdieseFirmawardieFolge. Der Zwischenfall führte dazu, dass in den Medien über die Nachteile von Auto- matisierungundSicherheitimInformationszeitalterdebattiertwurde.Wiewares aberzudieserKatastrophegekommen?EinMitarbeitertrugineinFormular(ver- mutlich ein typisches Web-Formular) einen Wert ein, der dort nicht hingehörte. DiesführtezueinerKettenreaktion,diesichsogarnochaufeineweiterebekannte Fluglinieauswirkte,dadieServerderbeidenFluggesellschaftenvoneinundder selben Firma betrieben wurden. Es gab kein Sicherheitssystem für einen solchen Fall.MitsehrgeringemAufwandhättendieEntwicklerdesSystemseinensolchen Fehlerausschließenkönnen,nämlichdurcheineEingabevalidierung.Hierfürsind Eingabe- Kenntnisse über formale Sprachen und abstrakte Automaten – ein Teilgebiet der validierung theoretischen Informatik – notwendig. Zulässige Eingaben werden dabei (durch formaleSprachen formaleGrammatikenoderabstrakteAutomatenbestimmtenTyps)exaktbeschrie- undabstrakte ben,unzulässigewerdenausgefiltertbzw.abgewiesen. Automaten AuchleistungsfähigeText-EditorenerfordernTheorie-Wissen,dassichnichtsel- tenüberBegrifflichkeitendarstellt.SiearbeitennämlichmitregulärenAusdrücken reguläre und damit nicht nur Zeichen-, sondern Struktur-orientiert. Der Begriff „regulärer Ausdrücke Ausdruck“ wird hier mit der Erwartung benutzt, dass der Nutzer das zugrunde liegendetheoretischeKonzeptkennt. TheoriewissenistalsoeinewichtigeVoraussetzungfürerfolgreichepraktischeTä- tigkeit auf hohem Niveau - ganz im Sinne des von dem deutsch-amerikanischen (Sozial-)Psychologen Kurt Lewin1 (1890-1947) stammenden Ausspruchs "The- re is nothing as practical as a good theory". Theoretische Informatik ist heu- te mehr denn je eine Voraussetzung, um die Herausforderungen moderner IT- Anwendungenbewältigenzukönnen. Die (immer noch) junge Wissenschaft „Informatik“ entwickelt sich mit rasan- 1OftwirddiesesZitatauchAlbertEinsteinzugeschrieben. C. Wagenknecht, M. Hielscher, Formale Sprachen, abstrakte Automaten und Compiler, DOI 10.1007/978-3-658-02692-9_1, © Springer Fachmedien Wiesbaden 2014
Description: