Theoretische Informatik und Logik Homepage zu dieser LVA: http://www.logic.at/lvas/wiki/185263 Bernhard Gramlich, gramlich@logic.at Marion Oswald, marion@logic.at 1
Vorlesungsteil Vorlesungtermine: Do, 18:15 19:45, HS 5 Fr, 15:15 16:45, Inf HS Ausnahmen: Fr, 7.10., 15:15 16:45, HS 5 Fr, 21.10., 15:15 16:45, HS 6 2
Übungsteil Übungsgruppen(UE) betreut von TutorInnen Anmeldung ab nächster Woche im TUWEL Erste Übungseinheit: 19.10./20.10. 2011 WICHTIG: Ankreuzen und uploaden(pdf) der Übungsbeispiele im TUWEL(Termine beachten!) Übungsbeispiele rechtzeitig auf Homepage bzw. im TUWEL Abgabegespräche(AG) bei LVA-Leitern Anmeldung im TUWEL Termine:KW46bzw.KW50/51 Übungsbeispiele rechtzeitig auf Homepage bzw. im TUWEL 3
Beurteilung Übung(max. 40 Punkte) Übungsgruppen(UE) 6UE-einheiten 4 Beispiele pro Einheit Punkte pro Einheit: 0-4 Abgabegespräche(AG) 2 Abgabegespräche 4BeispieleproAG PunkteproAG:0-8 4
Beurteilung Vorlesungprüfung(max. 60 Punkte) Haupttermin: Do 19.01.12, 18:15-20:15, Anmeldung(TISS)! 3 Ersatztermine im Sommersemester Voraussetzung: positiver UE-teil mindestens1punkteproag mindestens10punkteinue1-3undag1 mindestens10punkteinue4-6undag2 5
Gesamtnote Gesamtpunkte Note 100 86 1 85 71 2 70 61 3 60 51 4 50 0 5 6
Unterlagen Skriptum Vorlesungsfolien Bücher für ersten Teil: P.Linz: An Introduction to Formal Languages and Automata. Jones and Bartlett Publishers Inc., 2001. J.Hopcroft, R.Motwani, J.Ullman: Einführung in die Automatentheorie, Formale Sprachen und Komplexitätstheorie. Pearson Studium, 2002. Weitere Literatur: siehe Homepage der Lehrveranstaltung. Weitere Informationen Primäre Anlaufstelle für Fragen: http://www.logic.at/lvas/wiki/185263 TU-Help-Form: www.informatik-forum.at 7
Lehrziel und Inhalt Ziel: Vermittlung von Grundbegriffen der theoretischen Informatik und der Logik, Einführung in ihre mathematisch-formale Methodik. Inhalt: Formale Sprachen und Automaten Aussagenlogik Prädikatenlogik 8
Formale Sprachen und Automaten Inhalt Grundlagen Reguläre Sprachen: reguläre Mengen, reguläre Ausdrücke (Algebra, EBNF, grep), Syntaxdiagramme Endliche Automaten(EA): reguläremenge NEA DEA reguläremenge Grammatiken, Chomsky-Hierarchie Turingmaschinen Grenzen der Berechenbarkeit,(Un)Entscheidbarkeit Weiterführende Themen 9
Was sind formale Sprachen? Formale Sprache:(un)endliche Menge von endlichen Zeichenketten Beispiele: Programmiersprachen(C, Java,...) Markup-Sprachen(Html,...) Kommunikationsprotokolle Terme prädikatenlogische Formeln Warum formale Spezifikation? Referenz für Anwender, Implementierer, Auftragnehmer/geber Automatische Programmgenerierung: Compilergeneratoren Formale Verifikation(Korrektheit, Deadlockfreiheit,...) Automatisches Beweisen Kriterium für Spezifikationsmethode: Endlichkeit 10
Beispiele für Spezifikationsmethoden Reguläre Ausdrücke: DOS: dir a*.exe Unix:^[0-9]+\.[0-9]*(E[+-]?[0-9]+)?$ Syntaxdiagramme: digit digit. ScaleFactor 11
Automaten: q 4 digit digit +, digit digit. E digit digit q0 q1 q2 q3 q5 Grammatik: Satz HwPZwP HwP ArtHw ZwP HzwHwPZw Art der das Hw Student Skriptum Hzw wird Zw lesen 12
Grundlagen: Wörter Alphabet: endliche, nicht-leere Menge atomarer Symbole(Σ, T). WortüberΣ:endlicheFolgevonSymbolenausΣ. Länge eines Wortes w über Σ(geschrieben w ): Anzahl der Symbole, die w enthält. FüreinWortw(überΣ)derLängenschreibenwirauch w=a 1 a 2...a n wobeijedesa i Σ Wort mit der Länge 0: Leerwort, geschrieben ε, d.h. ε =0 13
Konkatenation: Hintereinanderschreiben von Wörtern Seienx,yWörtermit x =n, y =m,dannist x y=xy xy =n+m Achtung:x y y x Potenzbildung: Verkettung eines Wortes w mit sich selbst w k = w w... w }{{} k w 0 =ε w n =w w n 1 14
Grundlagen: Sprachen Σ + :MengeallerWörterüberΣ. Σ :MengeallerWörter(inklusiveε)überΣ. Formale Sprache:beliebigeTeilmengeLvonΣ L Σ Es gilt: Σ + = n 1Σ n wobeiσ n ={s 1 s n s i Σ,1 i n} Σ =Σ + {ε} Σ,,ε bildetmonoid. 15
Spezielle Eigenschaften von Wörtern FüreinWortw Σ,wobeiw=xuyfürWörterx,u,y Σ heißt xpräfix,uteilwortundysuffixvonw. FüreinWortw Σ undeinsymbola Σbezeichnenwirdie Anzahl der Symbole a in wmit w a Seiw=a 1 a 2...a n 1 a n. Dannistw r =a n a n 1...a 2 a 1 dasspiegelbildvonw. EinWortwheißtPalindrom,wennw=w r gilt. 16
Operationen auf Sprachen P(Σ ):MengeallerSprachenL Σ. KonkatenationvonSprachenL 1,L 2 : L 1 L 2 ={w 1 w 2 w 1 L 1,w 2 L 2 } Potenzbildung einer Sprache L: L 0 ={ε} und L n+1 =L L n fürn 0. L = n 0L n Kleene-Stern L + = n 1 L n P(Σ ),,{ε} bildetmonoid. 17
Rechenregeln für Sprachoperatoren A (B C) = (A B) C Assoziativitätvon A (B C) = A B A C Distributivitätvon (B C) A = B A C A Distributivitätvon (A {ε}) = A (A ) = A A A = A + A A = A + A + {ε} = A {ε} A = A A {ε} = A {} A = {} A {} = {} P(Σ ),,,{},{ε} bildetnichtkommutativensemiring. 18
Reguläre Sprachen Gebildet durch Vereinigung, Konkatenation und Stern Äquivalent: endliche Automaten, reguläre Grammatiken Anwendungen in der Informatik: Compilerbau: Tokens bilden reguläre Sprache, verarbeitet durch Scanner(Lexer). Reguläre Ausdrücke dienen als Eingabe für Scannergeneratoren (lex, flex). Texteditoren: erweiterte Suche DOS,Unix-Shells,grep,awk,Perl,Xml,... 19
Induktive Definition Gegeben: GrundmengeA 0 B, Bildungsregelf:B n B Stufenweise Konstruktion von Mengen: A i+1 =A i {f(e 1,...,e m ) e 1,...,e m A i } LimesvonA i fürinachunendlich: A = i 0A i Definition. A heißt abgeschlossen unter f, wenn gilt: x 1,...,x n A f(x 1,...,x n ) A 20
Beispiel: B=N,A 0 ={0},f:N N, f(n)=n+2. A i+1 =A i {f(n) A i N } A= i 0 A i (geradezahlen) A 0 ={0}, A 1 ={0,2}, A 2 ={0,2,4},... 21
Satz. (a) Aistabgegeschlossenunterf. (b) IstA abgeschlossenunterf undgilta 0 A B, danngilta A. D.h.:AistdiekleinsteMenge,dieA 0 enthältundabgeschlossenist unterf. Schema der induktiven Definition AistdiekleinsteMenge,fürdiegilt: (a) A 0 A (b) x 1,...,x n A f(x 1,...,x n ) A (Aistabgeschlossenunterf) 22
Definition.DieMengeL reg (Σ)derregulärenMengen(Sprachen) über Σ ist die kleinste Menge, sodass (a) {},{a} L reg (Σ)fürallea Σ (b) A,B L reg (Σ) A B,A B,A L reg (Σ) Beispiel. Real-Zahlen digit = {0,...,9} scale = {E,E+,E } digit + real = digit + {.} digit ({ε} scale) 23
Algebraische Notation s statt {s}fürs Σ L 1 +L 2 statt L 1 L 2 ε statt {ε} L 1 L 2 statt L 1 L 2 statt {} L bleibt L hatdiehöchstepriorität,+dieniedrigste. Beispiel. Real-Zahlen(algebraisch) digit = 0+ +9 scale = E(ε+++ )digitdigit real = digitdigit.digit (ε+scale) 24
EBNF-Notation EBNF reg. Menge Kommentar AB A B Aufeinanderfolge A B A B Alternativen [A] {ε} A Option {A} A Wiederholung (A) (A) Gruppierung "s" {s} s Σ Beispiel. Real-Zahlen(EBNF) real = digit {digit} "." {digit} [scale] scale = "E" ["+" "-"] digit {digit} digit = "0" "1" "2" "9" 25
Syntaxdiagramme Syntaxdiagramm reg. Menge EBNF A A A s {s} "s" A A + A{A} A A {A} A B A B AB A B A B A B A A {ε} [A] 26
Beispiel. Real-Zahlen(Syntaxdiagramm) real digit digit. scale scale + E digit - digit 0 1... 9 27
Reguläre Definitionen Verwendung von Abkürzungen für reguläre Teilausdrücke. Erhöht nicht die Ausdruckskraft. Bessere Strukturierung, bessere Lesbarkeit. Keine direkte oder indirekte Rekursivität: digit={0,...,9}, digits=digit digits {ε} ist nicht zulässig! 28
egrep unter Unix Ausdruck selektiert s Zeichen s(kein Spezialsymbol) \s Zeichen s. alle Zeichen außer Zeilenende ^ Zeilenanfang $ Zeilenende [s 1 s n ] allezeichenin{s 1,...,s n } [^s 1 s n ] allezeichenaußer{s 1,...,s n } r* nullmaloderöfterr r+ einmaloderöfterr r? nullodereinmalr 29
Ausdruck selektiert r{i} imalr r{i,} imaloderöfterr r{i,j} ibisj Malr r 1 r 2 r 1 gefolgtvonr 2 r 1 r 2 r 1 oderr 2 (r) r Beispiel. Real-Zahlen(egrep) ^[0-9]+\.[0-9]*(E[+-]?[0-9]+)?$ 30