Automaten und Formale Sprachen. Skript zur Vorlesung WS 2009/2010. Vorlesender: Prof. Dr. M. Kunde. Fassung vom

Größe: px
Ab Seite anzeigen:

Download "Automaten und Formale Sprachen. Skript zur Vorlesung WS 2009/2010. Vorlesender: Prof. Dr. M. Kunde. Fassung vom 07.01.2008"

Transkript

1 Automaten und Formale Sprachen Skript zur Vorlesung WS 2009/2010 Vorlesender: Prof. Dr. M. Kunde Fassung vom Autor: Prof. M. Dietzfelbinger Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Fachgebiet Komplexitätsheorie und Effiziente Algorithmen

2 Inhaltsverzeichnis 0 Vorbemerkungen Einleitung und Überblick Zur Arbeitstechnik Literatur Grundbegriffe Alphabete und Sprachen Endliche Automaten und reguläre Sprachen Deterministische endliche Automaten Endliche Automaten mit Ausgabe Nichtdeterministische endliche Automaten Reguläre Ausdrücke Das Pumping-Lemma für reguläre Sprachen Abschlusseigenschaften für reguläre Sprachen Entscheidbarkeitsfragen für reguläre Sprachen Die Minimierung deterministischer endlicher Automaten Unerreichbare Zustände Äquivalente und nicht-äquivalente Zustände Minimalautomaten Grammatiken und die Chomsky-Hierarchie Grammatiken Rechtslineare Grammatiken und reguläre Sprachen Rechtslineare Grammatiken Äquivalenz zu regulären Sprachen ii

3 3.2.3 Linkslineare Grammatiken Kontextfreie Grammatiken und kontextfreie Sprachen Beispiele und Ableitungen Ableitungsbäume, Linksableitungen, Rechtsableitungen Die Chomsky-Normalform Separierung Verkürzung rechter Seiten Bearbeitung von ε-produktionen Elimination von Kettenregeln Das Pumping-Lemma für kontextfreie Sprachen Der Cocke-Younger-Kasami-Algorithmus Abschlusseigenschaften kontextfreier Sprachen I Kellerautomaten Nichtdeterministische Kellerautomaten Top-Down-Parsing, LL-Parsing Bottom-Up-Parsing, LR-Parsing Akzeptierungsmodi Kellerautomaten und Grammatiken Abschlusseigenschaften II Deterministische Kellerautomaten und ihre Sprachen Entscheidungsfragen für kontextfreie Sprachen A 214 A.1 Zahldarstellungen und Abzählungen A.1.1 Die b-äre Zahldarstellung A.1.2 Die b-adische Zahldarstellung A.2 Induktive Definitionen A.2.1 Beispiel: Aussagenlogische Formeln A.2.2 Beispiel: Korrekte Klammerausdrücke A.2.3 Induktive Definitionen: Formaler Rahmen

4 Kapitel 0 Vorbemerkungen 0.1 Einleitung und Überblick Die Lehrveranstaltung Automaten und Formale Sprachen (AFS) behandelt zusammen mit der Veranstaltung Berechenbarkeit und Komplexitätstheorie (BKT) im 5. Semester die Grundlagen der Theoretischen Informatik, wie sie traditionell im Grundstudium des Studienganges Informatik vermittelt werden. Die in diesen Vorlesungen benutzten Methoden sind mathematisch, auch hier werden also Dinge ( Begriffe / Konzepte ) formal definiert, über die dann Sätze bewiesen werden. Allerdings haben die in diesen Veranstaltungen behandelten Gegenstände auch noch die Eigenschaft, dass sie in engem Bezug zu konkreten Fragen aus dem Informatik-Alltag stehen. In der AFS-Veranstaltung geht es hauptsächlich um Mittel zur Beschreibung formaler Sprachen, wie man sie insbesondere bei der Erstellung von Compilern oder Interpretern benötigt. Die wesentlichen Beschreibungsmittel hierfür sind Automaten und Grammatiken. Wir beginnen die Vorlesung mit der Einführung des Begriffs (synonym: Konzeptes) Formale Sprache. Etwas flapsig ausgedrückt ist eine formale Sprache einfach eine Menge von Texten (technisch sagt man zu einem Text Wort oder String ), wobei man die Menge der Zeichen festlegen muss, die im Text benutzt werden dürfen. Beispiele für formale Sprachen sind die Menge {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,...} der Dezimaldarstellungen der natürlichen Zahlen; die erlaubten Zeichen sind 0, 1, 2, 3, 4, 5, 6, 7, 8, 9; die Menge {0, 1, 10, 11, 100, 101, 110, 111, 1000, 1001,...} der Binärdarstellungen der natürlichen Zahlen; die erlaubten Zeichen sind 0 und 1; die Menge aller Zeichenreihen aus {X,, 0, 1,,,, (, )}, die Formeln mit Aussagesymbolen X 1, X 10, X 11 usw. in disjunktiver Form darstellen (wie (X 100 X 11) (X 1 X 10 X 1001)); 2

5 die Menge der korrekten Darstellungen für Floating-point-Zahlen in Pascal (oder C, oder C++, oder Java); die Menge der korrekt gebildeten Namen ( identifier ) in Pascal-Programmen; die Menge der korrekt gebildeten arithmetischen Ausdrücke in Pascal-Progammen; die Menge der syntaktisch korrekten Pascal-Programme (oder C- oder C++- oder Java-Programme); die Menge der syntaktisch korrekten Pascal-Programme, die auf allen Eingaben nach endlich vielen Schritten anhalten; die Menge aller Wörter, die in der gedruckten Version des Vorlesungsverzeichnisses der TU Ilmenau für das Wintersemester 2007/08 stehen. Man kann sich darüber streiten, ob die Menge der korrekten Sätze der deutschen Sprache eine formale Sprache darstellt, da wohl für viele Sätze die Frage, ob sie korrekt oder nicht korrekt sind, nicht eindeutig beantwortet werden kann, da die Antwort vom Zusammenhang oder vom Geschmack abhängt oder sich im Lauf der Zeit ändert. Aus den Beispielen sieht man schon, dass viele wichtige formale Sprachen unendlich sind. Um eine solche Sprache zu beschreiben (d. h. zu spezifizieren ), kann man also nicht einfach alle Wörter aufzählen, die dazu gehören. Vielmehr brauchen wir Formalismen, die es gestatten, solche unendlichen Mengen von Texten durch einen einzigen endlichen Text oder eine endliche Struktur zu beschreiben. Als Beispiel für eine solche endliche Beschreibung sei die bekannte Methode zur Definition der syntaktisch korrekten Pascal- Programme durch Syntaxdiagramme genannt. Alle Syntaxdiagramme (die man in jedem ordentlichen Pascal-Buch findet) zusammen sind nur ein endliches Gebilde, aber sie erlauben es, korrekte und nicht korrekte Programmtexte zu unterscheiden. Ein Hauptgegenstand der Vorlesung sind also verschiedene Formalismen zur Beschreibung und Manipulation formaler Sprachen. Dabei beginnen wir mit den endlichen Automaten (schon aus der Vorlesung Rechnerorganisation bekannt), die eine der primitivsten solchen Beschreibungsformen darstellen. Bemerkenswert ist, dass solche Automaten eine Vielzahl von Anwendungen haben: ziemlich naheliegende im Zusammenhang mit dem Lesen und Analysieren einfachst strukturierter Texte (wie Identifier oder Floating-Point- Zahlen) oder einfacher Kommandosprachen, aber auch bei Grundfunktionen von Editoren (Suchen eines Strings in einer Datei). Andererseits werden endliche Automaten immer dann verwendet, wenn es um die mathematische Modellierung eines Systems geht, das nur endlich viele Zustände annehmen kann. Diese findet man in praktisch jedem Anwendungsbereich, bei den Betriebssystemen, bei technischen Anwendungen (Steuerung), in der Rechnerarchitektur, in der Telematik ebenso wie bei der Modellierung von Transaktionen zwischen Geschäftspartnern (e-commerce). Oft erzeugen endliche Automaten dann auch Ausgabesymbole oder Ausgabewörter. Diesen Aspekt streifen wir nur kurz. Nichtdeterministische endliche Automaten bilden eine Verallgemeinerung von endlichen 3

6 Automaten, bei denen der nächste Schritt nicht eindeutig vorgeschrieben ist. Dieses Modell macht die Beschreibung einger Sprachen kompakter möglich; wir werden aber sehen, dass die Ausdruckskraft solcher Automaten im Prinzip nicht stärker ist als die der gewöhnlichen endlichen Automaten. Automaten kann man als Akzeptoren für Texte benutzen, indem man sie einen endlichen Eingabetext Buchstabe für Buchstabe lesen lässt und am Ende fragt, ob der Automat den gelesenen Text gut findet ( akzeptiert ) oder nicht. Wenn ein Automat M gegeben ist, bildet die Menge der von M akzeptierten Texte eine Sprache L M. Die Sprachen, die sich von endlichen Automaten beschreiben lassen, nennen wir reguläre Sprachen. Für sie stellen wir noch einen anderen Beschreibungsmechanismus bereit, die regulären Grammatiken. Diese beschreiben Sprachen nicht durch einen Lese- und Akzeptierungsmechanismus, sondern durch einen Erzeugungsprozess in der Art, wie die Syntaxdiagramme die Regeln aufzeigen, wie Pascalprogramme gebaut werden können. Wir zeigen, dass endliche Automaten und reguläre Grammatiken genau dieselbe Klasse von Sprachen beschreiben, indem wir Grammatiken in Automaten und Automaten in Grammatiken umbauen, ohne dass sich die zugehörige Sprache ändert. Weiter untersuchen wir Wege, wie wir zu einem minimalen Automaten kommen können, also demjenigen Automaten für eine reguläre Sprache L, der die geringste Anzahl von Zuständen hat. (Ein solcher Automat ist im wesentlichen eindeutig bestimmt.) Eine weitere wichtige Beschreibungsform für reguläre Sprachen sind durch die regulären Ausdrücke gegeben. Man begegnet einfachen regulären Ausdrücken, wenn man einen Editor eine komplexere Suchen nach Teilstrings in einer Datei durchführen lässt (z. B. mit wildcards und Wiederholungen von Teiltextstrukturen). Auch hier zeigen wir wieder exakt, das heißt mit einem mathematischen Beweis, dass diese Beschreibungsform äquivalent zu der mit endlichen Automaten ist. Die Untersuchung der regulären Ausdrücke und der von ihnen definierten Sprachen gibt uns Gelegenheit, die Methode der induktiven Definitionen etwas genauer unter die Lupe zu nehmen, die oft zur Abgrenzung von legalen Strukturen von illegalen benutzt wird, wie etwa, um die Menge aller korrekt gebildeten aussagenlogischen Formeln präzise zu beschreiben. Auch die Beschreibung der Menge der syntaktisch korrekten Pascal- Programme lässt sich als eine solche induktive Definition auffassen. Es stellt sich heraus, wiederum mit einem konstruktiven Umbau-Beweis, dass die Klasse der von regulären Ausdrücken beschreibbaren Sprachen wieder dieselbe ist wie die durch endliche Automaten beschreibbare. Wichtig sind mathematische Techniken, mit denen man beweisen kann, dass eine vorgegebene Sprache nicht regulär ist, man sich also die Suche nach einem sie beschreibenden Automaten sparen kann. Wir beweisen das sogenannte Pumping Lemma, das die wichtigste Technik für diesen Zweck darstellt. Mit dieser Technik lässt sich dann schnell und elegant unterscheiden, welche Aufgaben man von endlichen Automaten erledigen lassen kann und welche nicht. Der zweite Teil der Vorlesung ist der Betrachtung der kontextfreien Grammatiken und der zugehörigen Klasse der kontextfreien Sprachen gewidmet. Woher die merkwürdige 4

