Empfehlenswerte Referenzen
|
|
- Reinhardt Beltz
- vor 7 Jahren
- Abrufe
Transkript
1 Wenn Google etwas nicht finden kann, fragen sie Jack Bauer. ("Fakten über Jack Bauer") Inhalt Empfehlenswerte Referenzen Wozu reguläre Ausdrücke? Die Elemente regulärer Ausdrücke Ein einfaches Beispiel...3 Welche dieser Worte sind in der vom gegebenen regulären Ausdruck erzeugten Sprache enthalten?...3 Lösung Ein anspruchsvolleres Beispiel...4 Welcher reguläre Ausdruck erzeugt die vorgegebene Sprache?...4 Lösung Aufgaben to go...5 Empfehlenswerte Referenzen [1] RegEx Coach( Tool zur Verifikation von regulären Ausdrücken unter Eingabe von Testwörtern [2] Uwe Schöning "Theoretische Informatik kurzgefasst", Kapitel "1.2.3 Reguläre Ausdrücke" [3] regex Tester ( ein online Testprogramm für reguläre Ausdrücke 0 Wozu reguläre Ausdrücke? Reguläre Ausdrücke können genau die Klasse der regulären Sprachen darstellen. Zum Beweis siehe [2]. Das heisst z. B.: für alles was man mit einem endlichen Automaten darstellen kann, kann man auch einen regulären Ausdruck angeben und andersherum. Es fragt sich nur, was einfacher ist. Im Rahmen der Vorlesung "Compilerbau" werden reguläre Ausdrücke verwendet, um rekursiv die zulässigen Konstrukte für die Syntax einer Computersprache zu definieren. Dadurch kommen auch mächtige Computersprachen mit erstaunlich wenigen Regeldefinitionen aus. Müßte man aber alle gültigen Konstruktionen für Regeln explizit angeben (also ohne reguläre Ausdrücke), wären enorm viel mehr Definitionen notwendig, worunter die Übersicht nicht unerheblich leiden würde. Die Computersprache SQL lässt zu, dass mit regulären Ausdrücken nach Daten gesucht wird. Das ermöglicht ziemlich kompakte Datenbankanfragen. Im Rahmen der Vorlesung "Datenbanken" wird das noch viel eingehender behandelt. Seite 1 / 6
2 1 Die Elemente regulärer Ausdrücke Seien im Folgenden die Zeichen R und S induktiv selbst reguläre Ausdrücke, sowie 'a', 'b' und 'c' beliebige Zeichen des zulässigen Alphabets. Wenn nichts weiter angegeben ist, entspricht das Alphabet dem ASCII-Zeichensatz. x und y sind beliebige natürliche Zahlen. Die doppelten Hochkommas gehören im folgenden jeweils nicht zum regulären Ausdruck, sondern zeigen lediglich den Beginn und das Ende desselben an. "" : leeres Wort. Auch das leere Wort ist ein zulässiger regulärer Ausdruck. Wiederholungen von regulären Ausdrücken. "R{x}" : genau x-fache Wiederholung von R. "R{x,}" : mindestens x-fache Wiederholung von R. "R{x,y}" : mindestens x-, aber höchstens y-fache Wiederholung von R "R*" : ("Kleen'scher Stern") beliebige Wiederholung von R. Entspricht dem Ausdruck "R{0,}". "R+" : mindestens einmalige Wiederholung von R. Entspricht dem Ausdruck "R{1,}". "R?" : optionale einmalige Wiederholung von R. Entspricht dem Ausdruck "R{0,1}". "RS" : reguläre Ausdrücke werden automatisch konkateniert ohne dass ein spezieller Konkatenationsoperator aufgeführt werden muss. Durch die Konkatenation folgt auf die Erkennung des Ausdrucks R die Erkennung des Ausdrucks S. "." : ("Wild Card") Platzhalter für ein beliebiges Zeichen des Alphabets. "R$" : nach Erkennung des Ausdrucks R muss das Wort zu Ende sein. "^R" : der Beginn des Wortes muss durch den Ausdruck R erkannt werden. "[abc]" : ein einzelnes beliebiges Zeichen aus der Liste der zwischen den eckigen Klammern aufgeführten Zeichen. "[a-c]" : ein einzelnes beliebiges Zeichen aus dem Bereich der Zeichen zwischen 'a' und 'c' (einschließlich diesen). "[^abc]": ("Negation") ein beliebiges Zeichen aus dem Alphabet, das nicht einem der in der Liste der zwischen '^' und ']' aufgeführten Zeichen entspricht. "R S": alternative Auswahl von entweder dem Ausdruck R oder dem Ausdruck S. "(R)": durch die Klammerung wird der Ausdruck R zu einer Einheit zusammengefasst. Ein nachfolgender Operator wie z. B. '*' oder '+' wirkt sich dann auf den gesamten Ausdruck R aus. "a" : Beliebige Zeichen des Alphabets, die nicht Teil der oben genannten Syntax sind, werden im regulären Ausdruck "einfach so" notiert. Insbesondere sind einzelne Anführungsstriche nicht notwendig, für einzelne Zeichen des Alphabets aber zulässig. Seite 2 / 6
3 Wenn Zeichen der Syntax (also z. B.: '(', ')', '[', ']', '^' oder '*') in Wörtern der Sprache erlaubt sein sollen, müssen diese Zeichen maskiert werden, was durch ein vorangestelltes Backslash (also ein '\') erfolgt. Wenn in einem Wort z. B. ein Fragezeichen erlaubt sein soll, muss also in dem regulären Ausdruck an der entsprechenden Stelle "\?" stehen. ' ' : Leerzeichen müssen durch Angabe von einzelnen Hochkommas explizit angegeben werden. Alle Leerzeichen in regulären Ausdrücken, die nicht in einzelne Hochkommas gefasst werden, werden ignoriert. Doppelte Hochkommas dienen dem Konkatenieren von Zeichen des Alphabets. Statt z. B. 'a' 'b' 'c' zu schreiben, kann man auch "abc" schreiben. Achtung: Diese Syntaxregeln weichen evtl. von denen aus dem Skript leicht ab. In der Prüfung unbedingt die Syntax des Skripts einhalten! Leider gibt es in der Praxis immer wieder Unterschiede in den Implementierungen der Regeln. Da hilft meist nur das genaue Lesen der Dokumentation (die hoffentlich vorliegt). 2 Ein einfaches Beispiel Welche dieser Worte sind in der vom gegebenen regulären Ausdruck erzeugten Sprache enthalten? ( [ 0 9 ] + [ \* \+ / \- ] [ 0 9 ] + ) * = [ 0 3 ] + (a) "3-2=1" (b) "0/0=2007" (c) " =0" (d) " =1" (e) "" (f) " =2002" (g) "=0" (h) "99+1=" (i) "77+=77" (j) "13-33==1333" Seite 3 / 6
4 . Lösung (a) Ja. (b) Nein. Das Literal '7' ist rechts neben dem '=' nicht zugelassen. (c) Nein. Zwar kann der Teil links vom '=' beliebig wiederholt werden, aber dann müssen die Zahlen "mittendrin" aus mindestens zwei Ziffern bestehen. (d) Ja. (e) Nein. Ein zulässiges Wort muss mindestens aus '=' und einer nachfolgenden Ziffer zwischen 0 und 3 bestehen. (f) Ja. (g) Ja. (h) Nein. Nach dem '=' muss noch mindestens eine Ziffer zwischen 0 und 3 folgen. (i) Nein. Wenn auf der linken Seite etwas steht, muss nach dem Operator noch eine mindestens einstellige Zahl vor dem '=' folgen. (j) Nein. In zulässigen Wörtern muss genau ein '=' vorkommen und zwar genau vor der Zahl ganz rechts. 3 Ein anspruchsvolleres Beispiel Welcher reguläre Ausdruck erzeugt die vorgegebene Sprache? Es soll ein Erkennungsmuster für ein spezielles CSV-Format erstellt werden. CSV steht für "comma separated values", also Werte, die durch Kommas getrennt werden. In der EDV wird ein solches Datenformat oft für den pragmatischen Datenaustausch zwischen Applikationen verwendet. In diesem speziellen Szenario gelten folgende Vorschriften: Am Beginn der Datei steht genau einmal die Zeichenfolge "csv", so dass ein lesendes Programm weiss, dass es sich um eine CSV-Datei handelt. Werte sind Zahlenfolgen von einer Länge zwischen ein und zehn Ziffern. Führende Nullen sind nicht zulässig, der Wert "0" (bestehend aus einer einzelnen Ziffer '0') aber schon. Nach jedem Wert muss ein Komma (',') folgen, außer nach dem letzten. Nach dem letzten Wert darf kein ',' stehen. Vor dem ersten Wert der Datei muss genau einmal ein '{' stehen. Nach dem letzten Wert der Datei muss genau einmal ein '}' stehen. Zwischen Werten und Kommas sind optional auch Zeilenumbrüche erlaubt. Dies entspricht dem ASCII-Zeichen '\n'. Eine Datei kann auch leer sein (dann fehlen auch die Kennung "csv" sowie die geschweiften Klammern). Seite 4 / 6
5 . Lösung Wie geht man an so eine Aufgabe heran? Man kann z. B. diese Überlegungen anstellen: Da die Datei auch leer sein darf, ist also das leere Wort erlaubt. Der gesamte resultierende reguläre Ausdruck muss also von einer " ( )? "-Konstruktion eingefasst sein. Innerhalb der " ( )? "-Konstruktion beginnt der Ausdruck mit "csv". Danach muss ein '{' folgen und am Ende ein '}'. Diese beiden Zeichen müssen mit einem vorangestellten \ (=Backslash) maskiert werden, damit sie als ASCII-Zeichen erkannt werden und nicht als Teil der Syntax des regulären Ausdrucks. Damit haben wir als Zwischenschritt soweit mal den Ausdruck: " ( csv \{ \} )? " Jetzt müssen noch irgendwie Werte erlaubt sein. Wie sieht ein zulässiger Wert überhaupt aus? Führende Nullen werden dadurch ausgeschlossen, dass als erste Ziffer nur eine zwischen 1 und 9 zugelassen wird und der Wert "0" als alternativer Fall eingebaut wird. Allerdings muss nach der ersten Ziffer auch wieder die Ziffer 0 zugelassen werden. Die Bauweise zulässiger Werte ist also diese: " ( 0 [ 1 9 ] [ 0 9 ] { 0, 9 } ) " Wenn die Datei nicht leer ist, müssen auch Werte zwischen den geschweiften Klammern aufgeführt werden. Wenn allerdings nur ein einzelner Wert enthalten ist, darf auch kein Komma vorkommen. D. h. eine einmalige Aufführung des Wertes ist innerhalb der geschweiften Klammern zwingend und bei jeder weiteren Aufführung eines Wertes muss zuerst ein Komma aufgeführt werden. Außerdem können diese "weiteren Aufführungen von Werten" zwischen 0 und beliebig oft auftauchen. Insgesamt ergibt das als Ausdruck zwischen den geschweiften Klammern: " ( 0 [ 1 9 ] [ 0 9 ] { 0, 9 } ) ( ',' ( 0 [ 1 9 ] [ 0 9 ] { 0, 9 } ) ) * " Die optionalen Zeilenumbrüche müssen auch berücksichtigt werden. Sie dürfen nur zwischen Werten und den trennenden Kommas stehen, also müssen sie auch genau da eingebaut werden: " ( 0 [ 1 9 ] [ 0 9 ] { 0, 9 } ) ( '\n'? ',' '\n'? ( 0 [ 1 9 ] [ 0 9 ] { 0, 9 } ) ) * " Zuletzt muss noch der Ausdruck für Werte in den oben zusammengebauten Ausdruck für die "Gesamtdatei" zwischen die geschweiften Klammern eingebastelt werden und fertig ist das Ergebnis: " ( csv \{ ( 0 [ 1 9 ] [ 0 9 ] { 0, 9 } ) ( '\n'? ',' '\n'? ( 0 [ 1 9 ] [ 0 9 ] { 0, 9 } ) ) * \} )? " Seite 5 / 6
6 4 Aufgaben to go 1. Erstelle einen regulären Ausdruck, der einfache deutsche Sätze erkennt. Dabei gelten folgende Regeln: Das Alphabet besteht aus der Menge {'Prädikat', 'Substantiv', 'Verb', '.', 'und', 'oder', ','} Sätze müssen aus der Abfolge "Subjekt Verb Objekt" bestehen. Ein Subjekt besteht aus einem optionalen Prädikat und einem nachfolgenden Substantiv. Ebenso besteht ein Objekt aus einem optionalen Prädikat und einem nachfolgenden Substantiv. Nach einem Satz kommt entweder eine Konjunktion und dann ein weiterer Satz oder ein Punkt (also das Literal '.'). Als Konjunktion ist nur eines der Literale 'und', 'oder' oder ',' erlaubt. 2. Erstelle über dem Alphabet {'1', '2', '3'} einen regulären Ausdruck, der alle dreistelligen Wörter erkennt, die nicht einem dieser drei Wörter entsprechen: "123" "321" "222" Seite 6 / 6
Formale Sprachen und Automaten
Formale Sprachen und Automaten Kapitel 3: Regular Expressions Vorlesung an der DHBW Karlsruhe Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2012 Kapitel 3 Regular
MehrÜbung Praktische Informatik I
Übung Praktische Informatik I HWS 2008/2009 Benjamin Guthier Lehrstuhl für Praktische Informatik IV Universität Mannheim guthier@pi4.informatik.uni-mannheim.de 24.10.08 6-1 Heutige große Übung Hinweise
MehrReguläre Ausdrücke. Michael Jäger. 4. April 2017
Reguläre Ausdrücke Michael Jäger 4. April 2017 Zeichenketten und Sprachen Ein Alphabet ist eine endliche Menge von Symbolen. Beispiele: 1. Σ 1 = {0, 1} 2. Σ 2 = {a, b, c, d, e, f, g, h, i, j, k, l, m,
MehrAlphabet, formale Sprache
n Alphabet Alphabet, formale Sprache l nichtleere endliche Menge von Zeichen ( Buchstaben, Symbole) n Wort über einem Alphabet l endliche Folge von Buchstaben, die auch leer sein kann ( ε leere Wort) l
MehrTheoretische Informatik. Reguläre Sprachen und Automaten
Theoretische Informatik Reguläre Sprachen und Automaten Reguläre Sprachen Reguläre Ausdrücke und Sprachen Gleichungen Syntaxdiagramme Erweiterungen Anwendungen Reguläre Ausdrücke über Σ Syntax: Konstante
MehrDaten und Algorithmen
LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS DATABASE Kapitel 3 Daten und Algorithmen Skript zur Vorlesung Einführung in die Programmierung g im Wintersemester 2012/13 Ludwig-Maximilians-Universität
MehrSei Σ ein endliches Alphabet. Eine Sprache L Σ ist genau dann regulär, wenn sie von einem regulären Ausdruck beschrieben werden kann.
Der Satz von Kleene Wir haben somit Folgendes bewiesen: Der Satz von Kleene Sei Σ ein endliches Alphabet. Eine Sprache L Σ ist genau dann regulär, wenn sie von einem regulären Ausdruck beschrieben werden
MehrEinführung in die Programmierung für NF. Übung
Einführung in die Programmierung für NF Übung 03 06.11.2013 Inhalt Methoden in Java Gültigkeitsbereiche EBNF Einführung in die Programmierung für NF Übung 03 2 Methoden in Java In Methoden werden Ausdrücke
MehrObjektorientierte Programmierung. Kapitel 3: Syntaxdiagramme
Stefan Brass: OOP (Java), 3. 1/31 Objektorientierte Programmierung Kapitel 3: Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2014/15 http://www.informatik.uni-halle.de/ brass/oop14/
MehrGrundlagen der Theoretischen Informatik
Grundlagen der Theoretischen Informatik Sommersemester 2017 20.04.2017 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Bis jetzt Organisatorisches Literatur Motivation und Inhalt Kurzer
MehrKapitel 2: Formale Sprachen Gliederung. 0. Grundbegriffe 1. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie
Gliederung 0. Grundbegriffe 1. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie 2.1. 2.2. Reguläre Sprachen 2.3. Kontextfreie Sprachen 2/1, Folie 1 2015 Prof. Steffen
MehrTheorie der Informatik. Theorie der Informatik. 6.1 Einführung. 6.2 Alphabete und formale Sprachen. 6.3 Grammatiken. 6.4 Chomsky-Hierarchie
Theorie der Informatik 17. März 2014 6. Formale Sprachen und Grammatiken Theorie der Informatik 6. Formale Sprachen und Grammatiken Malte Helmert Gabriele Röger Universität Basel 17. März 2014 6.1 Einführung
MehrKapitel 5: Syntaxdiagramme und Grammatikregeln
5. Syntaxdiagramme und Grammatikregeln 5-1 Objektorientierte Programmierung (Winter 2010/2011) Kapitel 5: Syntaxdiagramme und Grammatikregeln Syntaxdiagramme Grammatikregeln (kontextfrei) Beispiele: Lexikalische
MehrEinführung in die Theoretische Informatik
Technische Universität München Fakultät für Informatik Prof. Tobias Nipkow, Ph.D. Sascha Böhme, Lars Noschinski Sommersemester 2 Lösungsblatt 2 3. Mai 2 Einführung in die Theoretische Informatik Hinweis:
MehrGrundlagen der Theoretischen Informatik
Grundlagen der Theoretischen Informatik Sommersemester 2015 22.04.2015 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Bis jetzt 1. Terminologie 2. Endliche Automaten und reguläre Sprachen
MehrTheoretische Informatik 2 bzw. Formale Sprachen und Berechenbarkeit. Sommersemester Herzlich willkommen!
Theoretische Informatik 2 bzw. Formale Sprachen und Berechenbarkeit Sommersemester 2012 Prof. Dr. Nicole Schweikardt AG Theorie komplexer Systeme Goethe-Universität Frankfurt am Main Herzlich willkommen!
MehrTHIA - Übungsblatt 2.
THIA - Übungsblatt 2. Aufgabe 12 (Eine einfache Sprache). Endliche Ziffernfolgen, die mit einer 0 beginnen, auf die mindestens eine weitere Ziffer folgt, wobei nur die Ziffern 0,..., 7 vorkommen, sollen
Mehr3 Regular expressions
3 Regular expressions Es gibt eine ganze Reihe von Unix-Werkzeugen, für deren Benutzung es sinnvoll oder gar wesentlich ist, dass man mit etwas umgehen kann, was als regular expression oder kurz Regex
MehrAdvertizor Version 1.1 Formatbeschreibung der Import-Schnittstellen
Advertizor Version 1.1 Formatbeschreibung der Import-Schnittstellen Advertizor - Kunden-Schnittstelle Stand 27. Mai 2008 Seite 1 von 7 Inhaltsverzeichnis 1 STAMMDATE-IMPORT SCHITTSTELLE...3 1.1 Definition
MehrAdventure-Problem. Vorlesung Automaten und Formale Sprachen Sommersemester Adventure-Problem
-Problem Vorlesung Automaten und Formale Sprachen Sommersemester 2018 Prof. Barbara König Übungsleitung: Christina Mika-Michalski Zum Aufwärmen: wir betrachten das sogenannte -Problem, bei dem ein Abenteurer/eine
MehrFormale Sprachen. Inhaltsverzeichnis. M. Jakob. 10. Dezember Allgemeine Einführung. Aufbau formaler Sprachen
M. Jakob Gymnasium Pegnitz 10. Dezember 2014 Inhaltsverzeichnis Allgemeine Einführung Aufbau formaler Sprachen Notationsformen formaler Sprachen Backus-Naur-Formen Erkennen formaler Sprachen Implementierung
MehrAlgorithmen mit konstantem Platzbedarf: Die Klasse REG
Algorithmen mit konstantem Platzbedarf: Die Klasse REG Sommerakademie Rot an der Rot AG 1 Wieviel Platz brauchen Algorithmen wirklich? Daniel Alm Institut für Numerische Simulation Universität Bonn August
MehrWS06/07 Referentin: Katharina Blinova. Formale Sprachen. Hauptseminar Intelligente Systeme Dozent: Prof. Dr. J. Rolshoven
WS06/07 Referentin: Katharina Blinova Formale Sprachen Hauptseminar Intelligente Systeme Dozent: Prof. Dr. J. Rolshoven 1. Allgemeines 2. Formale Sprachen 3. Formale Grammatiken 4. Chomsky-Hierarchie 5.
MehrVorkurs Theoretische Informatik
Vorkurs Theoretische Informatik Einführung in die Grundideen und in die Mengenlehre Arbeitskreis Theoretische Informatik Montag, 01.10.2018 Fachgruppe Informatik Übersicht 1. Allgemeines Organisatorisches
MehrFormale Sprachen und Automaten
Formale Sprachen und Automaten Kapitel 1: Grundlagen Vorlesung an der DHBW Karlsruhe Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2012 Ziel Einführung der wichtigsten
MehrAbschnitt 4: Daten und Algorithmen
Abschnitt 4: Daten und Algorithmen 4. Daten und Algorithmen 4.1 4.2 Syntaxdefinitionen 4.3 Eigenschaften von Algorithmen 4.4 Paradigmen der Algorithmenentwicklung Peer Kröger (LMU München) Einführung in
MehrLogik. Logik. Vorkurs Informatik Theoretischer Teil WS 2013/ September Vorkurs Informatik - Theorie - WS2013/14
Logik Logik Vorkurs Informatik Theoretischer Teil WS 2013/14 30. September 2013 Logik > Logik > logische Aussagen Logik Logik > Logik > logische Aussagen Motivation Logik spielt in der Informatik eine
MehrVorbemerkung. Allgemeines zu Shell Scripts. Aufruf. Einfaches Beispiel
Inhalt: Vorbemerkung...1 Allgemeines zu Shell Scripts...1 Aufruf...1 Einfaches Beispiel...1 Testen eines Shell-Scripts...2 Kommandozeilen-Parameter...2 Prozeßsteuerung...3 Bedingte Ausführung: if...3 Mehrfachentscheidung:
MehrMaike Buchin 18. Februar 2016 Stef Sijben. Probeklausur. Theoretische Informatik. Bearbeitungszeit: 3 Stunden
Maike Buchin 8. Februar 26 Stef Sijben Probeklausur Theoretische Informatik Bearbeitungszeit: 3 Stunden Name: Matrikelnummer: Studiengang: Geburtsdatum: Hinweise: Schreibe die Lösung jeder Aufgabe direkt
Mehr1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -
1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik
Mehr1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -
1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik
MehrSprachen sind durch folgenden Aufbau gekennzeichnet:
BNF UND SYNTAXDIAGRAMME 1. Allgemeines 1.1 Aufbau von Sprachen BNF und Syntaxdiagramme werden verwendet, um die Syntax einer Sprache darzustellen und graphisch zu veranschaulichen. Mit ihnen können entweder
MehrNachklausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2012/13
Institut für Kryptographie und Sicherheit Prof. Dr. Jörn Müller-Quade Nachklausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2012/13 Vorname Nachname Matrikelnummer Hinweise Für
MehrGrundbegriffe der Informatik Tutorium 33
Tutorium 33 02.02.2017 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Gliederung 1 2 3 Ein ist ein Tupel A = (Z, z 0, X, f, Y, h)
MehrSyntax. 1 Jedes A AS AL ist eine (atomare) Formel. 2 Ist F eine Formel, so ist auch F eine Formel. 3 Sind F und G Formeln, so sind auch
Formale der Informatik 1 Kapitel 15 Folgerbarkeit, Äquivalenzen und Normalformen Frank Heitmann heitmann@informatik.uni-hamburg.de 8. Juni 2015 Syntax Definition (Syntax der Aussagenlogik) Mit AS AL sei
MehrGrundbegriffe der Informatik Kapitel 3: Mengen, Alphabete, Abbildungen
Grundbegriffe der Informatik Kapitel 3: Mengen, Alphabete, Abbildungen Thomas Worsch KIT, Institut für Theoretische Informatik Wintersemester 2015/2016 GBI Grundbegriffe der Informatik KIT, Institut für
Mehr3.1 Reservierte Wörter
3.1 Reservierte Wörter int Bezeichner für Basis-Typen; if, else, while Schlüsselwörter aus Programm-Konstrukten; (,), ",, {,},,,; Sonderzeichen. 62 3.2 Was ist ein erlaubter Name? Schritt 1: Angabe der
MehrLemma Für jede monotone Grammatik G gibt es eine kontextsensitive
Lemma Für jede monotone Grammatik G gibt es eine kontextsensitive Grammatik G mit L(G) = L(G ). Beweis im Beispiel (2.): G = (V,Σ, P, S) : P = {S asbc, S abc, CB BC, ab ab, bb bb, bc bc, cc cc}. (i) G
MehrDatenformat zum Import von CSV-Dateien
Datenformat zum Import von CSV-Dateien (Stand: FB 2015) Allgemeines Zur Vereinfachung der Dateneingabe für die Deutsche Bibliotheksstatistik (DBS) haben die Fachstellen die Möglichkeit, die Daten der von
MehrGrundlagen der theoretischen Informatik
Grundlagen der theoretischen Informatik Kurt Sieber Fakultät IV, Department ETI Universität Siegen SS 2013 Vorlesung vom 09.04.2013 Inhalt der Vorlesung Teil I: Automaten und formale Sprachen (Kurt Sieber)
MehrGrundlagen der Theoretischen Informatik
Grundlagen der Theoretischen Informatik Sommersemester 2015 16.04.2015 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Bis jetzt Organizatorisches Literatur Motivation und Inhalt Kurzer
MehrMethoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom
Einstieg in die Informatik mit Java, Vorlesung vom 2.5.07 Übersicht 1 2 definition 3 Parameterübergabe, aufruf 4 Referenztypen bei 5 Überladen von 6 Hauptprogrammparameter 7 Rekursion bilden das Analogon
MehrInformatik III. Christian Schindelhauer Wintersemester 2006/07 3. Vorlesung
Informatik III Christian Schindelhauer Wintersemester 2006/07 3. Vorlesung 02.11.2006 schindel@informatik.uni-freiburg.de 1 Kapitel III Reguläre Sprachen Reguläre Sprachen und Ausdrücke Informatik III
MehrEinführung in die Programmierung EBNF. Thomas R. Gross. Department Informatik ETH Zürich
252-0027 Einführung in die Programmierung EBNF Thomas R. Gross Department Informatik ETH Zürich Übersicht Es gibt vier elementare Ausdrucksmöglichkeiten in EBNF Sie lernen EBNF Beschreibungen zu lesen
MehrElementare Konzepte von
Elementare Konzepte von Programmiersprachen Teil 1: Bezeichner, Elementare Datentypen, Variablen, Referenzen, Zuweisungen, Ausdrücke Kapitel 6.3 bis 6.7 in Küchlin/Weber: Einführung in die Informatik Bezeichner
MehrElementare Unix-Befehle 11
Elementare Unix-Befehle 11 beliebige Dateien vergleichen mit diff - diff datei1 datei2 listet die Unterschiede zwischen den beiden Dateien: d.h., welche Änderungen an den beiden Dateien ausgeführt werden
MehrHerzlich willkommen!!!
Theoretische Informatik 2 Sommersemester 2013 Prof. Dr. Georg Schnitger AG Theoretische Informatik Johann Wolfgang Goethe-Universität Frankfurt am Main Herzlich willkommen!!! 1 / 19 Kapitel 1: Einführung
MehrArithmetik in der tcsh
Arithmetik in der tcsh Variablen speichern Zeichenketten (also Strings/Wörter) @ statt set Interpretation als arithmetische Ausdrücke (aus Ziffern, (, ), +, -, *, /, % bestehend) Beispiele: @ var = (3
MehrFormale Grundlagen der Informatik 1 Kapitel 13 Aussagenlogik Syntax & Semantik
Formale Grundlagen der Informatik 1 Kapitel 13 Aussagenlogik & Frank Heitmann heitmann@informatik.uni-hamburg.de 23. Mai 2016 Frank Heitmann heitmann@informatik.uni-hamburg.de 1/42 Literaturhinweis Literaturhinweis
MehrFormale Methoden 1. Gerhard Jäger 23. Januar Uni Bielefeld, WS 2007/2008 1/18
1/18 Formale Methoden 1 Gerhard Jäger Gerhard.Jaeger@uni-bielefeld.de Uni Bielefeld, WS 2007/2008 23. Januar 2008 2/18 Das Pumping-Lemma Sein L eine unendliche reguläre Sprache über ein endliches Alphabet
MehrDatenformat zum Import von CSV-Dateien
Datenformat zum Import von CSV-Dateien (Eingabe für das BJ 2015; Stand Dez. 2015) Allgemeines Zur Vereinfachung der Dateneingabe für die Deutsche Bibliotheksstatistik (DBS) haben die Fachstellen die Möglichkeit,
MehrSpezifikation in Datalog:
Spezifikation in Datalog: darf_hinzufügen (X,W) :- editiert (Z,W), hat_mitglied (Z,X). darf_löschen (X,E) :- besitzt (X,E). darf_modifizieren (X,E) :- besitzt (X,E). darf_modifizieren (X,E) :- besitzt
MehrGrundlagen der Informatik II
Grundlagen der Informatik II Tutorium 2 Professor Dr. Hartmut Schmeck Miniaufgabe * bevor es losgeht * Finden Sie die drei Fehler in der Automaten- Definition. δ: A = E, S, δ, γ, s 0, F, E = 0,1, S = s
MehrTheorie 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
MehrSatz von Kleene. (Stephen C. Kleene, ) Wiebke Petersen Einführung CL 2
Satz von Kleene (Stephen C. Kleene, 1909-1994) Jede Sprache, die von einem deterministischen endlichen Automaten akzeptiert wird ist regulär und jede reguläre Sprache wird von einem deterministischen endlichen
Mehr2.2 Syntax, Semantik und Simulation
2.2 Syntax, Semantik und Simulation Ein Java Programm ist eine Folge von Buchstaben. Nicht jede Folge von Buchstaben ist ein korrektes Java Programm! Wie kann man alle korrekten Java Programme beschreiben?
Mehr(Prüfungs-)Aufgaben zu formale Sprachen
(Prüfungs-)Aufgaben zu formale Sprachen (siehe auch bei den Aufgaben zu endlichen Automaten) 1) Eine Grammatik G sei gegeben durch: N = {S, A}, T = {a, b, c, d}, P = { (S, Sa), (S, ba), (A, ba), (A, c),
MehrFormale Sprachen und endliche Automaten
Formale Sprachen und endliche Automaten Formale Sprachen Definition: 1 (Alphabet) Ein Alphabet Σ ist eine endliche, nichtleere Menge von Zeichen oder Symbolen. Ein Wort über dem Alphabet Σ ist eine endliche
MehrFunktionen in JavaScript
Funktionen in JavaScript Eine Funktion enthält gebündelten Code, der sich in dieser Form wiederverwenden lässt. Mithilfe von Funktionen kann man denselben Code von mehreren Stellen des Programms aus aufrufen.
MehrGrundbegriffe der Informatik
Grundbegriffe der Informatik Tutorium 4 26..25 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu
MehrFunktionen in JavaScript
Funktionen in JavaScript Eine Funktion enthält gebündelten Code, der sich in dieser Form wiederverwenden lässt. Es können ganze Programmteile aufgenommen werden. Mithilfe von Funktionen kann man denselben
MehrMathematik für Informatiker 1 Wintersemester 2013/14 Übungsblatt 4
Prof. Dr. Bernhard Steffen Dipl.Inf. Malte Isberner Dr. Oliver Rüthing Dipl.Inf. Melanie Schmidt Dr. Hubert Wagner Übungen zur Vorlesung Mathematik für Informatiker 1 Wintersemester 2013/14 Übungsblatt
MehrFormale Methoden 1. Gerhard Jäger 16. Januar Uni Bielefeld, WS 2007/2008 1/19
1/19 Formale Methoden 1 Gerhard Jäger Gerhard.Jaeger@uni-bielefeld.de Uni Bielefeld, WS 2007/2008 16. Januar 2008 2/19 Reguläre Ausdrücke vierte Art (neben Typ-3-Grammatiken, deterministischen und nicht-deterministischen
MehrKapitel IV Formale Sprachen und Grammatiken
Kapitel IV Formale Sprachen und Grammatiken 1. Begriffe und Notationen Sei Σ ein (endliches) Alphabet. Dann Definition 42 1 ist Σ das Monoid über Σ, d.h. die Menge aller endlichen Wörter über Σ; 2 ist
MehrZusammenfassung. Beispiel. 1 Wir betrachten die folgende Signatur F = {,, +, 0, 1} sodass. 3 Wir betrachten die Identitäten E. 4 Dann gilt E 1 + x = 1
Zusammenfassung Zusammenfassung der letzten LVA Einführung in die Theoretische Informatik Christina Kohl Alexander Maringele eorg Moser Michael Schaper Institut für Informatik @ UIBK Wintersemester 2016
MehrAbschnitt 17: Beispiel: Die Klasse String (Teil 2), das Interface Comparable<T>
Abschnitt 17: Beispiel: Die Klasse String (Teil 2), das Interface Comparable 17. Beispiel: Die Klasse String (Teil 2), das Interface Comparable 17.1 Vergleich von Zeichenketten 17.2 Das Interface
MehrÜbungsblatt 1. Lorenz Leutgeb. 30. März 2015
Übungsblatt Lorenz Leutgeb 30. März 205 Aufgabe. Annahmen ohne Einschränkungen: P Σ und P Γ. Per Definitionem der Reduktion: P P 2 f : Σ Γ wobei f total und berechenbar, genau so, dass: w Σ : w P f(w)
MehrProseminar UNIX Tools. Ferdinand Beyer
Reguläre Ausdrücke Proseminar UNIX Tools Ferdinand Beyer Technische Universität München 08.11.2005 Ferdinand Beyer (TUM) Reguläre Ausdrücke 08.11.2005 1 / 39 Gliederung Allgemeines 1 Allgemeines 2 Notation
MehrReguläre Sprachen und endliche Automaten
Reguläre Sprachen und endliche Automaten 1 Motivation: Syntaxüberprüfung Definition: Fließkommazahlen in Java A floating-point literal has the following parts: a whole-number part, a decimal point (represented
MehrDas Postsche Korrespondenzproblem
Das Postsche Korrespondenzproblem Eine Instanz des PKP ist eine Liste von Paaren aus Σ Σ : (v 1, w 1 ),..., (v n, w n ) Eine Lösung ist eine Folge i 1,..., i k von Indizes 1 i j n mit v i1... v ik = w
MehrDie mathematische Seite
Kellerautomaten In der ersten Vorlesung haben wir den endlichen Automaten kennengelernt. Mit diesem werden wir uns in der zweiten Vorlesung noch etwas eingängiger beschäftigen und bspw. Ansätze zur Konstruktion
MehrReguläre Sprachen 2 Endliche Automaten erkennen reguläre Sprachen Satz Jede von einem endlichen Automaten erkannte Sprache ist regulär.
1 Reguläre Sprachen Definition Die Menge L REG(I) der regulären Sprachen ist rekursiv wie folgt definiert:, {λ}, {x} L REG(I) für x I, L, L 1, L 2 L REG(I) impliziert L 1 L 2, L 1 L 2, L L REG(I). Beispiel
MehrDatenformat zum Import von CSV-Dateien
Datenformat zum Import von CSV-Dateien (Eingabe für das BJ 2018; Stand November 2018) Allgemeines Zur Vereinfachung der Dateneingabe für die Deutsche Bibliotheksstatistik (DBS) haben die Fachstellen die
MehrGrundlagen der Theoretischen Informatik, SoSe 2008
2. Aufgabenblatt zur Vorlesung Grundlagen der Theoretischen Informatik, SoSe 2008 (Dr. Frank Hoffmann) Lösung von Manuel Jain und Benjamin Bortfeldt Aufgabe 1 Einelementiges Alphabet (4 Punkte) (a) Geben
MehrDank. Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Reguläre Ausdrücke als Suchmuster für grep
Dank Vorlesung Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I Bernhard Beckert Diese Vorlesungsmaterialien basieren ganz wesentlich auf den Folien zu den Vorlesungen
MehrMySQL Informationsgewinnung Teil 3. Stefan Maihack Dipl. Ing. (FH) Datum:
MySQL Informationsgewinnung Teil 3 Stefan Maihack Dipl. Ing. (FH) Datum: 18.6.2013 Mustervergleich Problem: Der gesuchte Datensatz ist nur teilweise bekannt Beispiel: alle Bücher zum Thema MySQL exakter
MehrFormale Grundlagen der Informatik 1 Kapitel 16 Normalformen und Hornformeln
Formale Grundlagen der Informatik 1 Kapitel 16 Normalformen und Frank Heitmann heitmann@informatik.uni-hamburg.de 9. Juni 2015 Frank Heitmann heitmann@informatik.uni-hamburg.de 1/36 Ersetzbarkeitstheorem
MehrTag 2 Repetitorium Informatik (Java)
Tag 2 Repetitorium Informatik (Java) Dozent: Daniela Novac Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Zeichen und
MehrFrank Heitmann 2/42. 1 Etwas aus der realen Welt in der Logik abstrakt ausdrücken. 2 In der Logik Schlüsse ziehen.
Literaturhinweis Formale Grundlagen der Informatik 1 Kapitel 13 Aussagenlogik & Frank Heitmann heitmann@informatik.uni-hamburg.de 23. Mai 2016 Literaturhinweis Der Logikteil (die nächsten fünf Wochen)
MehrGrammatik Prüfung möglich, ob eine Zeichenfolge zur Sprache gehört oder nicht
Zusammenhang: Formale Sprache Grammatik Formale Sprache kann durch Grammatik beschrieben werden. Zur Sprache L = L(G) gehören nur diejenigen Kombinationen der Zeichen des Eingabealphabets, die durch die
MehrSoftware Entwicklung 1. Fallstudie: Arithmetische Ausdrücke. Rekursive Klassen. Überblick. Annette Bieniusa / Arnd Poetzsch-Heffter
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter Fallstudie: Arithmetische Ausdrücke AG Softech FB Informatik TU Kaiserslautern Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 33 Überblick
MehrGrundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I
Vorlesung Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I Bernhard Beckert Institut für Informatik Sommersemester 2007 B. Beckert Grundlagen d. Theoretischen Informatik:
Mehr1 Σ endliches Terminalalphabet, 2 V endliche Menge von Variablen (mit V Σ = ), 3 P (V (Σ ΣV )) {(S, ε)} endliche Menge von Regeln,
Theorie der Informatik 8. März 25 8. Reguläre Sprachen I Theorie der Informatik 8. Reguläre Sprachen I 8. Reguläre Grammatiken Malte Helmert Gabriele Röger 8.2 DFAs Universität Basel 8. März 25 8.3 NFAs
MehrLogische Programmierung & Deduktive Datenbanken Klausur
Prof. Dr. Stefan Brass 22. September 2011 Institut für Informatik MLU Halle-Wittenberg Logische Programmierung & Deduktive Datenbanken Klausur Name: Matrikelnummer: Studiengang: Aufgabe Punkte Max. Punkte
MehrGrundlagen der Theoretischen Informatik
Grundlagen der Theoretischen Informatik Sommersemester 2015 23.04.2015 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Bis jetzt 1. Terminologie 2. Endliche Automaten und reguläre Sprachen
MehrLexikalische Programmanalyse der Scanner
Der Scanner führt die lexikalische Analyse des Programms durch Er sammelt (scanned) Zeichen für Zeichen und baut logisch zusammengehörige Zeichenketten (Tokens) aus diesen Zeichen Zur formalen Beschreibung
MehrEinführung in die Theoretische Informatik
echnische Universität München Fakultät für Informatik Prof. obias Nipkow, Ph.D. ascha öhme, Lars Noschinski ommersemester 2011 Lösungsblatt 5 6. Juni 2011 Einführung in die heoretische Informatik Hinweis:
MehrAutomaten und Coinduktion
Philipps-Univestität Marburg Fachbereich Mathematik und Informatik Seminar: Konzepte von Programmiersprachen Abgabedatum 02.12.03 Betreuer: Prof. Dr. H. P. Gumm Referentin: Olga Andriyenko Automaten und
MehrErstellen einer CSV-Datei
Erstellen einer CSV-Datei Hanspeter Schneider, 6. Juni 2008 Immer wieder besteht Bedarf, in der WinIBW gefundene Treffer außerhalb der Pica-Umgebung nachzubearbeiten. Dafür werden oftmals durch mittels
MehrEinführung in die Theoretische Informatik
Technische Universität München Fakultät für Informatik Prof. Tobias Nipkow, Ph.D. Dr. Werner Meixner, Dr. Alexander Krauss Sommersemester 2 Lösungsblatt 2. Mai 2 Einführung in die Theoretische Informatik
MehrHausaufgaben. zur Vorlesung. Vollständige Induktion. 1. Beweist folgende Formeln (zu beweisen ist nur die Gleichheit mit dem. i=1 (4 + i)!
WS 015/1 Hausaufgaben zur Vorlesung Vollständige Induktion 1. Beweist folgende Formeln zu beweisen ist nur die Gleichheit mit dem! -Zeichen : a 5 + + 7 + 8 + + 4 + n n 4 + i! nn+9 b 1 + + 9 + + n 1 n 1
MehrSprachen und Programmiersprachen
Sprachen und Programmiersprachen Natürliche Sprachen versus Programmiersprachen / Spezifikationssprachen Syntax legt die grammatikalische Korrektheit fest. Semantik legt die Bedeutung von syntaktisch korrekten
MehrFormalismen für REG. Formale Grundlagen der Informatik 1 Kapitel 7 Kontextfreie Sprachen. Das Pumping Lemma. Abschlusseigenschaften
Formalismen für RE Formale rundlagen der Informatik 1 Kapitel 7 Kontextfreie Sprachen Frank Heitmann heitmann@informatik.uni-hamburg.de Satz Zu jeder regulären Sprache L gibt es einen DFA A mit L(A) =
MehrFragenkatalog 2. Abgabegespräch Formale Modellierung 3 Reguläre Sprachen
Fragenkatalog 2. Abgabegespräch Formale Modellierung 3 Reguläre Sprachen 1. Was ist eine formale Sprache? Menge von Zeichenketten, die aus den Symbolen eines beliebigen Alphabets aufgebaut sind. Zeichenkette:
MehrTheoretische Grundlagen der Informatik
Theoretische Grundlagen der Informatik Rolf Socher ISBN 3-446-22987-6 Leseprobe Weitere Informationen oder Bestellungen unter http://www.hanser.de/3-446-22987-6 sowie im Buchhandel Einführung.. 13 2 Endliche
MehrEs gibt immer einen Schlüssel und einen zugehörigen Wert,
JSON JavaScript Object Notation Im Unternehmenskontext spielt der Austausch von Daten zwischen unterschiedlichen Systemen eine große Rolle. Dabei müssen oft Technologie und Zuständigkeitsgrenzen überwunden
MehrBlocktutorium EidP. -Theorie II. EBNF Syntaxdiagramm Methodenüberladung
Blocktutorium EidP. -Theorie II EBNF Syntaxdiagramm Methodenüberladung ::= bla blubb [ 0 oder ein mal] { beliebig oft (0.. N) } Klammern (sind auch) möglich Aufgabe 1 Geben Sie eine Grammatik
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Fallstudie: Arithmetische Ausdrücke Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 33 Überblick
Mehr