7 Bezeichnung stammt, werden wir im Verlauf der Vorlesung erklären. Hier sei nur gesagt, dass kontextfreie Grammatiken das Beschreibungsmittel sind, mit dem die Syntax aller Programmiersprachen definiert wird, die irgendeine Form von Klammerschachtelung zulassen (und das sind praktisch alle). Hinter den Pascal-Syntaxdiagrammen steckt eine kontextfreie Grammatik, ebenso wie hinter den mehr oder weniger formalen Beschreibungen C, C++, Java, Haskell, usw. in den entsprechenden Handbüchern. Auch XML, der aktuell praktisch extrem wichtige Formalismus zur Beschreibung semistrukturierter Daten, ist im wesentlichen ein System, in dem man für jede Anwendung eine eigene kontextfreie Grammatik überlegen muss. Wir definieren kontextfreie Grammatiken, untersuchen Syntaxbäume und Ableitungssequenzen, und betrachten wichtige Normalformen für Grammatiken. Ein Pumping Lemma für kontextfreie Sprachen erlaubt den Nachweis, dass bestimmte Sprachen nicht kontextfrei sind; hierzu gehört zum Beispiel die Sprache aller Texte, die durch Hintereinanderfügen eines Textes mit einer exakten Kopie entstehen (z. B. gehört das Wort abrakadabrakad zu dieser Sprache). Diese einfache Beobachtung führt zu der Erkenntnis, dass kontextfreie Grammatiken nicht ausreichen, um eine typische Eigenschaft von Pascal-Programmen auszudrücken, nämlich dass jede Variable, die irgendwo benutzt wird, vorher deklariert worden sein muss. (Hierfür gibt es dann gesonderte Kontextbedingungen, die man zusätzlich zu den Syntaxdiagrammen beachten muss.) Die Beschreibung der Menge der syntaktisch korrekten Programme ist eine Sache, die Syntaxanalyse und die Übersetzung in Maschinensprache (oder einen Zwischencode wie bei Java) eine andere. Hierfür braucht man Syntaxanalysemethoden, die im Fall von kontextfreien Grammatiken durch sogenannte Kellerautomaten geliefert werden. Auch dieses Modell wird ausführlich besprochen, und wir untersuchen im Prinzip, wie Kellerautomaten Wörter daraufhin untersuchen, ob sie zu einer von einer Grammatik beschriebenen Sprache gehören. Auch hier werden nichtdeterministische Automaten für Modellierungszwecke benutzt. Um eine Syntaxanalyse durch einmaliges Lesen des Textes zu erreichen, benötigt man Kellerautomaten, die in jeder Situation einen eindeutig bestimmten nächsten Schritt haben, was zu den deterministischen Kellerautomaten führt. Die Einzelheiten der Konstruktion von Syntaxanalyseverfahren aus einer kontextfreien Grammatik bleibt einer Spezialvorlesung zum Thema Übersetzerbau vorbehalten. Ausblick: Die Vorlesung Berechenbarkeit und Komplexitätstheorie im 5. Semester befasst sich zunächst mit der Theorie zur Berechenbarkeit und Entscheidbarkeit ; hier wird versucht, die Trennlinie zu verstehen zwischen Aufgaben, die man mit einem Computer im Prinzip lösen kann und solchen, die man nicht lösen kann. Das berühmteste von Computern unlösbare Problem, das Halteproblem, möchte wohl jeder Programmierer gerne gelöst haben: Gegeben ein Computerprogramm P und eine Eingabedatei D, hält P irgendwann an, wenn ich es mit den Daten aus D als Input füttere? In einem zweiten Teil ( NP-Vollständigkeit ) geht es um die Grenze zwischen Problemen, die von effizienten, das heißt, schnellen Algorithmen gelöst werden können, und solchen, für die es keine schnellen Algorithmen gibt. 5

8 0.2 Zur Arbeitstechnik Erfahrungsgemäß fällt es vielen Studierenden schwer, sich mit der Arbeits- und Denkweise anzufreunden, die in den beiden Theorie-Vorlesungen erwartet wird. Dabei fällt den meisten die Arbeit mit der AFS-Vorlesung noch leichter als die BKT-Vorlesung. Daher folgen hier einige aus der Erfahrung der mit diesen Vorlesungen und zugehörigen Übungen befassten Lehrpersonen fließende Ratschläge. (Sie klingen vielleicht banal, ihre Beachtung erhöht aber Ihre Erfolgschancen. Die Ratschläge sind nicht unbedingt leicht umzusetzen, erfordern also Ihre Aufmerksamkeit jede Woche neu.) Diese Vorlesung ist von der Dichte und der Art des Stoffs her nicht dafür geeignet, sie durch reines Zuhören zu verarbeiten. Eigenes Weiterarbeiten ist unabdingbar. Arbeiten Sie daher den Stoff jeder Vorlesung zeitnah nach. Material hierfür sind Ihre eigenen Notizen, das Skript im Web, ergänzendes Material von der Webseite, sowie weitere Literatur. Veranschlagen Sie hierfür mindestens 3 Zeitstunden pro Woche, also deutlich mehr als die Dauer der Vorlesung. Stil und Arbeitsweise sind mathematisch, und es kommt darauf an, dass man die Definitionen ganz genau ansieht und versteht. Es bestehen enge Zusammenhänge innerhalb eines Vorlesungsteils, aber auch über weitere Abstände. Man muss die relevanten Definitionen und Sachverhalte ( Sätze ) aus den vergangenen Vorlesungen auswendig parat haben, da man sonst die Dinge nicht verstehen kann, die darauf aufbauen. Wir geben alle 14 Tage ein Übungsblatt heraus. Überlegen Sie sich für einige oder alle Übungsaufgaben Lösungen, die dann mit den in der Übungsstunde angegebenen verglichen werden können. Studierende sind auch eingeladen, selbst Lösungen vorzutragen. Minimale Vorbereitung auf die Übung ist das Durchdenken der Aufgaben, damit man weiß, worum es geht. Auch für die Übungen gilt, dass zeitnahes Nacharbeiten und Kontrolle des eigenen Verstehens am meisten nützt. Stellen Sie Fragen (in oder nach der Vorlesung, in oder nach den Übungen). Bereiten Sie sich semesterbegleitend auf die Prüfung vor, die im Februar stattfindet. Gegenstand der Prüfung ist der Stoff der Vorlesung und die in den Übungen bearbeiteten Aufgabentypen. Für die Fragen zur Vorlesung ist es sehr hilfreich, wenn Sie sich eine eigene Kurzfassung mit den Definitionen und den zentralen Tatsachen anfertigen. Sie finden frühere Klausuren auf unseren Webseiten. Das schriftliche Lösen von Übungsaufgaben und früheren Klausuraufgaben, auch in der Nacharbeit der Übungen, ist die beste Prüfungsvorbereitung. 6

9 0.3 Literatur Zur Vorlesung erscheint ein Skript im ps- und pdf-format, das im Copyshop und auf der Webseite zur AFS-Vorlesung zu finden ist. Auf derselben Webseite findet sich auch weiteres Material (Übungsblätter, Links zu früheren Vorlesungen, frühere Klausuren, Kopien von Folien bzw. Präsentationsmaterialien, die in der Vorlesung benutzt wurden). Das Skript und die Folien gemeinsam definieren den prüfungsrelevanten Stoff der Vorlesung. Es wird aber allen Studierenden geraten, auch andere Darstellungen und Bücher zu Rate zu ziehen. Fast alle Bücher zum Thema decken den Stoff beider Vorlesungen (AFS und BKT) ab. Hier einige (bei weitem nicht alle) Bücher zum Stoff der Vorlesungen AFS und BKT: 1. J. E. Hopcroft, R. Motwani, J. D. Ullman: Einführung in die Automatentheorie, Formale Sprachen und Komplexitätstheorie. Pearson, (Klassiker in Neubearbeitung. Übersetzt aus dem Englischen. Sehr ausführlich, viele Anwendungen und Beispiele, mathematische Details; Übungsaufgaben.) 2. U. Schöning: Theoretische Informatik kurzgefasst. 4. Auflage. Spektrum Akademischer Verlag, (Sehr kompakt, konzentriert sich auf die wesentlichen Techniken. Viele Exemplare in der Lehrbuchsammlung.) 3. I. Wegener: Theoretische Informatik eine algorithmenorientierte Einführung. 3. Auflage. Teubner, (Verwandt zur Vorlesung, aber anderer Stil. Beginnt mit BKT-Stoff, dann AFS- Stoff.) 4. I. Wegener: Kompendium Theoretische Informatik eine Ideensammlung. Teubner, (Ergänzung zur Vorlesung, erläutert Konzepte und übergreifende Ideen.) 5. G. Vossen, K.-U. Witt, Grundkurs Theoretische Informatik, 3. Auflage, Vieweg, (Dieses Buch entwickelt die Theorie, legt aber auch großen Wert auf die Darstellung von Anwendungsbeispielen.) 6. A. Asteroth, C.Baier: Theoretische Informatik Eine Einführung in Berechenbarkeit, Komplexität und formale Sprachen mit 101 Beispielen. Pearson Studium, (Theoretische Informatik, wie sie an der Universität Bonn gelehrt wird. Viele Beispiele, aber mathematisch genaue Entwicklung.) 7

10 7. D. C. Kozen: Automata and Computability. Springer, (Amerikanische Version des Themas.) 8. K. W. Wagner: Theoretische Informatik Eine kompakte Einführung. 2. Auflage. Springer, (Theoretische Informatik, wie sie an der Universität Würzburg gelehrt wird. Deutlich mehr Gewicht auf der Berechenbarkeitstheorie mit Maschinenmodellen.) 9. N. Blum: Einführung in Formale Sprachen, Berechenbarkeit, Informations- und Lerntheorie. Oldenbourg, (Kombination des Stoffs der Vorlesung mit einer Einführung in das Gebiet der Informationstheorie, exakte Durchführung der Beweise.) Zu Informatik- und Mathematik-Grundlagen: 1. A. Aho, J. D. Ullman. Informatik: Datenstrukturen und Konzepte der Abstraktion. International Thomson Publishing, Ehrig, Mahr, Cornelius, Große-Rhode, Zeitz: Mathematisch-strukturelle Grundlagen der Informatik. Springer, C. Meinel, M. Middendorf: Mathematische Grundlagen der Informatik Mathematisches Denken und Beweisen. Teubner, Website: 1. Lernumgebung Automatentheorie, Universität Zürich, Skript und Automaten zum Selberbasteln. Weiterführende Literatur: 1. A. Aho, R. Sethi, J. D. Ullman. Compilerbau Teil 1. Oldenbourg, R. Floyd, R. Beigel. Die Sprache der Maschinen. International Thomson Publishing, J. Hromkovič: Theoretical Computer Science Introduction to Automata, Computability, Complexity, Algorithmics, Randomization, Communication, and Cryptography. Springer, H. Lewis, C. Papadimitriou: Elements of the Theory of Computation. Prentice Hall, R. Wilhelm, D. Maurer: Übersetzerbau Theorie, Konstruktion, Generierung. Springer,

11 Kapitel 1 Grundbegriffe 1.1 Alphabete und Sprachen Vereinbarung N bezeichnet die Menge {0, 1, 2, 3,...} der natürlichen Zahlen. Für die Menge {1, 2, 3,...} der positiven natürlichen Zahlen schreiben wir N Definition Für eine beliebige Menge X, X, bezeichnet Seq(X) die Menge der endlichen Folgen oder Tupel in X, d. h. die Menge {(a 1,...,a n ) n 0, a 1,...,a n X}. (Im Gegensatz dazu ist X N = {(a i ) i 0 a i X für i 0} die Menge der unendlichen Folgen in X.) Beispiel Wir können endliche Tupel aus natürlichen Zahlen betrachten: Die Menge Seq(N) enthält ( ) (die leere Folge mit Länge 0), (0), (1),..., (0, 0), (0, 1), (0, 2),..., (1, 0), (1, 1), (1, 2),..., (3, 4, 4, 2),... In höheren Programmiersprachen wie Pascal, C, Java, usw. wird anscheinend mit Zahlen gerechnet. Bei genauerem Hinsehen stellt sich heraus, dass reale Rechner dies gar nicht tun. Vielmehr operieren sie auf Bitfolgen (der Inhalt des Hauptspeichers eines Rechners etwa ist eine Bitfolge, ebenso Dateiinhalte). Zahlen muß man binär kodieren. Auch wir werden uns meist auf den Standpunkt stellen, dass Maschinen nur Zeichenreihen mit Zeichen aus einem endlichen Zeichensatz bearbeiten können. Im Anhang Zahldarstellungen und Abzählungen (A.1) werden die Prinzipien des Umrechnens von Zahlen in Zeichenreihen und umgekehrt besprochen. An dieser Stelle geben wir einige allgemeine Grundkonzepte für solche Zeichenreihen (synonym: Wörter, Strings, Zeichenketten) an. 9

12 1.1.4 Definition Ein Alphabet Σ ist eine endliche nichtleere Menge. (Alphabete werden oft auch mit, Γ,... bezeichnet.) Die Elemente eines Alphabets heißen Buchstaben. Typische konkrete Buchstaben sind: 0, 1, 2,..., a,b,c,...,a,b,c,...,#, /c,$,... Die Symbole a,b,...,a 0,a 1,a 2,... werden auch als Platzhalter für beliebige Buchstaben verwendet Beispiel (a) Die Menge {1} oder { } heißt das unäre Alphabet. Die Menge Σ = {0, 1} heißt das binäre Alphabet. Die Menge {0, 1,#} ist das binäre Alphabet mit Trennzeichen #. (b) Die Menge Γ = {0, 1} 8 ist das Alphabet aller 8-Bit-Strings (Bytes). Der einfache ASCII-Code gibt eine injektive Abbildung einer Menge von natürlichen Buchstaben, Ziffern, und Symbolen (d. h. eines gewissen Alphabets) in {0, 1} 7 an. Diese Darstellung wird dann durch eine führende Null zu einem Byte ergänzt. Der volle ASCII-Code hat 256 Buchstaben, unter ihnen auch jede Menge (unsichtbare) Steuerzeichen. (c) Das lateinische Alphabet besteht aus 26 Groß- und 26 Kleinbuchstaben. Hinzu kommen eine Reihe von Sonderzeichen wie die Satzzeichen und der Zwischenraum. (d) Natürlich sind Alphabete Σ und Σ gleichwertig, wenn Σ = Σ gilt, es also eine bijektive Abbildung von Σ nach Σ gibt. Jedes Alphabet Σ mit k Buchstaben ist mit {1, 2,...,k} und {0, 1,...,k 1} gleichwertig. Die Schreibweise Σ = {b 1,b 2,...,b k } bzw. Σ = {b 0,b 1,...,b k 1 } stellt die entsprechende Korrespondenz her Definition Σ sei ein Alphabet. Für n N bezeichnet Σ n die Menge aller Folgen w = (a 1,...,a n ) aus n Buchstaben aus Σ. Statt (a 1,...,a n ) schreiben wir a 1 a n, falls keine Verwirrung möglich ist 1. Eine solche Folge w nennen wir ein Wort über Σ (synonym: Zeichenreihe, Zeichenkette oder String über Σ). Die Länge von w, bezeichnet mit w, ist n. Offenbar gibt es genau Σ n Wörter der Länge n über Σ. Die Menge aller Wörter über Σ wird folgendermaßen bezeichnet: Σ := {Σ n n N}. Natürlich ist Σ = Seq(Σ). Ein besonderes Wort ist ε, das leere Wort, das einzige Wort der Länge 0 über Σ. Formal: ε = ( ), die leere Folge. 1 Sind die Buchstaben in Σ selbst Wörter, muss man natürlich die Fugen markieren: z.b. w = (11,7,9,13,20) bei Σ = {0,...,31} oder w = del1 text del2 bei Σ = {del1,text,del2,...}. Treten (, ) und das Komma als Buchstaben auf, verhindert man Missverständnisse gegebenenfalls durch Einschließen in Anführungszeichen (, ),, oder dergleichen. 10

13 Beachte: Σ 0 = {ε}, Σ 1 = Σ. (Man identifiziert das 1-Tupel (a) mit dem Objekt a und erhält Σ 1 = {(b) b Σ} = Σ.) Mit dieser Vereinbarung ist dann stets Σ Σ. Die Menge aller nichtleeren Wörter über Σ heißt Σ + : Beispiel Σ + := Σ {ε} = {Σ n n 1}. (a) Σ = {1} : Dann ist Σ = {ε, 1, 11, 111, 1111, 11111,...} = {0, 1, 2, 3, 4, 5,...}. (Die Bijektion } 1 {{ 1} k liefert die Strichlistendarstellung oder unäre Darstellung k mal für die natürlichen Zahlen.) (b) Σ = {0, 1} : Dann ist Σ = {ε, 0, 1, 00, 01, 10, 11, 000, 001,...}, die Menge aller Binärwörter. (c) Ein ASCII-File ist ein Wort über Σ = {0, 1} 8. Man beachte dabei, dass bei der rechnerinternen Darstellung die unsichtbaren Leerzeichen als Buchstabe ( space ) gelten und Zeilenumbrüche durch Steuerzeichen markiert werden, die selbst Buchstabe im ASCII-Alphabet sind Definition Sind u = (a 1,...,a n ) und v = (b 1,...,b m ) Wörter (über einem Alphabet Σ), so heißt u v := (a 1,...,a n,b 1,...,b m ) (ein Wort der Länge n+m) die Konkatenation oder Hintereinanderschaltung von u und v. Kurz: a 1 a n b 1 b m = a 1 a n b 1 b m. Manchmal findet man auch die Notation u v für diese Operation. Normalerweise lässt man das Operationszeichen weg und schreibt uv statt u v Beispiel = = ε 11 = ε 11 = ε = 10 ε = 10 εε = ε ε = ε ε = ε Bemerkung Die Menge Σ ist mit der Operation (Konkatenation) ein Monoid mit neutralem Element ε, d.h. es gelten die folgenden Beziehungen: (i) Assoziativität: (uv)w = u(vw) für alle u,v,w Σ. (ii) Neutrales Element: εu = uε = u für alle u Σ. 11

14 Beispiel (00 10) 111 = (10 111) = ε = ε 100 = 100 ε ε = ε Konsequenz: Bei Konkatenation kann man Klammern beliebig setzen oder alle Klammern weglassen. Man schreibt also für (00 01) 101 oder 00 (01 101) Definition Für ein Wort w = a 1 a n Σ und einen Buchstaben a Σ sei w a := die Häufigkeit des Auftauchens von a in w := {i 1 i n a i = a}. Beispiele: = 4; = 3; = 0. Offenbar gilt: uv a = u a + v a (und ähnliche Formeln) und w = k i=1 w b i, wenn Σ = {b 1,...,b k } ist Definition Ist w Σ ein Wort und i N, so wird mit w i die i-fache Konkatenation von w mit sich selbst bezeichnet, d.h. w i = ww } {{ w}. Formal definieren wir i mal induktiv: w 0 := ε w i := ww i 1, für i 1. Da Σ Σ, ist damit auch a i für Buchstaben a Σ erklärt. Informal: a i = a } {{ a}, für i mal i 0. Man beachte die Gleichheiten a 0 = ε und a 1 = a, sowie ε i = ε für beliebiges i 0. Wir vereinbaren folgende Prioritätsregel beim Zusammentreffen von Konkatenation und Potenzierung: Potenzieren bindet stärker als Konkatenation. Um dies aufzuheben, sind geeignet Klammern zu setzen. Beispiele: Sei Σ = {0, 1}. Ist a = 0 und w = 101, dann gilt a 0 = w 0 = ε, a 6 = , w 3 = Weiter gilt = , (00)(01) 2 0 = und (0001) 2 0 = Definition u und w seien Wörter über Σ. Dann heißt u ein Teilwort Präfix oder Anfangsstück Suffix oder Endstück von w, falls v 1,v 2 Σ : w = v 1 uv 2 v Σ : w = uv v Σ : w = vu Beachte: Wenn u ein Präfix (oder Suffix) von w ist, ist u auch Teilwort von w, da w = εuv (oder w = vuε) geschrieben werden kann. Es ist klar, dass jedes w Σ n genau n + 1 Präfixe und n + 1 Suffixe hat, unter denen sich jeweils auch w selbst und ε befinden. 12.

15 Beispiel 0000 ist Teilwort von , aber weder Präfix noch Suffix ist Präfix von und Suffix von ; daher ist 0000 auch Teilwort von und Definition (a) Wenn Σ ein Alphabet ist und L Σ, dann heißt L eine (formale) Sprache über Σ. (b) Eine Menge L heißt eine (formale) Sprache, wenn es ein Alphabet Σ mit L Σ gibt. Im Zusammenhang mit dieser Vorlesung bedeutet Sprache immer dasselbe wie formale Sprache. Sprachen interessieren uns in zweierlei Hinsicht: einmal als Formalisierung des Begriffs eines Berechnungsproblems (dieser Aspekt wird in der Vorlesung Berechenbarkeit und Komplexitätstheorie im Vordergrund stehen), hier aber zunächst als Gegenstände der Theorie der formalen Sprachen. Charakteristisch am Umgang mit Sprachen in der Informatik ist, dass die dort vorkommenden Sprachen meist unendlich viele Wörter enthalten (man denke etwa an die Menge der syntaktisch korrekten Pascal-Programme). Eine unendliche Sprache kann man nicht durch Auflisten ihrer Elemente angeben, sondern immer nur dadurch, dass man eine endliche Menge von Regeln angibt, anhand derer man entscheiden kann, welche Wörter dazu gehören und welche nicht. In dieser Vorlesung werden viele solche Beschreibungsmethoden angegeben und der Umgang mit ihnen geübt. Wir werden als Beschreibungsform (Spezifikation) von Sprachen hauptsächlich Grammatiken betrachten, aber auch Maschinenmodelle untersuchen, die die Analyse von vorgelegten Wörtern durchführen können, im Hinblick darauf, ob sie zu einer Sprache gehören oder nicht. Wenn L eine Sprache über Σ ist, so gehört zu L in ganz natürlicher Weise ein Entscheidungsproblem, nämlich: Wortproblem für L: Eingabe: w Σ. Ausgabe: JA, falls w L, NEIN sonst. Umgekehrt kann man normalerweise Entscheidungsprobleme als Wortprobleme über passenden Sprachen formulieren. Dieser Zusammenhang wird aber erst in der Vorlesung BKT wichtig werden Beispiel (a) L = heißt die leere Sprache; L ε = {ε} ist die Sprache, die nur das leere Wort enthält. L und L ε sind Sprachen über Σ für jedes Alphabet Σ. Für jedes beliebige 13

16 Alphabet Σ ist Σ Σ, also ist die Menge Σ eine Sprache; für n N beliebig ist Σ n eine Sprache, Σ ist Sprache über Σ. Für a Σ ist {a n n N} Sprache über Σ. (b) Sei Σ = {0, 1} das binäre Alphabet. Dann ist Σ + = die Sprache aller nichtleeren Bitstrings; Σ 8 ist die Sprache, die genau die 256 verschiedenen Bytes enthält; Σ 32 ist die Sprache, die alle 32-Bit-Wörter enthält. Einem Binärwort w = b k 1 b 0 Σ k entspricht die Zahl (w) 2 = k 1 i=0 b i2 i (Umrechnung von Binärdarstellung in natürliche Zahl). Ist i N, so heißt ein Wort w mit w 1 und (w) 2 = i eine Binärdarstellung von i. Das kürzeste solche Wort w (außer für (0) 2 = 0 hat das Wort w als erstes Zeichen eine 1) heißt oft die Binärdarstellung von i und wird mit bin(i) bezeichnet. Für i N nennen wir 1 i die Unärdarstellung von i. Offenbar ist die Abbildung N i 1 i {1} eine Bijektion. Eine (recht natürliche) Bijektion N {1, 2} wird in Abschnitt A.1.2 im Anhang vorgestellt. (c) Man kann nun mathematische und andere Probleme als Wortprobleme über passenden Sprachen darstellen, z. B. L gerade = {0, 10, 100, 110, 1000, 1010, 1100,...} = {bin(n) {0, 1} n gerade}. L bin = {0, 1, 10, 11, 100, 101, 110, 111, 1000, 1001,...} = {bin(n) n N}. L prim = {10, 11, 101, 111, 1011, 1101, 10001, 10011,...} = {bin(p) p Primzahl}. L Primzahlzwillinge = {bin(i)#bin(j) i,j N,i + 2 = j,i,j Primzahl}. Dabei heißt ein Paar (i,i + 2) ein Paar von Primzahlzwillingen, wenn sowohl i als auch i + 2 Primzahlen sind. Zum Beispiel sind (3, 5), (5, 7), (11, 13), (17, 19) solche Paare. Es ist ein berühmtes offenes Problem der Zahlentheorie, herauszufinden, ob es unendlich viele solche Paare gibt. L Primzahlzwillinge ist eine Sprache über dem Alphabet {0, 1,#}. Das Problem Gibt es unendlich viele Primzahlzwillinge? lässt sich dann schreiben als die Frage Ist L Primzahlzwillinge unendlich? Wenn Σ Σ ist, so ist selbstverständlich jede Sprache über Σ automatisch auch Sprache über Σ. Wir werden dies im folgenden oft stillschweigend benutzen. Insbesondere kann man bei beliebigen Sprachen L 1 (über Σ 1 ) und L 2 (über Σ 2 ) immer annehmen, dass dasselbe Alphabet zugrundeliegt: man wählt einfach Σ = Σ 1 Σ Bemerkung Die Gesamtheit aller Sprachen über Σ riesig, nämlich überabzählbar unendlich. (Dies gilt für jedes Alphabet Σ, selbst wenn Σ = {0} ist, also Σ nur ein Element hat.) Daher werden wir nur sehr wenige Sprachen überhaupt zu sehen bekommen. Behauptung: Für jedes Alphabet Σ ist L Σ = {L L Σ } eine überabzählbare Menge. Wir bemerken zunächst, dass aus Korollar A.1.12 im Anhang folgt, dass wir die Elemente von Σ aufzählen können: Σ = {w 0,w 1,w 2,w 3,...}. 14

17 Die Mengen {w 0 }, {w 1 }, {w 2 },... sind Elemente von L Σ, also ist diese Menge sicher unendlich. Nun sei L 0,L 1,L 2,... irgendeine Aufzählung von (einigen) Elementen von L Σ. Wir definieren L := {w i w i / L i }. Es ist klar, dass L eine Teilmenge von Σ ist, also eine Sprache. Kann L in der Folge L 0,L 1,L 2,... vorkommen? Nun, für jedes j N gilt: w j L j w j / L, also L j L. Daher kommt L nicht in L 0,L 1,L 2,... vor. Das bedeutet, dass keine Aufzählung ganz L Σ erfassen kann, also kann L Σ nicht abzählbar sein Definition (a) Sind L 1 und L 2 Sprachen, so heißt L 1 L 2 := {w 1 w 2 w 1 L 1,w 2 L 2 } (auch L 1 L 2 oder L 1 L 2 ) die Konkatenation von L 1 und L 2. Beispiele: {0} {1} = {0 i 1 j i,j 0}, {0} {1}{0, 1} = L bin. Beachte: Die Konkatenation ist assoziativ, d. h. für beliebige Sprachen L 1,L 2,L 3 gilt (i) (L 1 L 2 )L 3 = L 1 (L 2 L 3 ). Weiter gilt (ii) L ε L = LL ε = L für jede Sprache L. (Damit ist für jedes Alphabet Σ die Menge {L L Σ,L } der nichtleeren Sprachen über Σ ein Monoid mit neutralem Element L ε.) Andererseits ist L ein auslöschendes Element, denn es gilt L L = LL = L = für jede Sprache L. Beweis von (i): Wenn w (L 1 L 2 )L 3, dann ist w = w w 3 für ein w L 1 L 2 und w 3 L 3. Weiter ist dann w = w 1 w 2 für ein w 1 L 1 und ein w 2 L 2. Damit ist w 2 w 2 L 2 L 3, also w = w 1 (w 2 w 3 ) L 1 (L 2 L 3 ). Insgesamt haben wir gezeigt: (L 1 L 2 )L 3 L 1 (L 2 L 3 ). Die umgekehrte Richtung zeigt man ähnlich. Beweis von (ii): Wenn w L ε L, dann ist w = ε w für ein w L. Da ε neutrales Element ist, folgt w = w, also w L. Wenn umgekehrt w L ist, dann ist w = ε w L ε L. 15

18 (b) Ist L Sprache, so definieren wir: L i := {w 1 w 2 w i w 1,...,w i L}, für i 0. Formal definieren wir induktiv: L 0 := L ε ; L i := LL i 1 für i 1. Man beachte, dass {w i w L} L i ist, dass aber gewöhnlich nicht Gleichheit herrscht, wie man etwa an dem Beispiel {01, 10} 2 = {0101, 0110, 1001, 1010} = {0101, 1010} sieht. Weiter sei L := {L i i 0} = L 0 L 1 L 2 L 3 Diese Sprache heißt der Kleene-Abschluss von L. Weiter sei L + := {L i i 1} = L 1 L 2 L 3. In Worten: L enthält die Wörter w der Form w = w 1 w i, i 0, wobei w 1,...,w i L; L + enthält die Wörter w = w 1 w i, i 1, wobei w 1,...,w i L sind. Zur Übung überlege man, dass L + = LL = L L ist. Man beachte den Unterschied zwischen L und {w i w L,i 0}. Für die Sprache L = {0, 11} ist zum Beispiel das Wort = 0(11)00(11)(11)0(11) in L enthalten, nicht aber in {w i w L,i 0}. (c) Sprachen lassen natürlich auch alle Mengenoperationen zu, insbesondere folgende: Sind L 1,L 2 Sprachen, so auch die Vereinigung L 1 L 2 und der Durchschnitt L 1 L 2. Ist L Sprache über Σ, kann man auch das Komplement L = Σ L betrachten. L ist neutrales Element bezüglich Vereinigung: L L = L L = L. Für Sprachen über Σ ist Σ neutrales Element bezüglich Durchschnitt: L Σ = Σ L = L Beispiel Betrachte L 1 = {w {0, 1} w 0 = w 1 } und L 2 = {0} {1} = {0 i 1 j i,j 0}. Dann ist und L 1 L 2 = {0 i 1 j i = j} = {ε, 01, 0011, ,...} L 1 = {w {0, 1} w 0 w 1 }. 16

19 Sprechweise: Oft betrachtet man die Gesamtheit aller Sprachen mit einer gewissen Eigenschaft. Dann sprechen wir gewöhnlich von einer Klasse von Sprachen (nicht von einer Menge). Beispiele hierfür: Die Klasse aller Sprachen, die Klasse der unendlichen Sprachen, die Klasse der Sprachen über einem einelementigen Alphabet, die Klasse der regulären Sprachen. Für Mathematikfans und Puristen sei kurz der Hintergrund erklärt: In der Mengenlehre zeigt man, dass die Gesamtheit aller Mengen selber keine Menge ist. Daraus ergibt sich sofort, dass die Gesamtheit aller Alphabete keine Menge sein kann, und auch nicht die Gesamtheit aller formalen Sprachen. Für Gesamtheiten, die man definieren kann, die aber keine Mengen darstellen, benutzt man in der Mengenlehre die Bezeichnung (echte) Klasse. Für den Gebrauch in dieser Vorlesung macht diese Feinheit aber keinen Unterschied. Die Bemerkung in Beispiel 1.1.5(d) zeigt, dass man sich immer auf ein Normalalphabet {b 1,...,b k } zurückziehen kann. 17

20 Kapitel 2 Endliche Automaten und reguläre Sprachen Die regulären Sprachen ( regular sets ) sind die einfachsten formalen Sprachen. Wir werden Maschinenmodelle kennenlernen ( endliche Automaten in verschiedenen Varianten), die diesen Sprachen entsprechen, und andere Methoden, diese Sprachen zu beschreiben ( reguläre Ausdrücke und reguläre Grammatiken ). Wir wollen uns anhand der regulären Sprachen exemplarisch die Übergänge zwischen verschiedenen Beschreibungsformen für dieselbe Sprache klarmachen, und für diese Übergänge soweit wie möglich effiziente Algorithmen bereitstellen. Zudem wird sich zeigen, dass man für jede reguläre Sprache algorithmisch einen effizientesten Automaten konstruieren kann. Ebenso wichtig wie das Konzept der regulären Sprache ist das Konzept des Automaten selbst, das in vielen verschiedenen Teilbereichen der Theoretischen, der Praktischen und der Technischen Informatik Anwendung findet. Erinnert sei an die Vorlesung Rechnerorganisation, in der schon endliche Automaten untersucht wurden Deterministische endliche Automaten In diesem Abschnitt besprechen wir das für die regulären Sprachen grundlegende Maschinenmodell: die deterministischen endlichen Automaten ( deterministic finite automata, abgekürzt DFA ). Diese Automaten erhalten ein Eingabewort x = b 1 b m Σ (für ein Alphabet Σ) vorgelegt, das einmal von links nach rechts gelesen wird. Endliche Automaten haben eine Steuereinheit (engl. finite control), die eine endliche Speicherkapazität repräsentiert und abstrakt durch eine endliche Menge Q von Zuständen gegeben ist. Einer der Zustände ist als Startzustand ausgezeichnet (bezeichnet mit q 0 ). Startend in p 0 = q 0, liest der DFA einen Buchstaben des Eingabewortes nach dem anderen und geht dabei in jedem Schritt in Abhängigkeit vom alten Zustand p t 1 und dem 1 Im Gegensatz zur dortigen Darstellung ist es für unsere Zwecke nicht wichtig, ob die Eingabezeichen und die Zustände binär oder anders dargestellt werden. 18

21 gerade gelesenen Buchstaben a t in einen Zustand p t über, für t = 1, 2,...,m. Welcher Zustand jeweils anzunehmen ist, wird von einer Übergangsfunktion δ : Q Σ Q vorgeschrieben (δ(q,a) = q bedeutet: wird in Zustand q der Buchstabe a gelesen, so ist der neue Zustand q ). Am Ende der Berechnung, d. h. sobald der letzte Buchstabe b m gelesen wurde, wird (nur!) anhand von p m, dem schließlich erreichten Zustand, entschieden, ob x = b 1 b m akzeptiert oder verworfen werden soll. Dazu wird eine Menge F Q (die akzeptierenden Zustände) benutzt. Hinter dem Modell des deterministischen endlichen Automaten steht das etwas allgemeinere Konzept eines finite state system : ein System mit endlich vielen Zuständen (Menge Q), das mit einer Folge von Signalen aus einem endlichen Vorrat Σ von Signalen gefüttert wird und auf jedes Signal mit dem Übergang in einen durch alten Zustand und Signal eindeutig bestimmten nächsten Zustand reagiert. Wenn man noch einen Startzustand q 0 spezifiziert ( Reset-Zustand ), so bestimmt jede Signalfolge (b 1,...,b m ) Σ eine Folge von Zuständen, die das System durchläuft. Dieses Modell lässt sich auch durch eine Ausgabefunktion erweitern, so dass etwa in jedem Schritt ein Ausgabesignal oder eine endliche Folge von Ausgabesignalen erzeugt wird (Moore- und Mealy-Automaten). Wir stellen die Bearbeitung eines Eingabewortes durch einen DFA wie folgt graphisch dar: b b p =q p 2 b 1 p m pm 2 F? Start... Abbildung 2.1: Ablauf einer Berechnung auf einem DFA Die Folge der durchlaufenen Zustände p 0,...,p m wird als (gerichteter) Weg dargestellt, wobei natürlich Wiederholungen möglich sind. Die Kante vom Knoten p t 1 zum Knoten p t ist mit b t markiert. Wir geben nun eine präzise Definition von DFA s und ihrer Arbeitsweise Definition Ein deterministischer endlicher Automat ( deterministic finite automaton DFA) M besteht aus 5 Komponenten: einer endlichen Menge Q (der Zustandsmenge ); einem Alphabet Σ (dem Eingabealphabet ); einem ausgezeichneten Zustand q 0 Q (dem Startzustand ); einer Menge F Q von akzeptierenden Zuständen; einer Übergangsfunktion δ : Q Σ Q. (Formal schreibt man M = (Q, Σ,q 0,F,δ).) 19

22 Wenn ein DFA M = (Q, Σ,q 0,F,δ) gegeben ist, dann kann man ein beliebiges Eingabewort b 1 b m von M verarbeiten lassen und am Ende nachsehen, ob der erreichte Zustand p m in F liegt oder nicht Beispiel Wir beschreiben einen DFA, der genau die Dezimalzahlen akzeptiert, deren Wert nicht durch 3 teilbar ist. Nach einer bekannten Rechenregel gilt: N = (b 1 b m ) 10 ist durch 3 teilbar genau dann wenn die Quersumme der Dezimaldarstellung b 1 b m von N durch 3 teilbar ist, d. h. wenn 1 i m b i 0 (mod 3) ist. Wir geben nun einen Automaten an, der eine Dezimalzahl (auch mit führenden Nullen) ziffernweise von links nach rechts liest und dabei (in der Steuereinheit) die Quersumme der bislang gesehenen Ziffern modulo 3 speichert. Wir setzen M = (Q, Σ,q 0,F,δ) mit Q = {0,1,2} (die möglichen Reste), Σ = {0, 1,...,9}, q 0 = 0, F = {1,2}; δ ist durch folgende Tabelle gegeben: δ: a q Tabelle 2.1: Tabellendarstellung eines DFA Wir sehen uns an, wie der DFA auf der Eingabe w = arbeitet. Es werden die Zustände 0, 0, 1, 2, 2, 0 durchlaufen und schließlich 2 erreicht. Da 2 F, wird das Eingabewort w akzeptiert. Man bemerkt, dass man aus der Berechnung auch erfährt, i b i p i F? Tabelle 2.2: Arbeitsweise eines DFA dass das leere Wort ε nicht akzeptiert wird, ebenso wie die Ziffernfolge Dem Leser wird geraten, als weiteres Beispiel die von M auf den Eingaben u = durchlaufene Zustandsfolge anzusehen. (u wird nicht akzeptiert.) Man überzeugt sich leicht (per Induktion über t), dass M nach dem Lesen von b 1,...,b t im Zustand ( 1 i t b i) mod 3 ist, sich also die Quersumme modulo 3 merkt. Aufgrund der Festlegung von F gilt dann, dass M genau die Wörter akzeptiert, die Zahlen darstellen, die nicht durch 3 teilbar sind. 20

23 2.1.3 Bemerkung Wir geben verschiedene nützliche Darstellungsweisen für endliche Automaten an. (a) Tabellenform: Man hat die Mengen Q und Σ durch Auflistungen gegeben, ebenso F; weiter ein Element q 0 Q. Die Übergangsfunktion δ ist als Tabelle ( Q Σ -Matrix) gegeben: Der Eintrag am Schnittpunkt der Zeile für q Q mit der Spalte für a Σ ist δ(q,a) Q. Als Beispiel betrachte man Tabelle 2.1. Diese Form ist besonders gut zur Ausführung der Berechnungen von DFA s und zur Manipulation von DFA s auf Rechnern geeignet. Die dazu benötigten Datenstrukturen möge man sich selbst zurechtlegen. (Arrays für Σ und Q, ein Bitvektor für F, ein Index für q 0, ein zweidimensionales Array mit Einträgen aus Q für δ. Wenn ein Eingabewort verarbeitet wird, muss nur ein Zustand, d. h. ein Index im Q-Array, gespeichert werden.) (b) Beschreibung durch Formeln: Mitunter ist Q so groß, dass eine explizite Auflistung nicht in Frage kommt. Man denke etwa an ein 32 Bit breites Register, auf das eine Folge (b 1,...,b m ) von 30-Bit-Zahlen aufaddiert werden soll (modulo 2 32 ). Der Zustand ist der Inhalt des Registers, ein Eingabe- Buchstabe ist ein 30-Bit-String. Also ist Q = {0, 1}32 und Σ = {0, 1} 30. Die Tabelle hätte Größe , Man schreibt aber einfach: δ(q,a) = die Binärdarstellung (mit 32 Bits) von ((q) 2 + (a) 2 ) mod 2 32, für q Q und a Σ; damit erübrigt sich das Berechnen und Speichern der Tabelle. Der Startzustand q 0 ist eventuell das Wort 0 32 ; wie die Menge F zu wählen ist, hängt von der Anwendung ab. (c) Graphenform: Man kann einen DFA M als einen gerichteten Graphen G M mit Knoten- und Kantenmarkierungen auffassen. Jedem Zustand q Q entspricht ein Knoten v q mit Markierung q. Die (gerichteten) Kanten in G M sind mit Buchstaben a Σ markiert. Dabei verläuft eine mit a markierte Kante von v q nach v q genau dann wenn δ(q,a) = q. Beachte, dass G M Mehrfachkanten (mit verschiedenen Markierungen) und Schleifen (Kanten mit demselben Anfangs- und Endpunkt) besitzen kann. Jeder Knoten in G M hat genau Σ viele ausgehende Kanten. 21

24 a q q Einfachkante δ(q,a)=q d b q a b d q Mehrfachkante δ(q,a)=δ (q,b)=δ(q,d)=q a q c Schleife δ(q,a)=δ (q,c)=q Abbildung 2.2: Graphische Darstellung eines DFA Eine Tabelle für δ wie in (a) ist einfach eine kompakte Beschreibung von G M. Die Knoten v q0 und v q,q F, sind speziell markiert. Wenn wir G M zeichnen, markieren wir v q0 mit einem mit Start bezeichneten eingehenden Pfeil; die Knoten v q mit q F erhalten einen doppelten Rand: Start q 0 q Abbildung 2.3: Startknoten (links) und Knoten für einen akzeptierenden Zustand (rechts) Bei der graphischen Darstellung vermeiden wir Mehrfachkanten von v q nach v q dadurch, dass wir nur eine Kante angeben und diese mit den Elementen der Menge {a Σ δ(q,a) = q } bzw. einer Abkürzung für diese Menge markieren. Der große Vorteil der Darstellung von endlichen Automaten als Graphen liegt neben der anschaulicheren Darstellung darin, dass DFA s mit Graphenalgorithmen bearbeitet werden können. Wir werden die Graphensichtweise oft verwenden. Als graphische Darstellung des Automaten aus Beispiel ergibt sich folgendes: Start 0,3,6,9 2,5,8 0,3,6,9 2,5,8 0 1,4,7 1 1,4,7 2 1,4,7 2,5,8 0,3,6,9 Abbildung 2.4: Graphische Darstellung eines DFA 22

25 Die akzeptierende Berechnung von M auf der Eingabe x = wird wie folgt dargestellt: Start Abbildung 2.5: Eine akzeptierende Berechnung Man sieht, dass jedes Wort w = b 1 b m einen Weg in G M beschreibt, der in v q0 beginnt und dessen Kanten mit den Buchstaben b 1,...,b m beschriftet sind. Dieser Weg ist eindeutig bestimmt, weil δ eine Funktion ist. Die Darstellung der Berechnung wie in Abb. 2.1 ergibt sich dabei als abgewickelte Version dieses Weges, wobei die Knoten wiederholt werden. Das Wort w wird genau dann akzeptiert, wenn der von w in G erzeugte Weg in einem Knoten v q mit q F endet Beispiel Sei Σ = B Z, wo B = {a,...,z,a,...,z} die Menge der Buchstaben und Z = {0,..., 9} die Menge der Dezimalziffern ist. Weiter sei L := BΣ (= {w Σ w beginnt mit einem Buchstaben}) die Menge der legalen Bezeichner ( identifier ), z. B. in Pascal. Zum Beispiel sindeagle15 und afs2005 in L, nicht jedoch 1E oder ε. Der folgende Automat M = (Q, Σ,q 0,F,δ) akzeptiert genau die Wörter in L: Q = {0, 1, 2},F = {1},q 0 = 0, und δ gegeben durch folgendes Diagramm: Start 0 B Z 1 2 Σ Σ Abbildung 2.6: DFA mit Fehlerzustand 2 2 Σ Bemerkenswert an diesem Diagramm ist der Knoten v 2 : Ein solcher Knoten stellt einen Fehlerzustand dar. Wird während der Verabeitung eines Eingabewortes einmal dieser Zustand erreicht, kann er nie mehr verlassen werden, und der Automat wird garantiert verwerfen. Mitunter lässt man in der graphischen Darstellung von DFA s solche Fehlerzustände und die in sie hineinführenden Kanten weg. Das sieht dann so aus: Start 0 B 1 Σ Abbildung 2.7: DFA aus Abb. 2.6, Fehlerzustand weggelassen 23

26 Wenn beim Lesen eines Wortes w versucht wird, eine nicht vorhandene Kante zu benutzen, ist man schon sicher, dass w nicht akzeptiert wird. Wir wenden uns nun der mathematischen Definition der zu einem DFA M gehörenden Sprache zu. Man definiert, in welchen Zustand M gerät, wenn er in einem beliebigen Zustand q startet und das Wort w = b 1 b m,m 0, liest, und sieht nach, ob dieser Zustand in F liegt Definition (a) Definiere ˆδ : Q Σ Q durch Induktion über die Länge m eines Wortes w = b 1 b m : ˆδ(q,ε) := q, für q Q.; ˆδ(q,b 1 b m ) := δ(ˆδ(q,b 1 b m 1 ),b m ), für q Q,m 1,b 1,...,b m Σ. (Kurz: ˆδ(q,ε) = q, für q Q; ˆδ(q,ua) = δ(ˆδ(q,u),a), für q Q und u Σ, a Σ.) (b) Für w Σ definieren wir: M akzeptiert w, falls ˆδ(q 0,w) F. (c) L M := {w Σ M akzeptiert w}. Wenn L = L M, sagt man auch: M akzeptiert L, als Abkürzung für M akzeptiert die Wörter in L und nur diese. Umgekehrt heißt L die von M akzeptierte Sprache. (d) Eine Sprache L heißt regulär, falls es einen DFA M mit L = L M gibt. (Die Herkunft der Bezeichnung regulär wird in Abschnitt 2.3 geklärt.) Für q Q,a Σ gilt nach den Definitionen: ˆδ(q,a) = ˆδ(q,εa) = δ(ˆδ(q,ε),a) = δ(q,a). Also ist ˆδ eine Fortsetzung von δ von Q Σ auf Q Σ. Es kann also keine Verwirrung auftreten, wenn wir ab jetzt stets δ statt ˆδ schreiben. Die erweiterte δ-funktion hat eine simple Interpretation im Automatengraphen G M : δ(q,w) = q gilt genau dann, wenn man in v q startend und dann den von w = b 1 b m vorgeschriebenen Kanten folgend den Knoten v q erreicht. Wir notieren einfache Eigenschaften, die die Aneinanderreihung von Teilrechnungen betreffen Bemerkung (a) Sind w,w Σ,q Q, so ist δ(q,ww ) = δ(δ(q,w),w ). (b) Sind w 1,w 2, Σ,q Q mit δ(q,w 1 ) = δ(q,w 2 ), so ist δ(q,w 1 w ) = δ(q,w 2 w ) für alle w Σ. 24

27 Beweis (a) Diese Aussage sollte intuitiv klar sein. Wir geben den Beweis als Beispiel für einen einfachen Beweis durch Induktion über die Länge von Wörtern an. Induktion über w : I. A.: Ist w = 0, also w = ε, so ist δ(q,ww ) = δ(q,w) = δ(δ(q,w),ε) nach Definition 2.1.5(a). I. S.: Ist w 1, also w = ua für u Σ,a Σ, so gilt: δ(q,ww ) = δ(q,wua) 2.1.5(a) = δ(δ(q,wu),a) I.V. = δ(δ(δ(q,w),u),a) 2.1.5(a) = = δ(δ(q,w),ua) = δ(δ(q,w),w ). (b) δ(q,w 1 w ) (a) = δ(δ(q,w 1 ),w ) Vor. = δ(δ(q,w 2 ),w ) (a) = ˆδ(q,w 2 w ). Bemerkung kann man informal so ausdrücken: Alles, was ein DFA nach dem Lesen eines Präfixes w der Eingabe weiß, steckt in dem Zustand δ(q 0,w). Weil Q endlich ist, kann ein DFA nur endlich viele verschiedene Situationen auseinanderhalten. Wir benutzen dies, um eine ganz einfache Aufgabe anzugeben, die kein DFA lösen kann Beispiel ( Kein endlicher Automat kann beliebig weit zählen.) Wir betrachten die Sprache L := {x {0, 1} x 0 = x 1 }, die aus allen Binärwörtern besteht, die genau gleich viele Nullen und Einsen haben. (Zum Beispiel ist L, nicht aber ) Wir behaupten: L ist nicht regulär. Der Beweis ist indirekt. Angenommen, es gilt L = L M für einen DFA M = (Q, Σ,q 0,F,δ). Weil Q endlich ist, können die Zustände δ(q 0, 0),δ(q 0, 0 2 ), δ(q 0, 0 3 ),... nicht alle verschieden sein, also gibt es i,j 0 mit i < j, so dass δ(q 0, 0 i ) = δ(q 0, 0 j ). Weil L = L M und 0 i 1 i L und 0 j 1 i / L, gilt δ(q 0, 0 i 1 i ) F und δ(q 0, 0 j 1 i ) F. Andererseits gilt (wegen δ(q 0, 0 j ) = δ(q 0, 0 i ) und nach 2.1.6(b)), dass δ(q 0, 0 i 1 i ) = δ(q 0, 0 j 1 i ). Dies ist der gewünschte Widerspruch Bemerkung Zwischen Definition und der graphischen Darstellung G M von DFA s besteht folgender einfacher Zusammenhang. Dabei ist mit G M die eigentliche Version, also die mit Mehrfachkanten, gemeint. Zu einem Zustand q und einem Wort x = b 1 b m gehört ein eindeutig bestimmter Weg der Länge m, der in v q startet und dessen Kanten mit b 1,...,b m markiert sind. Offenbar gilt δ(q,b 1 b m ) = q genau dann, wenn dieser Weg in v q endet. (Z. B. haben wir in Abbildung 2.5 den Weg, der in dem Automaten aus Beispiel von Zustand 0 ausgehend durch das Wort erzeugt wird, explizit angegeben.) Man beachte den Spezialfall m = 0, der einem Weg der Länge 0 entspricht. Der Fall q = q 0 führt zu folgender Charakterisierung des Akzeptierungsbegriffs: b 1 b m L M genau dann, wenn der eindeutige Weg, der in v q0 startet und Kantenbeschriftung b 1,...,b m hat, in einem Knoten v q mit q F endet. Zur Übung interpretiere man Bemerkung 2.1.6(a) in der Sichtweise der Graphen. (Es werden Wege aneinandergehängt.) 25

Programmiersprachen und Übersetzer

Programmiersprachen und Übersetzer Programmiersprachen und Übersetzer Sommersemester 2010 19. April 2010 Theoretische Grundlagen Problem Wie kann man eine unendliche Menge von (syntaktisch) korrekten Programmen definieren? Lösung Wie auch

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 15: Reguläre Ausdrücke und rechtslineare Grammatiken Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/25 Was kann man mit endlichen

Mehr

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

Mehr

Grammatiken. Einführung

Grammatiken. Einführung Einführung Beispiel: Die arithmetischen Ausdrücke über der Variablen a und den Operationen + und können wie folgt definiert werden: a, a + a und a a sind arithmetische Ausdrücke Wenn A und B arithmetische

Mehr

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

Mehr

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Zählen und Zahlbereiche Übungsblatt 1 1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Für alle m, n N gilt m + n = n + m. in den Satz umschreiben:

Mehr

Grundlagen Theoretischer Informatik I SoSe 2011 in Trier. Henning Fernau Universität Trier fernau@uni-trier.de

Grundlagen Theoretischer Informatik I SoSe 2011 in Trier. Henning Fernau Universität Trier fernau@uni-trier.de Grundlagen Theoretischer Informatik I SoSe 2011 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 1 Grundlagen Theoretischer Informatik I Gesamtübersicht Organisatorisches; Einführung Logik

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 12.01.2012 INSTITUT FÜR THEORETISCHE 0 KIT 12.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik

Mehr

4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls

4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls 4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls δ(q, a, Z) + δ(q, ɛ, Z) 1 (q, a, Z) Q Σ. Die von einem DPDA, der mit leerem Keller akzeptiert,

Mehr

Vorlesung Theoretische Informatik

Vorlesung Theoretische Informatik Vorlesung Theoretische Informatik Automaten und Formale Sprachen Hochschule Reutlingen Fakultät für Informatik Masterstudiengang Wirtschaftsinformatik überarbeitet von F. Laux (Stand: 09.06.2010) Sommersemester

Mehr

Formale Sprachen und Grammatiken

Formale Sprachen und Grammatiken Formale Sprachen und Grammatiken Jede Sprache besitzt die Aspekte Semantik (Bedeutung) und Syntax (formaler Aufbau). Die zulässige und korrekte Form der Wörter und Sätze einer Sprache wird durch die Syntax

Mehr

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren:

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren: 4. AUSSAGENLOGIK: SYNTAX 4.1 Objektsprache und Metasprache 4.2 Gebrauch und Erwähnung 4.3 Metavariablen: Verallgemeinerndes Sprechen über Ausdrücke von AL 4.4 Die Sprache der Aussagenlogik 4.5 Terminologie

Mehr

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel.

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel. Kontextfreie Kontextfreie Motivation Formale rundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen Bisher hatten wir Automaten, die Wörter akzeptieren Frank Heitmann heitmann@informatik.uni-hamburg.de

Mehr

Theoretische Informatik

Theoretische Informatik Theoretische Informatik für die Studiengänge Ingenieur-Informatik berufsbegleitendes Studium Lehramt Informatik (Sekundar- und Berufsschule) http://theo.cs.uni-magdeburg.de/lehre04s/ Lehrbeauftragter:

Mehr

Grundlagen der Theoretischen Informatik, SoSe 2008

Grundlagen der Theoretischen Informatik, SoSe 2008 1. Aufgabenblatt zur Vorlesung Grundlagen der Theoretischen Informatik, SoSe 2008 (Dr. Frank Hoffmann) Lösung von Manuel Jain und Benjamin Bortfeldt Aufgabe 2 Zustandsdiagramme (6 Punkte, wird korrigiert)

Mehr

Mathematische Grundlagen der Informatik 2

Mathematische Grundlagen der Informatik 2 Zusammenfassung Math2I Mathematische Grundlagen der Informatik 2 Emanuel Duss emanuel.duss@gmail.com 12. April 2013 1 Zusammenfassung Math2I Mathematische Grundlagen der Informatik 2 Dieses Dokument basiert

Mehr

Informatik IC2. Balazs Simon 2005.03.26.

Informatik IC2. Balazs Simon 2005.03.26. Informatik IC2 Balazs Simon 2005.03.26. Inhaltsverzeichnis 1 Reguläre Sprachen 3 1.1 Reguläre Sprachen und endliche Automaten...................... 3 1.2 Determinisieren.....................................

Mehr

Grundlagen der Informatik II. Teil I: Formale Modelle der Informatik

Grundlagen der Informatik II. Teil I: Formale Modelle der Informatik Grundlagen der Informatik II Teil I: Formale Modelle der Informatik 1 Einführung GdInfoII 1-2 Ziele/Fragestellungen der Theoretischen Informatik 1. Einführung abstrakter Modelle für informationsverarbeitende

Mehr

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.

Mehr

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5) Einführung 3 Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Univ.-Prof. Dr. Christoph Meinel Hasso-Plattner-Institut Universität Potsdam, Deutschland Hatten den Reduktionsbegriff

Mehr

Theorie der Informatik

Theorie der Informatik Theorie der Informatik 6. Formale Sprachen und Grammatiken Malte Helmert Gabriele Röger Universität Basel 17. März 2014 Einführung Beispiel: Aussagenlogische Formeln Aus dem Logikteil: Definition (Syntax

Mehr

Technische Informatik - Eine Einführung

Technische Informatik - Eine Einführung Martin-Luther-Universität Halle-Wittenberg Fachbereich Mathematik und Informatik Lehrstuhl für Technische Informatik Prof. P. Molitor Ausgabe: 2005-02-21 Abgabe: 2005-02-21 Technische Informatik - Eine

Mehr

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume? Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume? Bernhard Ganter Institut für Algebra TU Dresden D-01062 Dresden bernhard.ganter@tu-dresden.de WS 2013/14 Isomorphie Zwei Graphen (V 1, E 1 ) und (V

Mehr

Informatik IV Theoretische Informatik: Formale Sprachen und Automaten, Berechenbarkeit und NP-Vollständigkeit

Informatik IV Theoretische Informatik: Formale Sprachen und Automaten, Berechenbarkeit und NP-Vollständigkeit Informatik IV Theoretische Informatik: Formale Sprachen und Automaten, Berechenbarkeit und NP-Vollständigkeit Sommersemester 2011 Dozent: Prof. Dr. J. Rothe, Prof. Dr. M. Leuschel J. Rothe (HHU Düsseldorf)

Mehr

Einführung in die Algebra

Einführung in die Algebra Prof. Dr. H. Brenner Osnabrück SS 2009 Einführung in die Algebra Vorlesung 13 Einheiten Definition 13.1. Ein Element u in einem Ring R heißt Einheit, wenn es ein Element v R gibt mit uv = vu = 1. DasElementv

Mehr

Konzepte der Informatik

Konzepte der Informatik Konzepte der Informatik Vorkurs Informatik zum WS 2011/2012 26.09. - 30.09.2011 17.10. - 21.10.2011 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 1 aus "Abenteuer Informatik" von Jens

Mehr

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

Mehr

Theoretische Informatik I

Theoretische Informatik I Theoretische Informatik I Einheit 2.4 Grammatiken 1. Arbeitsweise 2. Klassifizierung 3. Beziehung zu Automaten Beschreibungsformen für Sprachen Mathematische Mengennotation Prädikate beschreiben Eigenschaften

Mehr

Codierungstheorie Rudolf Scharlau, SoSe 2006 9

Codierungstheorie Rudolf Scharlau, SoSe 2006 9 Codierungstheorie Rudolf Scharlau, SoSe 2006 9 2 Optimale Codes Optimalität bezieht sich auf eine gegebene Quelle, d.h. eine Wahrscheinlichkeitsverteilung auf den Symbolen s 1,..., s q des Quellalphabets

Mehr

2.11 Kontextfreie Grammatiken und Parsebäume

2.11 Kontextfreie Grammatiken und Parsebäume 2.11 Kontextfreie Grammatiken und Parsebäume Beispiel: Beispiel (Teil 3): Beweis für L(G) L: Alle Strings aus L der Länge 0 und 2 sind auch in L(G). Als Induktionsannahme gehen wir davon aus, dass alle

Mehr

Informationsblatt Induktionsbeweis

Informationsblatt Induktionsbeweis Sommer 015 Informationsblatt Induktionsbeweis 31. März 015 Motivation Die vollständige Induktion ist ein wichtiges Beweisverfahren in der Informatik. Sie wird häufig dazu gebraucht, um mathematische Formeln

Mehr

Data Mining: Einige Grundlagen aus der Stochastik

Data Mining: Einige Grundlagen aus der Stochastik Data Mining: Einige Grundlagen aus der Stochastik Hagen Knaf Studiengang Angewandte Mathematik Hochschule RheinMain 21. Oktober 2015 Vorwort Das vorliegende Skript enthält eine Zusammenfassung verschiedener

Mehr

WS 2009/10. Diskrete Strukturen

WS 2009/10. Diskrete Strukturen WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 3: Alphabete (und Relationen, Funktionen, Aussagenlogik) Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Oktober 2008 1/18 Überblick Alphabete ASCII Unicode

Mehr

Theoretische Informatik SS 04 Übung 1

Theoretische Informatik SS 04 Übung 1 Theoretische Informatik SS 04 Übung 1 Aufgabe 1 Es gibt verschiedene Möglichkeiten, eine natürliche Zahl n zu codieren. In der unären Codierung hat man nur ein Alphabet mit einem Zeichen - sagen wir die

Mehr

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden. In einer Website haben Seiten oft das gleiche Layout. Speziell beim Einsatz von Tabellen, in denen die Navigation auf der linken oder rechten Seite, oben oder unten eingesetzt wird. Diese Anteile der Website

Mehr

Grundlagen der Informatik

Grundlagen der Informatik Mag. Christian Gürtler Programmierung Grundlagen der Informatik 2011 Inhaltsverzeichnis I. Allgemeines 3 1. Zahlensysteme 4 1.1. ganze Zahlen...................................... 4 1.1.1. Umrechnungen.................................

Mehr

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung M. Graefenhan 2000-12-07 Aufgabe Lösungsweg Übungen zu C Blatt 3 Musterlösung Schreiben Sie ein Programm, das die Häufigkeit von Zeichen in einem eingelesenen String feststellt. Benutzen Sie dazu ein zweidimensionales

Mehr

3. Zusammenhang. 22 Andreas Gathmann

3. Zusammenhang. 22 Andreas Gathmann 22 Andreas Gathmann 3. Zusammenhang Eine der anschaulichsten Eigenschaften eines topologischen Raumes ist wahrscheinlich, ob er zusammenhängend ist oder aus mehreren Teilen besteht. Wir wollen dieses Konzept

Mehr

Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen 19

Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen 19 Inhalt 1 inführung 2 Automatentheorie und ormale prachen Grammatiken Reguläre prachen und endliche Automaten Kontextfreie prachen und Kellerautomaten Kontextsensitive und yp 0-prachen 3 Berechenbarkeitstheorie

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes. Binäre Bäume Definition: Ein binärer Baum T besteht aus einer Menge von Knoten, die durch eine Vater-Kind-Beziehung wie folgt strukturiert ist: 1. Es gibt genau einen hervorgehobenen Knoten r T, die Wurzel

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 9: Speicher Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2009/2010 1/20 Überblick Speicher Bit und Byte Speicher als Tabellen

Mehr

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Dateiname: ecdl5_01_00_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Grundlagen

Mehr

Theoretische Grundlagen des Software Engineering

Theoretische Grundlagen des Software Engineering Theoretische Grundlagen des Software Engineering 11: Abstrakte Reduktionssysteme schulz@eprover.org Reduktionssysteme Definition: Reduktionssystem Ein Reduktionssystem ist ein Tupel (A, ) Dabei gilt: A

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

Kapitel 2: Formale Sprachen Kontextfreie Sprachen. reguläre Grammatiken/Sprachen. kontextfreie Grammatiken/Sprachen

Kapitel 2: Formale Sprachen Kontextfreie Sprachen. reguläre Grammatiken/Sprachen. kontextfreie Grammatiken/Sprachen reguläre Grammatiken/prachen Beschreibung für Bezeichner in Programmiersprachen Beschreibung für wild cards in kriptsprachen (/* reguläre Ausdrücke */)?; [a-z]; * kontextfreie Grammatiken/prachen Beschreibung

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik Grundlagen der Theoretischen Informatik 3. Endliche Automaten (V) 21.05.2015 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Bis jetzt Determinierte endliche Automaten (DEAs) Indeterminierte

Mehr

Übung Theoretische Grundlagen

Übung Theoretische Grundlagen Übung Theoretische Grundlagen Berechenbarkeit/Entscheidbarkeit Nico Döttling November 26, 2009 INSTITUT FÜR KRYPTOGRAPHIE UND SICHERHEIT KIT University of the State of Baden-Wuerttemberg and National Laboratory

Mehr

Basis und Dimension. Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren.

Basis und Dimension. Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren. Basis und Dimension Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren. Definition. Sei V ein K-Vektorraum und (v i ) i I eine Familie von Vektoren

Mehr

Datensicherung. Beschreibung der Datensicherung

Datensicherung. Beschreibung der Datensicherung Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten

Mehr

10 Erweiterung und Portierung

10 Erweiterung und Portierung 10.1 Überblick In vielen Fällen werden Compiler nicht vollständig neu geschrieben, sondern von einem Rechnersystem auf ein anderes portiert. Das spart viel Arbeit, ist aber immer noch eine sehr anspruchsvolle

Mehr

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter 2 Inhaltsverzeichnis 1 Web-Kürzel 4 1.1 Einführung.......................................... 4 1.2 Web-Kürzel.........................................

Mehr

Also kann nur A ist roter Südler und B ist grüner Nordler gelten.

Also kann nur A ist roter Südler und B ist grüner Nordler gelten. Aufgabe 1.1: (4 Punkte) Der Planet Og wird von zwei verschiedenen Rassen bewohnt - dem grünen und dem roten Volk. Desweiteren sind die Leute, die auf der nördlichen Halbkugel geboren wurden von denen auf

Mehr

Automaten und Formale Sprachen. Skript zur Vorlesung WS 2010/11. Teil 1. Prof. Dr. M. Dietzfelbinger. Fassung vom

Automaten und Formale Sprachen. Skript zur Vorlesung WS 2010/11. Teil 1. Prof. Dr. M. Dietzfelbinger. Fassung vom Automaten und Formale Sprachen Skript zur Vorlesung WS 2010/11 Teil 1 Prof. Dr. M. Dietzfelbinger Fassung vom 6.10.2010 Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Fachgebiet

Mehr

Zahlensysteme: Oktal- und Hexadezimalsystem

Zahlensysteme: Oktal- und Hexadezimalsystem 20 Brückenkurs Die gebräuchlichste Bitfolge umfasst 8 Bits, sie deckt also 2 8 =256 Möglichkeiten ab, und wird ein Byte genannt. Zwei Bytes, also 16 Bits, bilden ein Wort, und 4 Bytes, also 32 Bits, formen

Mehr

Mathematische Maschinen

Mathematische Maschinen Mathematische Maschinen Ziel: Entwicklung eines allgemeinen Schemas zur Beschreibung von (mathematischen) Maschinen zur Ausführung von Algorithmen (hier: (partiellen) Berechnungsverfahren). Mathematische

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Kapitel 6: Induktives Vorgehen Thomas Worsch KIT, Institut für Theoretische Informatik Wintersemester 2015/2016 GBI Grundbegriffe der Informatik KIT, Institut für Theoretische

Mehr

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken. In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access Die Grundlagen der Datenbanken kurspc15 Inhaltsverzeichnis Access... Fehler! Textmarke nicht

Mehr

Einführung in. Logische Schaltungen

Einführung in. Logische Schaltungen Einführung in Logische Schaltungen 1/7 Inhaltsverzeichnis 1. Einführung 1. Was sind logische Schaltungen 2. Grundlegende Elemente 3. Weitere Elemente 4. Beispiel einer logischen Schaltung 2. Notation von

Mehr

Um zusammenfassende Berichte zu erstellen, gehen Sie folgendermaßen vor:

Um zusammenfassende Berichte zu erstellen, gehen Sie folgendermaßen vor: Ergebnisreport: mehrere Lehrveranstaltungen zusammenfassen 1 1. Ordner anlegen In der Rolle des Berichterstellers (siehe EvaSys-Editor links oben) können zusammenfassende Ergebnisberichte über mehrere

Mehr

3.2 Spiegelungen an zwei Spiegeln

3.2 Spiegelungen an zwei Spiegeln 3 Die Theorie des Spiegelbuches 45 sehen, wenn die Person uns direkt gegenüber steht. Denn dann hat sie eine Drehung um die senkrechte Achse gemacht und dabei links und rechts vertauscht. 3.2 Spiegelungen

Mehr

Mathematische Grundlagen

Mathematische Grundlagen Mathematische Grundlagen für Wirtschaftsinformatiker Prof. Dr. Peter Becker Fachbereich Informatik Hochschule Bonn-Rhein-Sieg Wintersemester 2015/16 Peter Becker (H-BRS) Mathematische Grundlagen Wintersemester

Mehr

Zusammenfassung. Satz. 1 Seien F, G Boolesche Ausdrücke (in den Variablen x 1,..., x n ) 2 Seien f : B n B, g : B n B ihre Booleschen Funktionen

Zusammenfassung. Satz. 1 Seien F, G Boolesche Ausdrücke (in den Variablen x 1,..., x n ) 2 Seien f : B n B, g : B n B ihre Booleschen Funktionen Zusammenfassung Zusammenfassung der letzten LV Einführung in die Theoretische Informatik Woche 6 Harald Zankl Institut für Informatik @ UIBK Wintersemester 2014/2015 Satz 1 Seien F, G Boolesche Ausdrücke

Mehr

Automaten und Formale Sprachen 1. Vorlesung

Automaten und Formale Sprachen 1. Vorlesung Automaten und Formale Sprachen 1. Vorlesung Martin Dietzfelbinger 11. Oktober 2005 Hörer: Informatikstudierende im 3. Semester, Mathematikstudierende bei Bedarf Material: Skript, Folienkopien, Übungsblätter

Mehr

Wortproblem für kontextfreie Grammatiken

Wortproblem für kontextfreie Grammatiken Wortproblem für kontextfreie Grammatiken G kontextfreie Grammatik. w Σ w L(G)? Wortproblem ist primitiv rekursiv entscheidbar. (schlechte obere Schranke!) Kellerautomat der L(G) akzeptiert Ist dieser effizient?

Mehr

Leichte-Sprache-Bilder

Leichte-Sprache-Bilder Leichte-Sprache-Bilder Reinhild Kassing Information - So geht es 1. Bilder gucken 2. anmelden für Probe-Bilder 3. Bilder bestellen 4. Rechnung bezahlen 5. Bilder runterladen 6. neue Bilder vorschlagen

Mehr

Kapitel 4 Schaltungen mit Delays (Schaltwerke) Literatur: Oberschelp/Vossen, Kapitel 4. Kapitel 4: Schaltungen mit Delays Seite 1

Kapitel 4 Schaltungen mit Delays (Schaltwerke) Literatur: Oberschelp/Vossen, Kapitel 4. Kapitel 4: Schaltungen mit Delays Seite 1 Kapitel 4 Schaltungen mit Delays (Schaltwerke) Literatur: Oberschelp/Vossen, Kapitel 4 Kapitel 4: Schaltungen mit Delays Seite 1 Schaltungen mit Delays Inhaltsverzeichnis 4.1 Einführung 4.2 Addierwerke

Mehr

Wir arbeiten mit Zufallszahlen

Wir arbeiten mit Zufallszahlen Abb. 1: Bei Kartenspielen müssen zu Beginn die Karten zufällig ausgeteilt werden. Wir arbeiten mit Zufallszahlen Jedesmal wenn ein neues Patience-Spiel gestartet wird, muss das Computerprogramm die Karten

Mehr

Excel Pivot-Tabellen 2010 effektiv

Excel Pivot-Tabellen 2010 effektiv 7.2 Berechnete Felder Falls in der Datenquelle die Zahlen nicht in der Form vorliegen wie Sie diese benötigen, können Sie die gewünschten Ergebnisse mit Formeln berechnen. Dazu erzeugen Sie ein berechnetes

Mehr

Wir basteln einen Jahreskalender mit MS Excel.

Wir basteln einen Jahreskalender mit MS Excel. Wir basteln einen Jahreskalender mit MS Excel. In meinen Seminaren werde ich hin und wieder nach einem Excel-Jahreskalender gefragt. Im Internet findet man natürlich eine ganze Reihe mehr oder weniger

Mehr

Algorithmen & Datenstrukturen 1. Klausur

Algorithmen & Datenstrukturen 1. Klausur Algorithmen & Datenstrukturen 1. Klausur 7. Juli 2010 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 35 2 30 3 30 4 15 5 40 6 30 Gesamt 180 1 Seite 2 von 14 Aufgabe 1) Programm Analyse

Mehr

Englische Division. ... und allgemeine Hinweise

Englische Division. ... und allgemeine Hinweise Das folgende Verfahren ist rechnerisch identisch mit dem Normalverfahren; es unterscheidet sich nur in der Schreibweise des Rechenschemas Alle Tipps und Anmerkungen, die über die Besonderheiten dieser

Mehr

Anmerkungen zur Übergangsprüfung

Anmerkungen zur Übergangsprüfung DM11 Slide 1 Anmerkungen zur Übergangsprüfung Aufgabeneingrenzung Aufgaben des folgenden Typs werden wegen ihres Schwierigkeitsgrads oder wegen eines ungeeigneten fachlichen Schwerpunkts in der Übergangsprüfung

Mehr

Berechnungen in Access Teil I

Berechnungen in Access Teil I in Access Teil I Viele Daten müssen in eine Datenbank nicht eingetragen werden, weil sie sich aus anderen Daten berechnen lassen. Zum Beispiel lässt sich die Mehrwertsteuer oder der Bruttopreis in einer

Mehr

Binärdarstellung von Fliesskommazahlen

Binärdarstellung von Fliesskommazahlen Binärdarstellung von Fliesskommazahlen 1. IEEE 754 Gleitkommazahl im Single-Format So sind in Gleitkommazahlen im IEEE 754-Standard aufgebaut: 31 30 24 23 0 S E E E E E E E E M M M M M M M M M M M M M

Mehr

EINMALEINS BEZIEHUNGSREICH

EINMALEINS BEZIEHUNGSREICH EINMALEINS BEZIEHUNGSREICH Thema: Übung des kleinen Einmaleins; operative Beziehungen erkunden Stufe: ab 2. Schuljahr Dauer: 2 bis 3 Lektionen Materialien: Kleine Einmaleinstafeln (ohne Farben), Punktefelder

Mehr

Objektorientierte Programmierung. Kapitel 3: Syntaxdiagramme und Grammatikregeln

Objektorientierte Programmierung. Kapitel 3: Syntaxdiagramme und Grammatikregeln Stefan Brass: OOP (Java), 3. Syntaxdiagramme und Grammatikregeln 1/32 Objektorientierte Programmierung Kapitel 3: Syntaxdiagramme und Grammatikregeln Stefan Brass Martin-Luther-Universität Halle-Wittenberg

Mehr

Formale Systeme, WS 2012/2013 Lösungen zu Übungsblatt 4

Formale Systeme, WS 2012/2013 Lösungen zu Übungsblatt 4 Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Dr. Peter H. Schmitt David Farago, Christoph Scheben, Mattias Ulbrich Formale Systeme, WS 2012/2013 Lösungen zu Übungsblatt

Mehr

Reguläre Sprachen Endliche Automaten

Reguläre Sprachen Endliche Automaten Endliche Automaten (Folie 54, Seite 16 im Skript) Einige Vorteile endlicher deterministischer Automaten: durch Computer schnell simulierbar wenig Speicher benötigt: Tabelle für δ (read-only), aktueller

Mehr

Beweisbar sichere Verschlüsselung

Beweisbar sichere Verschlüsselung Beweisbar sichere Verschlüsselung ITS-Wahlpflichtvorlesung Dr. Bodo Möller Ruhr-Universität Bochum Horst-Görtz-Institut für IT-Sicherheit Lehrstuhl für Kommunikationssicherheit bmoeller@crypto.rub.de 6

Mehr

Software Engineering Klassendiagramme Assoziationen

Software Engineering Klassendiagramme Assoziationen Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Tutorium 27 29..24 FAKULTÄT FÜR INFORMATIK KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Definition

Mehr

Text-Zahlen-Formatieren

Text-Zahlen-Formatieren Text-Zahlen-Formatieren Beobachtung: Bei der Formatierung einer Zahl in eine Textzahl und umgekehrt zeigt Excel ein merkwürdiges Verhalten, welches nachfolgend skizziert werden soll: Wir öffnen eine neue

Mehr

Fragebogen zur Evaluation der Vorlesung und Übungen Computer Grafik, CS231, SS05

Fragebogen zur Evaluation der Vorlesung und Übungen Computer Grafik, CS231, SS05 Fragebogen zur Evaluation der Vorlesung und Übungen Computer Grafik, CS231, SS05 Dozent: Thomas Vetter Bitte Name des Tutors angeben: Liebe Studierende, Ihre Angaben in diesem Fragebogen helfen uns, die

Mehr

Meet the Germans. Lerntipp zur Schulung der Fertigkeit des Sprechens. Lerntipp und Redemittel zur Präsentation oder einen Vortrag halten

Meet the Germans. Lerntipp zur Schulung der Fertigkeit des Sprechens. Lerntipp und Redemittel zur Präsentation oder einen Vortrag halten Meet the Germans Lerntipp zur Schulung der Fertigkeit des Sprechens Lerntipp und Redemittel zur Präsentation oder einen Vortrag halten Handreichungen für die Kursleitung Seite 2, Meet the Germans 2. Lerntipp

Mehr

Binäre Suchbäume (binary search trees, kurz: bst)

Binäre Suchbäume (binary search trees, kurz: bst) Binäre Suchbäume (binary search trees, kurz: bst) Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer: Binärbaum T mit n := M Knoten Jeder Knoten v von T ist mit einer Zahl m v M markiert.

Mehr

syntax.tex Eine Übersicht

syntax.tex Eine Übersicht syntax.tex Eine Übersicht Bernd Worsch 7. Juli 1997 Inhaltsverzeichnis 1 Einleitung 1 2 Bevor es funktioniert... 1 3 Grundelemente von syntax.tex 1 4 Strukturelemente von syntax.tex 3 5 Setzen von Syntaxdiagrammen

Mehr

Was ist ein Compiler?

Was ist ein Compiler? Was ist ein Compiler? Was ist ein Compiler und worum geht es? Wie ist ein Compiler aufgebaut? Warum beschäftigen wir uns mit Compilerbau? Wie ist die Veranstaltung organisiert? Was interessiert Sie besonders?

Mehr

Kurzanleitung zur Bereitstellung von Sachverhalten und Lösungen zum Universitätsrepetitorium auf dem Server unirep.rewi.hu-berlin.

Kurzanleitung zur Bereitstellung von Sachverhalten und Lösungen zum Universitätsrepetitorium auf dem Server unirep.rewi.hu-berlin. Humboldt-Universität zu Berlin Juristische Fakultät Kurzanleitung zur Bereitstellung von Sachverhalten und Lösungen zum Universitätsrepetitorium auf dem Server unirep.rewi.hu-berlin.de Stand: 1. Juni 2010

Mehr

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Vermeiden Sie es sich bei einer deutlich erfahreneren Person dranzuhängen, Sie sind persönlich verantwortlich für Ihren Lernerfolg. 1 2 3 4 Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg. Gerade beim Einstig in der Programmierung muss kontinuierlich

Mehr

Computerarithmetik ( )

Computerarithmetik ( ) Anhang A Computerarithmetik ( ) A.1 Zahlendarstellung im Rechner und Computerarithmetik Prinzipiell ist die Menge der im Computer darstellbaren Zahlen endlich. Wie groß diese Menge ist, hängt von der Rechnerarchitektur

Mehr

Kapiteltests zum Leitprogramm Binäre Suchbäume

Kapiteltests zum Leitprogramm Binäre Suchbäume Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm

Mehr

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12 Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben

Mehr

Erklärung zum Internet-Bestellschein

Erklärung zum Internet-Bestellschein Erklärung zum Internet-Bestellschein Herzlich Willkommen bei Modellbahnbau Reinhardt. Auf den nächsten Seiten wird Ihnen mit hilfreichen Bildern erklärt, wie Sie den Internet-Bestellschein ausfüllen und

Mehr

Informatik I Tutorial

Informatik I Tutorial ETH Zürich, D-INFK/D-BAUG Herbstsemester 2015 Dr. Martin Hirt Daniel Jost Informatik I Tutorial Dieses Tutorial hat zum Ziel, die notwendigen Tools auf dem eigenen Computer zu installieren, so dass ihr

Mehr

Zwischenablage (Bilder, Texte,...)

Zwischenablage (Bilder, Texte,...) Zwischenablage was ist das? Informationen über. die Bedeutung der Windows-Zwischenablage Kopieren und Einfügen mit der Zwischenablage Vermeiden von Fehlern beim Arbeiten mit der Zwischenablage Bei diesen

Mehr

7 Rechnen mit Polynomen

7 Rechnen mit Polynomen 7 Rechnen mit Polynomen Zu Polynomfunktionen Satz. Zwei Polynomfunktionen und f : R R, x a n x n + a n 1 x n 1 + a 1 x + a 0 g : R R, x b n x n + b n 1 x n 1 + b 1 x + b 0 sind genau dann gleich, wenn

Mehr

Online Schulung Anmerkungen zur Durchführung

Online Schulung Anmerkungen zur Durchführung Online Schulung Anmerkungen zur Durchführung 1.0 Einleitung Vielen Dank, dass Sie sich für die Online Schulung von SoloProtect entschieden haben. Nachfolgend finden Sie Informationen für Identicomnutzer

Mehr