Theoretische Informatik

Größe: px
Ab Seite anzeigen:

Download "Theoretische Informatik"

Transkript

1 Theoretische Informatik Wolfgang Ertel 28. Oktober 2008

2 Inhaltsverzeichnis 1 Formale Sprachen und Maschinenmodelle Grundlagen Grammatiken Chomsky-Hierarchie Endliche Automaten Reguläre Ausdrücke Der Lexical Analyzer Lex Yacc: Yet Another Compiler Compiler Kellerautomaten Turingmaschinen Zusammenfassung zu Sprachen und Maschinenmodellen Übungen Berechenbarkeit und Komplexität Berechenbarkeit Komplexitätsklassen NP-Vollständigkeit Übungen Aussagenlogik 46 Prädikatenlogik 46 PROLOG 46 Grenzen der Logik 46 Literaturverzeichnis 48

3 Kapitel 1 Formale Sprachen und Maschinenmodelle 1.1 Grundlagen Man muss sich Sprachen vorstellen wie einen Legobaukasten. Die Buchstaben des Alphabets entsprechen elementaren Bausteinen und die Worte, beziehungsweise Sätze entsprechen gebauten Objekten. Solche Mengen lassen sich mehr oder weniger einfach beschreiben. Zum Beispiel die Menge der Objekte, die nur aus roten Steinen gebaut sind. Oder die Menge der Objekte bei denen auf einem Basisstein nur Steine oben draufgesetzt werden dürfen, aber nicht daneben. Was ist, wenn ich das fertige Objekt auf den Kopf stelle? Muß dann die Forderung immer noch erfüllt sein? Um solche Unklarheiten auszuschließen, werden wir bei den Sprachen ganz formal vorgehen. Wir werden Spielgregeln in Form von Grammatiken zum Aufbau von Sprachen angeben. Mit diesen Spielregeln können dann nur noch Worte aus einer bestimmten Sprache erzeugt (abgeleitet) werden. Hier stellen sich sofort einige für den Informatiker sehr wichtige und interessante Fragen: ˆ Läßt sich jede formale Sprache durch eine Grammatik beschreiben? ˆ Wenn ich eine Grammatik G habe, die eine Sprache L definiert, wie kann ich erkennen, ob ein Wort zu dieser Sprache gehört oder nicht? ˆ Etwas konkreter: Ist es möglich, für eine konkrete Programmiersprache L in endlicher Zeit zu entscheiden, ob ein vorgegebener Text ein Programm dieser Sprache darstellt oder nicht. Diese Aufgabe ist der Syntaxcheck des Compliers. ˆ Ist diese Entscheidung vielleicht sogar effizient möglich, das heißt, auch für große Programme in kurzer Zeit? ˆ Wenn ja, wie macht man das? ˆ Kann man vielleicht sogar automatisch Fehler in Programmen erkennen, wie zum Beispiel Endlosschleifen? ˆ Kann man überprüfen, ob ein Programm korrekt ist? Die Beantwortung dieser Fragen ist Bestandteil des Gebiets der formalen Sprachen und Automaten. Um es vorweg zu nehmen, wir werden bis auf die erste und die letzten beiden Fragen teilweise oder ganz positive Antworten liefern.

4 4 1 Formale Sprachen und Maschinenmodelle Fangen wir bei den elementaren Bausteinen an. Definition 1.1 Ein Alphabet Σ ist eine endliche nicht leere Menge von Zeichen. Sprachen sind noch einfacher als Lego-Baukästen. Es gibt genau vier Möglichkeiten, zwei Alphabetzeichen a und b miteinander zu verknüpfen, nämlich aa, ab, ba, oder bb. Diese Verknüpfung heißt Konkatenation und ist nicht vertauschbar. Damit kann man beliebig lange endliche Worte bauen, ähnlich wie bei den Legos. Definition 1.2 Die Menge Σ aller Worte ist wie folgt rekursiv definiert. Σ Σ und auch das leere Wort ε ist in Σ enthalten. Für jedes Wort w Σ und jedes Zeichen x Σ ist auch wx Σ. wx ist die Zeichenkette, die entsteht, wenn man das Zeichen x an das Wort w anhängt. Jede Teilmenge von Σ wird Sprache genannt. Beispiel 1.1 Σ = {0, 1} Σ = {0, 1, ε, 00, 01, 10, 11, 001, 000, 011, 010,...} Beispiel 1.2 Σ = {+,,, /, (, ), 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, x, y, a, b} Σ = {..., ) + 567ax,...} T erme = {x, y, a, b, (a),...} T erme Σ Die Menge aller korrekten arithmetischen Terme ist eine kleine Teilmenge von Σ. Ein Affe, der zufällig auf einer entsprechenden Tastatur tippt würde viele Versuche benötigen, um einen korrekten Term zu erzeugen. Die Wahrscheinlichkeit für das Zustandekommen eines 1 vorgegebenen Terms der Länge 40 wäre etwa Definition 1.3 Sei w Σ und n N 0. Dann ist w n das durch n-fache Wiederholung von w entstandene Wort. w 0 ist also das leere Wort ε. Definition 1.4 Für eine endliche Zeichenmenge M ist M die Menge aller Zeichenketten die aus Elementen in M gebildet werden können. Das leere Wort gehört zu M dazu. Die Menge M + = M \ε enthält dagegen nur Worte mit mindestens einem Zeichen.

5 1.1 Grundlagen 5 Beispiel 1.3 Sei Σ = {a, b, c}. Dann sind, {aa, ab, aaa}, {a n n N 0 } = {ε, a, aa, aaa, aaaa,...}, {(ab) n n N 0 } = {ε, ab, abab, ababab, abababab,...}, {a n b n n N 0 } = {ε, ab, aabb, aaabbb, aaaabbbb,...} Teilmengen von Σ und somit Sprachen über dem Alphabet Σ Unendliche Mengen Die kleinste unendliche Menge ist die Menge der natürlichen Zahlen. Man könnte einfach festlegen N := {1, 2, 3,...}. Damit ist aber noch nicht festgelegt, was 1, 2, 3, etc. bedeuten soll. Daher hier die axiomatische Definition der natürlichen Zahlen. Definition 1.5 Axiome der natürlichen Zahlen (Teil der Peano Axiome): (i) 1 ist eine natürliche Zahl (ii) jede natürliche Zahl n besitzt einen Nachfolger n + (iii) Die Zahl 1 ist nicht Nachfolger einer natürlichen Zahl, d.h. n N n + = 1 (iv) n, m N n + = m + n = m, d.h. verschiedene natürliche Zahlen haben verschiedene Nachfolger. (v) Enthält eine Teilmenge A der natürlichen Zahlen die Zahl 1 und mit jeder natürlichen Zahl auch deren Nachfolger n +, so ist A = N. (A N 1 A (n A n + A)) A = N. (v) ist das sogenannte Induktionsaxiom. Andere Formulierung: Gilt eine Aussage für die Zahl 1 und mit jeder Zahl auch für dessen Nachfolger, so gilt sie für alle n N. Definition 1.6 oder {} steht für die leere Menge. N 0 = {0, 1, 2, 3,...}. R sei die Menge der reellen Zahlen. Die Anzahl der Elemente einer Menge M nennt man Mächtigkeit und man schreibt dafür M. Beispiel: {7, 2, 13} = 3, = 0 Definition 1.7 Die Anzahl der Elemente einer Menge M heißt endlich, wenn es eine natürliche Zahl n gibt mit n = M.

6 6 1 Formale Sprachen und Maschinenmodelle Definition 1.8 Zwei Mengen M und M heißen gleich mächtig, wenn eine bijektive Abbildung f : M M existiert. Definition 1.9 Eine Menge M heißt abzählbar, wenn sie gleich mächtig wie die Mange N der natürlichen Zahlen ist. Dann lassen sich also die Elemente von M durchnumerieren. Nicht abzählbare unendliche Mengen heißen überabzählbar. Bemerkung: Jede abzählbare Menge ist unendlich. Warum? Satz 1.1 Die Mengen N, Z und Q sind abzählbar. R ist überabzählbar. Beweis: Wir zeigendie Abzählbarkeit von Q, das heißt es gibt eine Bijektion Q N. Weg: Q Z N Übung /2 2/2 3/2 4/2 5/2 1/3 2/3 3/3 4/3 5/3 1/4 2/4 3/4 4/4 5/4... Damit Bijektion von Q + Z + \ {0} analog: Bijektion von Q Z dadurch Bijektion von Q Z. Satz 1.2 Die rationalen Zahlen sind dicht, d.h. zwischen je zwei rationalen Zahlen existiert eine weitere rationale Zahl. Folgerung: Zwischen zwei beliebigen rationalen Zahlen liegen unendlich viele rationale Zahlen. Beweis: Idee: Mittelwert zweier rationaler Zahlen ist rationale Zahl. Seien a, b Q a < b. Als Übungsaufgabe zu zeigen: a < a+b 2 < b und a+b 2 ist rational!

7 1.2 Grammatiken Mächtigkeit von Sprachen Lemma 1.1 Für jedes endliche Alphabet Σ ist Σ abzählbar. Die Menge aller Sprachen über Σ ist überabzählbar. Beweis: als Übung Die interessanten Sprachen sind unendlich. Zum Beispiel sind alle Programmiersprachen unendlich, denn wir wollen nicht die Länge von Programmen beschränken. 1.2 Grammatiken Besonders interessant sind strukturierte Sprachen. Eine Sammlung von zufällig erzeugten Wörtern ist für die meisten Anwendungen nicht sehr hilfreich. Struktur heißt hier, dass sich die Sprache endlich beschreiben läßt. Wir werden Grammatiken verwenden um Sprachen zu beschreiben. Aus dem Sprachunterricht in der Schule ist die Grammatik der deutschen Sprache bekannt. Ein Satz der deutschen Sprache kann zum Beispiel bestehen aus <Subjekt> <Prädikat> <Objekt> und <Subjekt> wiederum kann ersetzt werden durch <Artikel><Substantiv>. Damit ist also Die Studentin spielt Schach ein wohlgeformter Satz entsprechend der einfachen angegebenen Grammatik. Jede Programmiersprache besitzt eine Grammatik. Beispiel 1.4 Die (unendliche) Menge der arithmetischen Terme wie zum Beispiel x (x + a (b 12)) läßt sich durch folgende Regelgrammatik charakterisieren: <Term> <Term> + <Term> <Term> <Term> <Term> <Term> <Term> / <Term> <Term> <Term> <Term> <Term> (<Term>) <Term> <Var> <Term> <Konst> <Var> x y <Konst> a b <Zahl> <Zahl> <Zahl><Ziffer> <Ziffer> <Ziffer> Hier steht das Zeichen für oder, das heißt, eine Regel S u v steht für die zwei Regeln S u und S v.

8 8 1 Formale Sprachen und Maschinenmodelle Definition 1.10 Eine Grammatik ist ein 4-Tupel G = (V, Σ, P, S) mit V als endliche nichtleere Menge der Variablen. Σ als Menge der Konstanten oder Terminalalphabet und V Σ =. P (V Σ) + (V Σ) als endliche Menge der Produktionsregeln. S V ist die Startvariable. Definition 1.11 Die in Beispiel 1.4 und im Folgenden verwendete Art der Darstellung von Grammatikregeln wird nach ihren Erfindern Backus-Naur-Form oder kurz BNF genannt. Beispiel 1.5 Mit G = ( {<Term>, <Var>, <Konst>, <Zahl>, <Ziffer>}, {x, y, a, b, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, (, ), +,,, /}, P, <Term>) und P als Menge der Regeln aus Beispiel 1.4 ergibt sich also eine Grammatik mit den angegebenen Variablen, Konstanten und < Term > als Startsymbol. Durch sukzessives Anwenden einer der Regeln aus P beginnend mit dem Startsymbol kann

9 1.2 Grammatiken 9 man den obigen Term x (x + a (b 12)) ableiten: <Term> <Term> <Term> <Var> <Term> x <Term> x (<Term>) x (<Term> + <Term>) x (<Var> + <Term>) x (x+ <Term>) x (x+ <Term> <Term>) x (x+ <Konst> <Term>) x (x + a <Term>) x (x + a (<Term>)) x (x + a (<Term> <Term>)) x (x + a (<Konst> <Term>)) x (x + a (b <Term>)) x (x + a (b <Konst>)) x (x + a (b <Zahl>)) x (x + a (b <Zahl><Ziffer>)) x (x + a (b <Ziffer><Ziffer>)) x (x + a (b 1 <Ziffer>)) x (x + a (b 12))

10 10 1 Formale Sprachen und Maschinenmodelle Eine äquivalente Darstellung von Regelgrammatiken in grafischer Form bieten die Syntaxdiagramme, die wir hier nicht formal einführen. Ein Beispiel soll genügen: Beispiel 1.6 Syntaxdiagramm für Terme Term: Term + Term Var: x Term _ Term y Term Term / * Term Term Konst: a ( Var Konst Term ) b Zahl Zahl: Ziffer Ziffer: Definition 1.12 Eine Folge von Wörtern (w 0, w 1,..., w n ) mit w 0 = S und w n Σ heißt Ableitung von w n, falls für i 1 jedes der Wörter w i aus w i 1 entstanden ist durch Anwendung einer Regel aus P auf ein Teilwort von w i 1. Für einen Teilschritt schreibt man w i 1 w i. Ist ein Wort w durch einen oder mehrere Teilschritte aus u ableitbar, so schreibt man u w. Obige Grammatik erzeugt die (unendliche) Menge der Terme als Teilmenge von Σ. Allgemein definiert man Definition 1.13 Die durch G erzeugte bzw. definierte Sprache ist L(G) = {w Σ S w}. Für kontextfreie Sprachen erhält man eine einfachere Darstellung der möglichen Ableitungen eines Wortes mit Hilfe von Syntaxbäumen. Beispiel 1.7 Der Syntaxbaum zur Ableitung aus Beispiel 1.5 hat folgende Gestalt:

11 1.3 Chomsky-Hierarchie 11 <Term> <Term> <Term> <Var> x ( <Term> ) <Term> + <Var> <Term> <Term> <Term> x <Konst> a ( <Term> ) <Term> <Term> <Konst> <Konst> b <Zahl> <Zahl> <Ziffer> <Ziffer> 2 1 Definition 1.14 Eine Grammatik G heißt mehrdeutig, wenn es zu einem Wort ω L(G) mehrere verschiedene Syntaxbäume gibt. Sie heisst eindeutig, wenn es nur einen Syntaxbaum gibt. Wir werden nun die Grammatiken formaler Sprachen einteilen in verschiedene Klassen, die sogenannte Chomsky-Hierarchie mit dem Ziel, zu verstehen, wie sich die Eigenschaften der zugehörigen Sprachen verändern, wenn, ausgehend von den einfachsten (regulären) Grammatiken, immer komplexere Regeln erlaubt sind. 1.3 Chomsky-Hierarchie

12 12 1 Formale Sprachen und Maschinenmodelle Definition 1.15 Jede Grammatik G = (V, Σ, P, S) entsprechend Definition 1.10 ist vom Typ 0. Die Menge der Typ-0-Grammatiken ist also gleich der Menge aller Grammatiken. Typ Bezeichnung erlaubte Regeltypen, (w (V Σ) +, u (V Σ) ) 0 Grammatik w u. 1 kontextsensitiv w u mit w u. 2 kontextfrei A u, A ε, mit A V, d.h. auf der linken Seite aller Regeln kommt genau eine Variable vor. 3 regulär A a, A ab, A ε, d.h. auf der rechten Seite der Regeln steht entweder ein Terminalsymbol oder ein Terminalsymbol gefolgt von einer Variablen. Eine Sprache ist vom Typ t, wenn es eine Grammatik vom Typ t gibt mit L(G) = L. Beispiel 1.8 Die Sprache aus Beispiel 1.4 ist offensichtlich eine kontextfreie Grammatik, das heißt sie ist vom Typ 2. Sie ist aber keine Typ-3-Grammatik. (Warum?) Beispiel 1.9 Die Sprache {a n b n n N} ist kontextfrei und läßt sich durch die Grammatik G = ({S}, {a, b}, P, S) beschreiben mit P = { S asb, S ab }. Diese Sprache ist nicht regulär. Beispiel 1.10 Die Sprache {a n b m n N, m N} ist regulär und läßt sich durch die Grammatik G = ({S, T }, {a, b}, P, S) beschreiben mit P = { S as, S at, T bt, T b }. Die Chomsky-Hierarchie der verschiedenen Sprachklassen ist in folgendem Mengendiagramm dargestellt:

13 1.3 Chomsky-Hierarchie 13 alle Sprachen überabzählbar weil P (Σ ) durch Grammatiken beschreibbare Sprachen Typ 0 abzählbar Typ 1 Typ 2 Typ 3 alle endlichen Sprachen Beispiel 1.11 Σ = {a, b} G 1 = ({S}, Σ, P, S) P = {S as, S bs, S ε} Offenbar läßt sich aus dieser Grammatik jedes Wort w Σ ableiten, also gilt L(G 1 ) = Σ. Diese Aussage läßt sich wie folgt verallgemeinern. Satz 1.3 Sei Σ = {c 1,..., c n }. Dann ist Σ eine Typ-3-Sprache und jede endliche Teilmenge von Σ ist vom Typ 3. Beweis: 1. Teil: es folgt: Σ = {c 1,..., c n } G 1 = ({S}, Σ, P, S) P = {S c 1 S, S c 2 S,..., S c n S, S ε} L(G 1 ) = Σ Weil alle Regeln aus P Typ 3 - Regeln sind ist Σ vom Typ Teil:

14 14 1 Formale Sprachen und Maschinenmodelle Sei die endliche Sprache L = {w 1, w 2,..., w m } gegeben. Die Grammatikregeln für das Wort w i = c i1 c i2... c ili sind: P i = {S c i1 S i1, S i1 c i2 S i2,..., S ili ε} G = (V, Σ, P, S) Σ = m i=1 l i j=1 {c ij } V = {S, S 11,..., S 1l1,..., S m1,..., S mlm } P = m i=1p i 1.4 Endliche Automaten Nun kennen wir einige reguläre Sprachen und deren Regelgrammatik. Mit Hilfe der Grammatik lassen sich alle Worte der Sprache erzeugen. Wir stellen uns die Frage, ob es eine möglichst einfache und effiziente Rechenmaschine gibt, mit der man für ein beliebiges Wort w entscheiden kann, ob dieses zu einer vorgegebenen regulären Sprache gehört. Definition 1.16 Die Aufgabe, zu entscheiden, ob ein Wort w zu einer Sprache L gehört, heißt Wortproblem. Grammatik erzeugt Sprache erkennt Automat Das Wortproblem für reguläre Sprachen kann durch endliche Automaten effizient gelöst werden. Anschaulich ist ein endlicher Automat ein Rechenelement, welches auf einem Eingabeband beginnend mit dem ersten Zeichen das eingegebene Wort Zeichen für Zeichen liest. H A L L O Z Lesekopf Zustand Hierbei kann er seinen internen Zustand entsprechend von Regeln abhängig vom Eingabezeichen wechseln. Die Zahl der Zustände ist endlich. Erreicht der Automat nach Lesen des letzten Zeichens einen Endzustand, so hat er das Wort erkannt. Formal wird der Automat wie folgt definiert:

15 1.4 Endliche Automaten 15 Definition 1.17 Ein endlicher Automat M besteht aus einem 5-, bzw. 7-Tupel M = (Z, Σ, δ, z 0, E) bzw. M = (Z, Σ, δ, z 0, E, γ, Θ) mit Z : endliche Zustandsmenge Σ : endliches Eingabealphabet, Σ Z = φ δ : Z Σ P(Z), die Zustandsübergangsfunktion z 0 : Startzustand E : Menge der Endzustände γ : Z Σ Θ, die Ausgabefunktion Θ : Ausgabealphabet Definition 1.18 Ein Wort w = w 1... w n mit w i Σ wird akzeptiert von dem endlichen Automaten M genau dann wenn M gestartet im Startzustand auf w 1 nach n Anwendungen der Funktion δ, d.h. nach Lesen von w n, einen Endzustand z Σ erreichen kann. Die von M akzeptierte (erkannte) Sprache L(M) ist L(M) = {w Σ M akzeptiert w} Satz 1.4 Eine Sprache L wird von einem endlichen Automaten genau dann erkannt, wenn sie regulär (Typ 3) ist. Beispiel 1.12 Die reguläre Sprache L = {a n b m n N, m N} wird erzeugt durch die Regelmenge P = {S as, S at, T bt, T b} Die Zustandsübergangsfunktion δ des zugehörigen Automaten M = ({S, T, e}, {a, b}, δ, S, {e}) ist gegeben durch die Zustandsübergangstabelle δ S T e a {S, T } b {T, e} Man beachte, dass die Zustandsübergangsfunktion δ nicht eindeutig ist, denn zum Beispiel kann der Automat nach Lesen eines a im Zustand S nach S oder nach T übergehen. Dies zeichnet den nichtdeterministischen Automaten aus. Der zugehörige Zustandsgraph ist

16 16 1 Formale Sprachen und Maschinenmodelle a b S a T b e Beispiel 1.13 Es soll ein Getränkeautomat mit Hilfe eines endlichen Automaten programmiert werden. Der Automat kann mit bis zu 4 Dosen Mineralwasser gefüllt werden. Wenn eine 1-Euro-Münze eingegeben wird, soll er eine Dose Wasser ausgeben. Bei Eingabe einer anderen Münze soll er die eingegebene Münze wieder ausgeben, aber kein Getränk. Wenn der Automat leer ist soll er anhalten und per Funk den Service benachrichtigen. Ein endlicher Automaten (mit Ausgabe) für diese Aufgabe ist wobei δ und γ gegeben sind durch ({z 0, z 1, z 2, z 3, z 4 }, {e, f, m}, δ, z 0, {z 0 }, γ, {e, f, m}) δ, γ z 0 z 1 z 2 z 3 z 4 m z 1, ε z 2, ε z 3, ε z 4, ε e z 0, e z 0, m z 1, m z 2, m z 3, m f z 0, f z 1, f z 2, f z 3, f z 4, f Das Zustandsdiagramm zu diesem Automaten sieht so aus: Dieser Automat akzeptiert alle Eingabesequenzen (Worte), die zum leeren Automaten (d.h. zu z 0 ) führen. Definition 1.19 Beim nichtdeterministischen endlichen Automaten (NFA) sind (im Gegensatz zum deterministischen endlichen Automaten (DFA)) für jeden Zustand Z und Eingabezeichen a mehrere Regeln z, a z 1. erlaubt. z, a z n Bemerkung: Aus der Zustandsübergangsfunktion δ wird eine Relation. Beispiel 1.14 An der Sprache L = {a n b m n N, m N} erkennt man schön, wie die Regelgrammatik in einfacher Weise in einen nichtdeterministischen Automaten übersetzt werden kann:

17 1.5 Reguläre Ausdrücke 17 Regelgrammatik Automat P = {S as δ = {S, a S S at S, a T T bt T, b T T b } T, b E } Hier stellt sich die Frage, ob es vielleicht auch einen deterministischen Automaten gibt, der diese Sprache erkennt. Allgemein lautet die Frage: Sind nichtdeterministische Automaten mächtiger ist als deterministische. Der folgende Satz beantwortet beide Fragen. Satz 1.5 NFAs und DFAs sind gleich mächtig, d.h. zu jedem NFA gibt es einen DFA, der die gleiche Sprache erkennt. 1.5 Reguläre Ausdrücke Reguläre Ausdrücke dienen wie reguläre Grammatiken der Beschreibung von Typ-3-Sprachen. Definition 1.20 Reguläre Ausdrücke zum Alphabet Σ sind: 1.) = {} 2.) ε 3.) a, falls a Σ 4.) sind α, β reguläre Ausdrücke, so auch αβ, α β und α hierbei steht α β für α oder β, α für beliebig viele Wiederholungen von α (auch 0 Wiederholungen). Beispiel 1.15 aa bb beschreibt {a n b m /n N, m N}. Für aa schreibt man kürzer a+. Der Operator + steht also für beliebig viele Wiederholungen, aber mindestens eine. Beispiel 1.16 Sei Σ = {., 0, 1, 2, 3, 4, 5, 6, 7, 8, 9}. Der Ausdruck 0\.( )+ beschreibt die Menge aller Dezimalzahlen mit 0 vor dem Dezimalpunkt. Da wir im Folgenden das Werkzeug Lex bzw. Flex vorstellen werden, wird die Definition der regulären Ausdrücke gekürzt entnommen aus der Linux-Manual-Page zu FLex. Die Rangfolge der Operatoren entspricht deren Priorität.

18 18 1 Formale Sprachen und Maschinenmodelle x match the character x. any character (byte) except newline [xyz] a "character class"; in this case, the pattern matches either an x, a y, or a z [abj-oz] a "character class" with a range in it; matches an a, a b, any letter from j through o, or a Z [^A-Z] a "negated character class", i.e., any character but those in the class. In this case, any character EXCEPT an uppercase letter. [^A-Z\n] any character EXCEPT an uppercase letter or a newline r* zero or more r s, where r is any regular expression r+ one or more r s r? zero or one r s (that is, "an optional r") r{2,5} anywhere from two to five r s r{2,} two or more r s r{4} {name} exactly 4 r s the expansion of the "name" definition (see above) "[xyz]\"foo" the literal string: [xyz]"foo \X if X is an a, b, f, n, r, t, or v, then the ANSI-C interpretation of \x. Otherwise, a literal X (used to escape operators such as * ) \0 a NUL character (ASCII code 0) \123 the character with octal value 123 \x2a (r) rs r s ^r the character with hexadecimal value 2a match an r; parentheses are used to override precedence (see below) the regular expression r followed by the regular expression s; called "concatenation" either an r or an s an r, but only at the beginning of a line (i.e., which just starting to scan, or right after a newline has been scanned). r$ an r, but only at the end of a line (i.e., just before a newline). Mit dieser erweiterten Notation für reguläre Ausdrücke lassen sich Dezimalzahlen (siehe Beispiel 1.16) einfacher beschreiben mit 0\.[ ]+ oder noch einfacher durch 0\.[0-9]+. Bevor wir mit der praktischen Anwendung von regulären Ausdrücken fortfahren noch ein wichiger Satz. Satz 1.6 Jede reguläre Sprache ist durch einen regulären Ausdruck beschreibbar. Umgekehrt definiert jeder reguläre Ausdruck eine reguläre Sprache.

19 1.6 Der Lexical Analyzer Lex Der Lexical Analyzer Lex Lex, bzw. FLEX ist ein sogenannter Lexical Analyzer. Er kann dazu verwendet werden, für reguläre Sprachen das Wortproblem zu lösen, das heisst, zu entscheiden, ob ein vorgegebenes Wort zu einer Sprache L gehört. Lex kann daneben sogar noch erkannte Wörter ersetzen entsprechend definierten Regeln. Das Ersetzen von Ausdrücken der Form Tel.: 0751/ durch Ausdrücke der Form Phone: kann durch folgendes Lex-Programm erfolgen. Die Datei tel.x: %option noyywrap %% Tel\.?:[ \t]+0 printf("phone: ++49-"); [0-9](\/ -)[0-9] printf("%c-%c", yytext[0],yytext[2]); \n printf("\n"); Anwendung des fertigen Programms tel liefert: > tel Tel.: 0751/ Phone: Tel.: 075qt1/ Phone: qt quit quit ^D Aufruf von Lex mit Quelldatei tel.x: flex -otel.c tel.x cc -lfl tel.c -o tel tel der generelle Aufbau eines Lex-Programms (und auch eines Yacc-Programms) ist: Definitionen %% Regeln %% Funktionen

20 20 1 Formale Sprachen und Maschinenmodelle 1.7 Yacc: Yet Another Compiler Compiler Yacc ist ein Programmgenerator, der aus einer kontextfreien Grammatik ein Programm generiert, das die Korrektheit der eingegebenen Worte prüft, das heisst das Wortproblem entscheidet. Yacc wird hauptsächlich dazu verwendet, Parser für Programmiersprachen automatisch zu erzeugen. Er kann also nicht nur die Syntax von Programmiersprachen checken, sondern auch Code generieren. Dies führt jedoch hier zu weit Ein Beispiel mit Lex und Yacc Die Datei term.x #include "y.tab.h" %% \( return(yytext[0]); \) return(yytext[0]); [\+\-\*\/] return(op); [ \t]+ ; [a-za-z][a-za-z0-9_]* return(bez); [0-9]+ return(integer); [0-9]+\.[0-9]+ return(gleitpktz); \n return( \0 ); Die Bison-Eingabedatei term.y %token BEZ OP INTEGER GLEITPKTZ %% term : INTEGER GLEITPKTZ BEZ term OP term ( term ) error {printf("term nicht wohlgeformt!\n");} %% yyerror (s) /* Called by yyparse on error */ char *s; { printf ("%s\n", s); } #include "lex.yy.c" main() { /* yydebug = 1;*/ yyparse(); }

21 1.8 Kellerautomaten 21 Die Datei makefile term: lex.yy.c term.tab.c cc term.tab.c -lfl -o term term.tab.c: term.y bison term.y lex.yy.c: term.x flex term.x Ablauf und Zusammenspiel von Lex, Yacc und CC: 1.8 Kellerautomaten Wir starten mit einem Beispiel an dem man erkennt, dass schon recht einfache Sprachen von einem endlichen Automaten nicht erkannt werden können. Beispiel 1.17 Grammatik für L: L = {a n b n nεn} P = {S asb, S ab} L ist eine Typ-2-Sprache. Daher gibt es keine reguläre Grammatik für L und auch keinen endlichen Automaten, der L erkennt. Beispiel 1.18 Beschränkt man allerdings die Zahl n der a-s und b-s, so gibt es einen endlichen Automaten, der die Sprache erkennt. Sei also L = {a n b n n = 1,..., 100}. Diese Sprache wird erkannt von einem Automaten mit Endzustand E und folgenden Zustandsübergängen

22 22 1 Formale Sprachen und Maschinenmodelle A 0, a A 1 B 0, b E A 1, a A 2 A 1, b B 1 B 1, b B 0 A 2, a A 3 A 2, b B 2 B 2, b B A 98, a A 99 A 99, b B 99 B 99, b B 98 Definition 1.21 Ein Kellerautomat K besteht aus einem 6-Tupel K = (Z, Σ, Γ, δ, z 0, #) mit Z : endliche Zustandsmenge Σ : endliches Eingabealphabet, Σ Z = Γ : endliches Kelleralphabet, Σ Γ = δ : Z (Σ {ε}) Γ P e (Z Γ ), die Zustandsübergangsfunktion 1 z 0 Z : Startzustand # Γ : unterstes Kellerzeichen Beispiel 1.19 Kellerautomat K für L = {a n b n n N} K = {{z 0, z 1 }, {a, b}, {A, #}, δ, z 0, #} δ = {z 0, a, # z 0, A#; z 0, a, A z 0, AA; z 0, b, A z 1, ε; z 1, b, A z 1, ε; z 1, ε, # z 1, ε} Folgende Sequenz von Konfigurationen veranschaulicht die Arbeit von K: a a b b z 0 # a a b b z 0 A # a a b b z 0 A A #

23 1.8 Kellerautomaten 23 a a b b z 1 A # a a b b z 1 # a a b b z 1 L = {a n b n c m n N, m N 0 } δ = δ {z 1, c, # z 1, #} Beispiel 1.20 Palindrome sind Worte, die in der Mitte gespiegelt sind. Wir betrachten nun die Sprache aller Palindrome über dem Alphabet {a, b}, wobei die Mitte des Wortes jeweils durch ein $-Zeichen markiert ist. Sei also Σ = {a, b, $} und L = {a 1... a n $a n... a 1 a i {a, b}, n N 0 } Die Sprache wird erzeugt durch die Typ-2-Grammatik G = (V, Σ, P, S) mit P = {S $ asa bsb} L ist keine Typ 3 Sprache, denn wie oben gezeigt gibt es keinen endlichen Automaten zu dieser Sprache. Folgender deterministischer Kellerautomat erkennt L: Eingabezeichen s 0 s 1 Kellerzeichen a, # s 0, A# b, # s 0, B# $, # s 1, # a, A s 0, AA s 1, ε a, B s 0, AB b, A s 0, BA b, B s 0, BB s 1, ε $, A s 1, A $, B s 1, B ε, # s 1, ε Beispiel 1.21 Lassen wir die Mittenmarkierung weg, so ergibt sich Σ = {a, b} und L = {a 1... a n a n... a 1 a i Σ, n N 0 } mit der Grammatik P = {S asa bsb ε}. Hier kann man nun die Mitte des Wortes nicht mehr in einem deterministischen Durchlauf erkennen. Daher ist ein nichtdeterministischer Kellerautomat gefordert:

24 24 1 Formale Sprachen und Maschinenmodelle Eingabezeichen, s 0 s 1 Kellerzeichen a, # s 0, A#; s 1, A# b, # s 0, B#; s 1, B# a, A s 0, AA; s 1, AA s 1, ε a, B s 0 AB; s 1 AB b, A s 0, BA; s 1 BA b, B s 0, BB; s 1, BB s 1, ε ε, # s 1, ε s 1, ε Die Semantik des Erkennens eines Wortes durch einen deterministischen Kellerautomaten definieren wir wie folgt: Definition 1.22 Ein (nichtdeterministischer) Kellerautomat K erkennt, bzw. akzeptiert ein Wort w = w 1... w n genau dann, wenn es eine Folge von Zustandsübergängen gibt, so dass nach Lesen von w n der Keller ganz leer ist. Hierbei muß K gestartet werden auf w 1. An diesem Beispiel erkennt man, dass nichtdeterministische Kellerautomaten mächtiger sind als deterministische, d.h. es gibt Sprachen, zum Beispiel die Palindrome, die von nichtdeterministischen Kellerautomaten erkannt werden, aber nicht von deterministischen. Satz 1.7 Nichtdeterministische Kellerautomaten erkennen genau die Menge der kontextfreien Sprachen (Chomsky Typ 2). Deterministische Kellerautomaten erkennen genau die Menge der deterministisch kontextfreien Sprachen. Diese Sprachen werden von LR(k)- Grammatiken erzeugt und liegen in der Chomsky-Hierarchie zwischen Typ 2 und Turingmaschinen Eine der vielen großen Erfindungen des genialen britischen Mathematikers Alan Turing ( 1940) war die Definition eines Modells für eine universelle Rechenmaschine, welche alle Funktionen berechnen kann, die wir uns intuitiv als berechenbar vorstellen. Die sogenannte Turingmaschine besitzt endliche viele Zustände und arbeitet auf einem beidseitig unendlichen Band. Ihre Mächtigkeit erhält sie durch die Möglichkeit Zeichen auf dem Band zu überschreiben sowie den Schreib-Lesekopf nach rechts oder links zu bewegen. Beispiel 1.22 Turingmaschine T, die eine Eingabe x {0, 1} als Binärzahl interpretiert und 1 hinzuaddiert. Ein leeres Bandfeld bezeichnen wir im Folgenden mit. T = ({z 0, z 1, z 2, z e }, {0, 1}, {0, 1, }, δ, z 0,, {z e })

25 1.9 Turingmaschinen 25 z 0, 0 z 0, 0, R z 0, 1 z 0, 1, R z 0, z 1,, L z 1, 0 z 2, 1, L z 1, 1 z 1, 0, L z 1, z e, 1, N z 2, 0 z 2, 0, L z 2, 1 z 2, 1, L z 2, z e,, R Die Maschine bewegt sich zuerst nach rechts bis zum Ende der Binärzahl. Dann erfolgt die eigentliche Addition im Zustand z 1 mit Bewegung nach links. Bei der ersten null ist die Addition abgeschlossen und im Zustand z 2 läuft T zum Anfang der Zahl, wo sie terminiert. Definition 1.23 Ein Turingmaschine besteht aus einem 7-Tupel T = (Z, Σ, Γ, δ, z 0,, E) mit Z : endliche Zustandsmenge Σ : endliches Eingabealphabet, Σ Z = Γ : endliches Arbeitsalphabet, mit Σ Γ δ : Z Γ Z Γ {L, R, N}, die Zustandsübergangsfunktion bei deterministischen Turingmaschinen δ : Z Γ P(Z Γ {L, R, N}), die Zustandsübergangsfunktion bei nichtdeterministischen Turingmaschinen z 0 : Startzustand, z 0 Z : Das Blank (Leerzeichen), wobei Γ Σ E : Menge der Endzustände mit E Z Definition 1.24 Ein Wort w = w 1... w n wird von einer Turingmaschine T akzeptiert, wenn sie, gestartet auf w 1 in einem Endzustand hält. L(T ) = {w ε Σ T akzeptiert w} Satz 1.8 Turingmaschinen akzeptieren genau die Typ-0-Sprachen.

26 26 1 Formale Sprachen und Maschinenmodelle Man könnte aufgrund dieses Satzes verleitet sein, zu glauben, dass Turingmaschinen das Wortproblem (Definition 1.16) lösen. Dies ist aber falsch. Man vergleiche hierzu zum Beispiel den kleinen aber subtilen Unterschied in den Definitionen 1.22 und Der Kellerautomat akzeptiert ein Wort genau dann wenn..., die Turingmaschine hingegen akzeptiert ein Wort wenn.... Über den Fall, dass die Turingmaschine nicht in einem Endzustand hält, macht die Definition keine Aussage. Warum? Beispiel 1.23 Besonders einfach sind Turingmaschinen, die unendlich viele 1-en schreiben: z 0, z 0, 1, R Viel schwieriger ist es, möglichst viele, aber endlich viele Einsen zu schreiben Fleißige Biber Die Turingmaschine ist extrem ineffektiv bei der Bearbeitung von konkreten Problemen. Für die Theorie hat sie aber große Bedeutung. So kann mit ihrer Hilfe zum Beispiel das Halteproblem, ein für die Informatik sehr wichttiges Problem (leider negativ) beantwortet werden. Der ungarische Mathematiker Tibor Rado definierte 1962 das busy-beaver-problem: Definition 1.25 Busy- Beaver- Problem: Gesucht ist eine deterministische Turingmaschine mit dem Arbeitsalphabet {1, } und einer vorgegebenen Anzahl von Zuständen. Das Turingband ist leer. Wie viele Zeichen kann sie maximal schreiben? Bemerkung: Es ist kein Problem, eine Turingmaschine zu entwerfen, die unendliche viele Zeichen schreibt (s.o.). Aber die Turingmaschine soll ja irgendwann anhalten. Das macht das Problem so schwierig. Bei der Anzahl der Zustände der fleißigen Biber werden die Endzustände nicht mitgezählt. Beispiel 1.24 Dieser Busy Beaver mit 2 Zuständen schreibt 4 Einsen: z 0, z 1, 1, R z 0, 1 z 1, 1, L z 1, z 0, 1, L z 1, 1 z e, 1, R Beispiel 1.25 Busy Beaver mit 3 Zuständen, der 6 Einsen schreibt: 1 z 0 z 1, 1, R z 2, 1, L z 1 z 2, 1, R z e, 1, N z 2 z 0, 1, L z 1,, L

27 1.9 Turingmaschinen 27 Beispiel 1.26 Noch ein fleißiger Biber mit 3 Zuständen: z 0, z 1, 1, R z 0, 1 z 2, 1, L z 1, z 0, 1, L z 1, 1 z 1, 1, R z 2, z 1, 1, L z 2, 1 z e, 1, N Der gleiche Biber als Automat dargestellt: Man kann zeigen, dass eine Turingmaschine mit einem Zustand maximal ein Zeichen schreiben kann, eine mit zwei Zuständen maximal vier Zeichen, eine mit drei Zuständen maximal sechs Zeichen, eine mit vier Zuständen maximal dreizehn Zeichen. Es gibt viele Turingmaschinen Satz 1.9 Für die Zahl T (n) der Turingmaschinen mit Arbeitsalphabet, 1 und n Zuständen (ohne Endzustand) gilt T (n) = (6n + 7) 2n. Beweis: Wir betrachten Regeln der Form s, z s, z, m und erkennen, dass es bei n Zuständen 2n linke Seiten gibt. Für jede mögliche linke Seite gibt es auf der rechten Seite n + 1 Zustände s (inkl. Endzustand), 2 verschiedene Zeichen z und 3 Bewegungen (R,L,N). Dies ergibt 6(n + 1) rechte Seiten für jede linke Seite. Da man zu jeder linken Seite aber auch gar keine Regel angeben kann, gibt es insgesamt zu jeder linken Seite 6(n + 1) + 1 = 6n + 7

28 28 1 Formale Sprachen und Maschinenmodelle Möglichkeiten. Bei 2n linken Seiten ergeben sich insgesamt (6n + 7) 2n Turingmaschinen für das Arbeitsalphabet, 1. Folgende Tabelle aus [18] listet einige aktuelle bekannte Ergebnisse über fleißige Biber auf. Hier ist n die Zahl der Zustände (ohne Endzustand), Σ(n) die maximale Zahl geschriebener Einsen. Interessant ist offenbar auch folgende Frage: Welche Turingmaschine mit n Zuständen - ohne Endzustand - macht möglichst viele Arbeitschritte, stoppt dann und hinterlässt ein leeres Band? Als S(n) bezeichnen wir die maximal mögliche Zahl von Rechenschritten solch einer Maschine mit n Zuständen. n T (n) Σ(n) S(n) Quelle Lin und Rado Lin und Rado Lin und Rado Brady , 176, 870 Marxen und Buntrock > > T.J. und S. Ligocki Die Funktion Σ(n), die angibt, wie gross die maximale Zahl von Zeichen ist, die eine Turingmaschine mit n Zuständen (ohne Endzustand) ausgeben kann, ist zwar wohldefiniert, aber nicht durch eine Turingmaschine und somit überhaupt nicht berechenbar! Das Gleiche gilt für die Funktion S(n). Beides werden wir im nächsten Kapitel zeigen Zusammenfassung zu Sprachen und Maschinenmodellen Vergleich von Sprachtypen und Maschinenmodellen: Chomsky Beschreibung Maschinen-Modell Komplexität des -Typ Wortproblems 0 Regelgrammatiken Turingmaschine halbentscheidbar 1 kontextsensitive linear beschränkter O(a n ) (exponentiell) Grammatik Automat (TM) 2 kontextfreie Grammatik Kellerautomat O(n 3 ) (nichtdeterminist.) 3 reguläre Grammatiken / endlicher Automat Θ(n) reguläre Ausdrücke Satz 1.10 Church sche These: Die Menge, der durch Turingmaschinen berechenbaren Funktionen entspricht genau der Menge aller intuitiv berechenbaren Funktionen.

29 1.11 Übungen 29 Die Church sche These ist kein Satz im strengen Sinne, denn der Begriff intuitiv widersetzt sich einem Beweis. Satz 1.11 Die Turingmaschine ist gleich mächtig wie der von-neumann-rechner, das heißt, dass jedes Problem, das ein von-neumann-rechner löst auch von einer Turingmaschine gelöst werden kann und umgekehrt. Damit ist die Menge der Berechnungsprobleme, die von Turingmaschinen gelöst werden können gleich der Menge der Berechnungsprobleme, die mit einer klassischen Programmiersprache (wie zum Beispiel C) gelöst werden können. Man nennt eine derartige Programmiersprache Turing-mächtig Übungen Aufgabe 1 Wieviele Teilmengen besitzt eine endliche Menge mir n Elementen? Beweis! Aufgabe 2 Zeigen Sie, dass die Menge der reellen Zahlen R überabzählbar ist. (Tipp: Wenn Sie den Beweis nicht schaffen, suchen in der Bibliothek oder in meinem Analysis-1- Skript auf meiner Webseite) Aufgabe 3 Gegeben sei die Grammatik ([9], S. 15) G = (V, Σ, P, S), wobei: V = {S, B, C} Σ = {a, b, c} P = {S asbc, S abc, CB BC, ab ab, bb bb, bc bc, cc cc} Konstruieren Sie eine Ableitung für aabbcc. Welchen Chomski-Typ hat diese Grammatik? Aufgabe 4 Geben sie eine möglichst einfache Grammatik an, die alle Zeichenketten der Form ab, abab, ababab,... erzeugt. Welchen Chomski-Typ hat diese Grammatik? Aufgabe 5 Geben sie eine möglichst einfache Grammatik an, die alle Zeichenketten der Form ab, aabb, aaabbb,... erzeugt. Welchen Chomski-Typ hat diese Grammatik? Aufgabe 6 Geben sie eine möglichst einfache Grammatik an, die alle Zeichenketten der Form abba, ababbaba, abababbababa,... erzeugt. Zeichnen Sie den Syntaxbaum für das Wort ababbaba. Welchen Chomski-Typ hat diese Grammatik? Aufgabe 7 Definieren Sie eine Grammatik, die einfache Programme folgender Art beschreibt. Es gibt im Programmrumpf nur Wertzuweisungen, Terme sowie den print-befehl function plusplus(x,y,z) var int u,v;

30 30 1 Formale Sprachen und Maschinenmodelle var float w; u = x + y; v = x * (z+y); w = x / z; print(u,v,w) end Aufgabe 8 a) Zeigen Sie, dass die Menge aller C-Programme unendlich ist. b) Geben sie eine obere Schranke für die Zahl der C-Programme der Länge n an. Aufgabe 9 Gegeben sei die Grammatik G = (V, Σ, P, S) mit V = {S, A, B}, Σ = {a, b, c} und P = { S aa, A aa, B bb, S ba, A bb, B c, A c } a) Geben Sie eine Ableitung an für abbbbc. b) Geben Sie alle Worte der Länge 4 der zugehörigen Sprache L = L(G) an. c) Geben Sie einen regulären Ausdruck für die Sprache L an. d) Zeichnen Sie den Zustandsgraphen eines endlichen Automaten, der L akzeptiert. e) Geben Sie den endlichen Automaten als Formel an. f) Welchen Chomsky Typ hat diese Sprache? (Begründung!) Aufgabe 10 Geben Sie einen deterministischen endlichen Automaten an, der die Sprache {a n b m n N, m N} erkennt. Aufgabe 11 Geben Sie eine Grammatik an, welche die von dem Getränkeautomaten aus Beispiel?? erkannte Sprache erzeugt. Aufgabe 12 Geben Sie eine Grammatik an für die Sprache L = {a i b j c k i = j oder j = k} Zeigen sie daß diese Grammatik mehrdeutig ist. Aufgabe 13 Geben Sie reguläre Ausdrücke an für a) groß geschriebene Worte wie z.b. Hallo, aber nicht HALLO. b) groß geschriebene Worte mit mindestens 3 und höchstens 10 Buchstaben. c) Gleitpunktzahlen mit beliebig vielen Stellen vor dem Komma und mindestens einer Stelle nach dem Komma. d) Datumsangaben der Form oder oder oder Nicht erlaubt sind unzulässige Werte wie z.b oder

31 1.11 Übungen 31 Aufgabe 14 Beschreiben Sie die durch folgende regulären Ausdrücke definierten Sprachen und geben Sie Beispiele an. a) \\(index color label ref)\{[^\}]*\} b) %.*$ c) \\section\*?\{.*\} d) Aufgabe 15 Schreiben Sie ein Lex-Programm, das in einer Datei alle Datumsangaben vom Format < T ag >. < Mon >. < Jahr > in das Format < Mon > < T ag > < Jahr > übersetzt. < T ag > und < Mon > sind zu verstehen wie in Aufgabe 13. Aufgabe 16 Konstruieren Sie mit Lex und Yacc einen Parser für die Grammatik in Aufgabe 7. Aufgabe 17 Es soll ein Getränkeautomat mit Hilfe eines endlichen Automaten programmiert werden. Der Automat kann mit bis zu 4 Dosen Mineralwasser, 4 Dosen Limo und 4 Dosen Bier gefüllt werden. Wenn eine 1-Euro-Münze eingegeben wird, soll er eine Dose des gewählten Getränks ausgeben. Bei Eingabe einer anderen Münze soll er die eingegebene Münze wieder ausgeben, aber kein Getränk. Wenn von einer Getränkesorte alle Dosen ausgegeben sind, soll er anhalten und per Funk den Service benachrichtigen. Geben Sie einen endlichen Automaten (mit Ausgabe) für diese Aufgabe an. Überlegen Sie sich, wie Sie die große Zahl von Regeln durch wenige (Meta-) Regeln beschreiben können. Aufgabe 18 Es soll eine Fußgängerampel mit Hilfe eines endlichen Automaten programmiert werden. Die Ampel hat die zwei Zustände rot und grün (aus der Sicht des Fahrzeugs). Im Zustand rot akzeptiert die Ampel Signale von der Kontaktschleife auf der Straße und schaltet dann auf Grün. Im Zustand Grün akzeptiert die Ampel Signale vom Fußgängertaster und schaltet auf Rot. Alle anderen Eingaben ignoriert der Automat. a) Geben Sie einen endlichen Automaten für diese Aufgabe an. b) Zeichnen Sie ein Zustandsdiagramm zu diesem Automaten. c) Geben Sie einen regulären Ausdruck für diese Sprache an. d) Geben Sie eine reguläre Grammatik für diesen Automaten an. e) Zeigen Sie, dass diese Ampelschaltung bei geringem Verkehrsaufkommen das Mehrheitsprinzip exakt erfüllt, das heisst, das Verhältnis aus rot- zu grün-zuständen ist gleich dem Verhältnis aus Fußgängerzahl zu Autofahrerzahl. Aufgabe 19 Konstruieren sie (deterministische oder nichtdeterministische) endliche Automaten für folgende durch reguläre Ausdrücke gegebenen Sprachen: a) [0-9]*\.[0-9]+

32 32 1 Formale Sprachen und Maschinenmodelle b) \\section\*?\{.*\} Aufgabe 20 a) Entwerfen sie für das Alphabet {a,b} einen Kellerautomaten, der alle Worte der Form x 1, x 2,... x n $y 1, y 2,... y m erkennt, wobei die Zahl der a-s vor und nach dem $ -Zeichen gleich groß sein soll. b) Geben Sie für diese Sprache eine BNF Grammatik an. Aufgabe 21 a) Ändern Sie den Automaten aus Aufgabe 20 so ab, daß er nur Worte erkennt, für die n = m ist. b) Geben Sie für die geänderte Sprache auch eine BNF Grammatik an. Aufgabe 22 Entwerfen Sie sie für das Alphabet {a,(,)} einen Kellerautomaten, der genau die korrekt geklammerten Ausdrücke erkennt. Aufgabe 23 Gegeben sei die BNF-Grammatik G = ({S, T, Z}, {a, [, ]}, P, T ) mit P = { T [S[ST S]S] ε S ZS Z ε Z a } a) Geben Sie eine Linksableitung an für [a[a]a]. b) Geben Sie in einer Tabelle alle Worte der Längen 1 bis 6 der zugehörigen Sprache L = L(G) an. c) Beschreiben Sie die Sprache L in ein bis zwei Sätzen. d) Geben Sie einen Kellerautomaten an, der L akzeptiert. e) Welchen Chomsky Typ hat diese Sprache? (Begründung!) Aufgabe 24 Konstruieren Sie eine Turingmaschine M zur Berechnung der Parität des Eingabewortes w {0, 1}. Die Parität p eines Wortes w ist Null wenn w eine gerade Zahl von Einsen enthält und Eins sonst. M startet in der Konfiguration... z 0 w... mit Startzustand z 0 und stoppt im Endzustand z e in der Konfiguration... w z e p.... Aufgabe 25 Entwerfen Sie für folgende Aufgaben je eine Turingmaschine: a) Löschen des gesamten Bandes, d.h. alle Einsen und Nullen werden durch ersetzt. b) Invertieren der Eingabe, d.h. jede Null wird zur Eins und umgekehrt. c) Multiplikation der Eingabe mit 2. d) Kopieren der Eingabe, d.h. die Maschine erzeugt aus der Startkonfiguration... z 0 x 1 x 2... x n... die Stopkonfiguration... z 0 x 1 x 2... x n x 1 x 2... x n...

33 1.11 Übungen 33 Aufgabe 26 Suchen Sie im Internet nach Simulatoren für Turingmaschinen sowie nach Online Beschreibungen, etc. Aufgabe 27 Entwerfen Sie möglichst fleißige Biber mit 2, 3, und 4 Zuständen. Aufgabe 28 Ziel dieser Aufgabe ist es, ein Programm zu schreiben, das die Funktion Σ(n) berechnet. a) Beschreiben Sie solch ein Programm. b) Welches Problem tritt hier auf? c) Warum ist es viel einfacher, ein Programm zu schreiben, das eine untere Schranke für Σ(n) berechnet?

34 Kapitel 2 Berechenbarkeit und Komplexität 2.1 Berechenbarkeit Aus der Komplexität von Algorithmen und auch aus dem Gebiet der formalen Sprachen wissen wir, das es, abhängig vom jeweiligen Maschinenmodell unterschiedlich schwierige Berechnungsaufgaben gibt. Zum Beispiel kann ein endlicher Automat das Wortproblem für reguläre Sprachen lösen. Das Wortproblem für kontextfreie Sprachen dagegen können endliche Automaten nicht (allgemein) lösen. Wir wollen nun die Berechnungsprobleme einteilen in verschiedene Klassen entsprechend ihrer Schwierigkeit, angefangen von den einfachen bis hin zu den unlösbaren Problemen. Als Maschinenmodell werden wir deterministische und nichtdeterministische Turingmaschinen betrachten. Die Turingmaschine wird aus folgenden drei Gründen für unsere Betrachtungen gewählt: Die Turingmaschine kann genau die intuitiv berechenbaren Probleme lösen (Churchsche These, unbewiesen). Die Turingmaschine ist gleich mächtig wie der von-neumann-rechner, das heißt, dass jedes Problem, das ein von-neumann-rechner löst auch von einer Turingmaschine gelöst werden kann und umgekehrt. Die Turingmaschine ist wesentlich einfacher aufgebaut als ein von-neumann-rechner und daher für theoretische Analysen einfacher zu handhaben. Zuerst wenden wir uns der Berechenbarkeit zu. Wir werden versuchen, zu verstehen, welche Probleme für Turingmaschinen (und damit für Computer) lösbar und welche unlösbar sind. Definition 2.1 Ein Berechnungsproblem (genauer: eine Funktion f : N n N) heißt (Turing)-berechenbar, wenn es eine Turingmaschine gibt, die für eine beliebige Instanz des Problems nach endlicher Zeit hält und eine korrekte Lösung berechnet. Wegen dem oben gesagten sind alle berechenbaren Probleme durch ein Programm einer (Turing-mächtigen) Programmiersprache lösbar. Wir erinnern daran, daß Turingmaschinen genau die Typ-0-Sprachen erkennen, das heißt die Turingmaschine löst das Wortproblem für Typ-0-Sprachen.

35 2.1 Berechenbarkeit 35 Ein Spezialfall der Berechenbarkeit für binäre Entscheidungsprobleme, wie zum Beispiel die Frage ob eine boole sche Formel erfüllbar ist oder nicht, ist die Entscheidbarkeit. Definition 2.2 Ein Entscheidungsproblem (genauer: eine Funktion f : N n {0, 1}) heißt entscheidbar, wenn es eine Turingmaschine gibt, die für eine beliebige Instanz des Problems nach endlicher Zeit hält und eine korrekte Lösung berechnet. Zu jedem Entscheidungsprobleme gibt es eine äquivalente Formulierung als Wortproblem der Sprache aller Eingaben w mit f(w) = 1. In anderen Worten: Das Entscheidungsproblem zu einer Funktion f : N n {0, 1} ist die Sprache L = {w N n f(w) = 1}. Beispiel 2.1 Entscheidungsproblem Ist eine Liste sortiert? Erfüllbarkeit aussagenlogischer Formeln Ist eine Zahl prim? Sprache sortierte Listen erfüllbare aussagenlogische Formeln Primzahlen Die Lösung eines Entscheidungsproblems ist also äquivalent zur Lösung des Wortproblems der zugehörigen Sprache. Im Folgenden werden wir aufgrund dieser Äquivalenz bei Entscheidungsproblemen nicht mehr zwischen Problem und Sprache unterscheiden. Zunächst wollen wir einige Probleme angeben, die von Turingmaschinen nicht gelöst werden können. Besonders interessant ist die Tatsache, daß es formal wohl definierte praktisch relevante Probleme gibt, die Turingmaschinen (prinzipiell) nicht lösen können. Wir werden nämlich zeigen dass es viel mehr Funktionen gibt als es Turingmaschinen, bzw. Programme geben kann. Daraus folgt dann, dass die überwiegende Anzahl von Funktionen nicht berechenbar ist Das Halteproblem für Turingmaschinen Formal ist eine Turingmaschine ein 7-Tupel aus endlichen Mengen. Das heißt jede Turingmaschine läßt sich (wie jedes Programm auch) durch eine endliche Zeichenkette (zum Beispiel bestehend aus ASCII-Zeichen) beschreiben. Diese endliche Zeichenkette kann man nun binär kodieren. Interpretiert man diesen Binärcode als natürliche Zahl, so erhält man die eindeutige Nummer dieser Maschine. Zu jeder Turingmaschine gibt es also deren eindeutige Nummer. Sicher gibt es eine Turingmaschine mit der kleinsten Nummer w min. Also stellen die Zahlen 1 bis w min 1 (noch) keine Turingmaschinen dar. Damit wir umgekehrt auch für jede natürliche Zahl eine Turingmaschine erhalten, definieren wir { die zu w gehörende Turingmaschine falls w eine Turingmaschine beschreibt M w = falls w keine Turingmaschine beschreibt M w+1

36 36 2 Berechenbarkeit und Komplexität Diese Funktion ordnet jeder natürlichen Zahl eine Turingmaschine zu. Es gibt also abzählbar viele Turingmaschinen! Da die Zahl der Funktionen von natürlichen Zahlen auf natürliche Zahlen aber überabzählbar ist (siehe unten), gibt es also mehr Funktionen als Turingmaschinen. Zwangsläufig sind also viele Funktionen (die weitaus überwiegende Anzahl) nicht berechenbar. Dies wollen wir festhalten. Satz 2.1 Es gibt abzählbar viele Turingmaschinen. Die Zahl der Funktionen von natürlichen Zahlen auf natürliche Zahlen ist überabzählbar. Also sind viele Funktionen (die weitaus überwiegende Anzahl) nicht berechenbar. Beweis: Zu zeigen ist nur noch, dass die Menge aller Funktionen f : N N nicht abzählbar ist. Das zeigen wir durch Widerspruchsbeweis. Der Beweis läuft analog zum Beweis der Überabzählbarkeit der reellen Zahlen (Übung). Wir nehmen an die Zahl der Funktionen von den natürlichen Zahlen auf die natürlichen Zahlen sei abzählbar. Die Funktionen lassen sich also durchnummerieren z.b. als f 1, f 2, f 3,.... Eine Wertetabelle für alle Funktionen hat folgendes Aussehen: x f 1 (x) f 1 (1) f 1 (2) f 1 (3) f 1 (4) f 1 (5)... f 2 (x) f 2 (1) f 2 (2) f 2 (3) f 2 (4) f 2 (5)... f 3 (x) f 3 (1) f 3 (2) f 3 (3) f 3 (4) f 3 (5)... f 4 (x) f 4 (1) f 4 (2) f 4 (3) f 4 (4) f 4 (5)... f 5 (x) f 5 (1) f 5 (2) f 5 (3) f 5 (4) f 5 (5) Wir konstruieren nun eine Funktion g : N N, die in dieser Wertetabelle noch nicht enthalten ist. g ist wie folgt definiert: x g(x) f 1 (1) + 1 f 2 (2) + 1 f 3 (3) + 1 f 4 (4) + 1 f 5 (5) g hat die Eigenschaft, sich von jeder der Funktionen an mindestens einer Stelle x N zu unterscheiden. Dies ist jedoch ein Widerspruch zur Annahme, dass es nur abzählbar viele Funktionen von N nach N gibt. Also ist die Behauptung bewiesen. Wir wollen nun von einer speziellen Funktion zeigen, daß sie nicht entscheidbar ist. Das sogenannte Halteproblem für Turingmaschinen besteht darin, eine ganz besondere Turingmaschine zu finden, die für eine beliebige Turingmaschine M w und deren Eingabe x entscheiden soll, ob diese Maschine hält. w sei die binäre Kodierung von M w. Definition 2.3 Das (allgemeine) Halteproblem ist die Sprache H = {w#x M w angesetzt auf x hält}.

37 2.1 Berechenbarkeit 37 Satz 2.2 Das Halteproblem H ist nicht entscheidbar. Beweis: (einfache Variante) Angenommen, das Programm hält(w,x) löst das Halteproblem H(w, x), das heisst, bei Eingabe eines Programmes w und dessen Eingabe x gibt es den Wert 1 aus, wenn w angesetzt auf x halten würde und 0 andernfalls. Nun bauen wir folgendes neue Programm unmöglich: unmöglich(int i) { if( hält(unmöglich,0)) while( TRUE ) printf( das kann noch dauern... ); else printf( 0 ); } Dieses Programm kann es aber nicht geben, denn wenn (nach Voraussetzung) hält zum Schluß kommt, dass es terminiert, dann hält es gerade nicht und umgekehrt. Schuld an diesem Widerspruch kann aber nur die Voraussetzung sein, dass hält das Halteproblem löst. Beweis: (elegante, allgemeine Variante) Angenommen, H sei entscheidbar. Dann gibt es eine Turingmaschine H(w, x), welche entscheidet, ob die Turingmaschine M w bei Eingabe von x hält. Wir betrachten die Tafel der berechneten Werte aller Turingmaschinen auf allen Eingaben. In die Tafel wird überall dort, wo eine Maschine nicht anhält, oder nicht in einem Endzustand hält, das Symbol eingetragen. 1 Es sei { 1 falls Mw (x)hält H(w, x) = 0 sonst M w (X) Eingabe x Turing masch Nr w Nun wenden wir auf diese Tabelle die Turingmaschine H(w, x) an und bestimmen die (Turing berechenbare) Funktion { 0 falls H(w, x) = 0 Q(w, x) = M w (x) falls H(w, x) = 1 1 Die konkret eingetragenen Werte sind zufällig gewählt. Eine systematische Aufzählung der ersten n Zeilen wäre möglich, wird jedoch der Einfachheit weggelassen....

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

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

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

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

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

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

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

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 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

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

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

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

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

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

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte 50. Mathematik-Olympiade. Stufe (Regionalrunde) Klasse 3 Lösungen c 00 Aufgabenausschuss des Mathematik-Olympiaden e.v. www.mathematik-olympiaden.de. Alle Rechte vorbehalten. 503 Lösung 0 Punkte Es seien

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

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

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

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

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

Zusammenfassung. 1 Wir betrachten die folgende Signatur F = {+,,, 0, 1} sodass. 3 Wir betrachten die Gleichungen E. 4 Dann gilt E 1 + x 1

Zusammenfassung. 1 Wir betrachten die folgende Signatur F = {+,,, 0, 1} sodass. 3 Wir betrachten die Gleichungen E. 4 Dann gilt E 1 + x 1 Zusammenfassung Zusammenfassung der letzten LV Einführung in die Theoretische Informatik Woche 7 Harald Zankl Institut für Informatik @ UIBK Wintersemester 2014/2015 1 Wir betrachten die folgende Signatur

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

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 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

Theoretische Informatik I

Theoretische Informatik I Theoretische nformatik inheit 3 Kontextfreie Sprachen 1. Kontextfreie Grammatiken 2. Pushdown Automaten 3. igenschaften kontextfreier Sprachen Theoretische nformatik inheit 3.1 Kontextfreie Grammatiken

Mehr

Sprachen/Grammatiken eine Wiederholung

Sprachen/Grammatiken eine Wiederholung Sprachen/Grammatiken eine Wiederholung Was sind reguläre Sprachen? Eigenschaften regulärer Sprachen Sprachen Begriffe Symbol: unzerlegbare Grundzeichen Alphabet: endliche Menge von Symbolen Zeichenreihe:

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

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

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

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

Absolute Stetigkeit von Maßen

Absolute Stetigkeit von Maßen Absolute Stetigkeit von Maßen Definition. Seien µ und ν Maße auf (X, Ω). Dann heißt ν absolut stetig bezüglich µ (kurz ν µ ), wenn für alle A Ω mit µ(a) = 0 auch gilt dass ν(a) = 0. Lemma. Sei ν ein endliches

Mehr

Deterministische Turing-Maschinen (DTM) F3 03/04 p.46/395

Deterministische Turing-Maschinen (DTM) F3 03/04 p.46/395 Deterministische Turing-Maschinen (DTM) F3 03/04 p.46/395 Turing-Machine Wir suchen ein Modell zur formalen Definition der Berechenbarkeit von Funktionen und deren Zeit- und Platzbedarf. Verschiedene Modelle

Mehr

Semantik von Formeln und Sequenzen

Semantik von Formeln und Sequenzen Semantik von Formeln und Sequenzen 33 Grundidee der Verwendung von Logik im Software Entwurf Syntax: Menge von Formeln = Axiome Ax K ist beweisbar Formel ϕ beschreiben Korrektkeit Vollständigkeit beschreibt

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

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

Fachschaft Mathematik und Informatik (FIM) LA I VORKURS. Herbstsemester 2015. gehalten von Harald Baum

Fachschaft Mathematik und Informatik (FIM) LA I VORKURS. Herbstsemester 2015. gehalten von Harald Baum Fachschaft Mathematik und Informatik (FIM) LA I VORKURS Herbstsemester 2015 gehalten von Harald Baum 2. September 2015 Inhaltsverzeichnis 1. Stichpunkte zur Linearen Algebra I 2. Körper 3. Vektorräume

Mehr

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r ) Definition B : Menge der binären Bäume, rekursiv definiert durch die Regeln: ist ein binärer Baum sind t l, t r binäre Bäume, so ist auch t =, t l, t r ein binärer Baum nur das, was durch die beiden vorigen

Mehr

1. Formale Sprachen 1.2 Grammatiken formaler Sprachen

1. Formale Sprachen 1.2 Grammatiken formaler Sprachen 1. Formale Sprachen 1.2 Grammatiken formaler Sprachen Die Regeln zur Bildung korrekter Wörter einer Sprache kann man in einer natürlichen Sprache formulieren. Da dies jedoch wieder Mehrdeutigkeiten mit

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

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

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

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

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

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

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

ERGÄNZUNGEN ZUR ANALYSIS II MITTELWERTSATZ UND ANWENDUNGEN

ERGÄNZUNGEN ZUR ANALYSIS II MITTELWERTSATZ UND ANWENDUNGEN ERGÄNZUNGEN ZUR ANALYSIS II MITTELWERTSATZ UND ANWENDUNGEN CHRISTIAN HARTFELDT. Zweiter Mittelwertsatz Der Mittelwertsatz Satz VI.3.4) lässt sich verallgemeinern zu Satz.. Seien f, g : [a, b] R auf [a,

Mehr

7. Formale Sprachen und Grammatiken

7. Formale Sprachen und Grammatiken 7. Formale Sprachen und Grammatiken Computer verwenden zur Verarbeitung von Daten und Informationen künstliche, formale Sprachen (Maschinenspr., Assemblerspachen, Programmierspr., Datenbankspr., Wissensrepräsentationsspr.,...)

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

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung. Lineare Gleichungen mit einer Unbekannten Die Grundform der linearen Gleichung mit einer Unbekannten x lautet A x = a Dabei sind A, a reelle Zahlen. Die Gleichung lösen heißt, alle reellen Zahlen anzugeben,

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

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

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

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

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

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

1 Vom Problem zum Programm

1 Vom Problem zum Programm Hintergrundinformationen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter 1 Vom Problem zum Programm Aufgabenstellung analysieren

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

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

8. Quadratische Reste. Reziprozitätsgesetz

8. Quadratische Reste. Reziprozitätsgesetz O Forster: Prizahlen 8 Quadratische Reste Rezirozitätsgesetz 81 Definition Sei eine natürliche Zahl 2 Eine ganze Zahl a heißt uadratischer Rest odulo (Abkürzung QR, falls die Kongruenz x 2 a od eine Lösung

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

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

WS 2008/09. Diskrete Strukturen

WS 2008/09. Diskrete Strukturen WS 2008/09 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/ws0809

Mehr

Formale Grundlagen der Informatik 1 Kapitel 12 Zusammenfassung

Formale Grundlagen der Informatik 1 Kapitel 12 Zusammenfassung Formale Grundlagen der Informatik 1 Kapitel 12 Zusammenfassung Frank Heitmann heitmann@informatik.uni-hamburg.de 13. Mai 2014 Frank Heitmann heitmann@informatik.uni-hamburg.de 1/17 Überblick Wir hatten

Mehr

Grundlagen der Künstlichen Intelligenz

Grundlagen der Künstlichen Intelligenz Grundlagen der Künstlichen Intelligenz 27. Aussagenlogik: Logisches Schliessen und Resolution Malte Helmert Universität Basel 28. April 2014 Aussagenlogik: Überblick Kapitelüberblick Aussagenlogik: 26.

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

Entscheidungsprobleme. Berechenbarkeit und Komplexität Entscheidbarkeit und Unentscheidbarkeit. Die Entscheidbarkeit von Problemen

Entscheidungsprobleme. Berechenbarkeit und Komplexität Entscheidbarkeit und Unentscheidbarkeit. Die Entscheidbarkeit von Problemen Berechenbarkeit und Komlexität Entscheidbarkeit und Unentscheidbarkeit Wolfgang Schreiner Wolfgang.Schreiner@risc.uni-linz.ac.at Research Institute for Symbolic Comutation (RISC) Johannes Keler University,

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

Summenbildung in Bauteiltabellen mit If Then Abfrage

Summenbildung in Bauteiltabellen mit If Then Abfrage Summenbildung in Bauteiltabellen mit If Then Abfrage Die in Bauteiltabellen ausgelesenen Werte lassen sich in jeder Spalte als Summe berechnen. So können selbstverständlich die Flächen der in der Tabelle

Mehr

Gleichungen Lösen. Ein graphischer Blick auf Gleichungen

Gleichungen Lösen. Ein graphischer Blick auf Gleichungen Gleichungen Lösen Was bedeutet es, eine Gleichung zu lösen? Was ist überhaupt eine Gleichung? Eine Gleichung ist, grundsätzlich eine Aussage über zwei mathematische Terme, dass sie gleich sind. Ein Term

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

Terme stehen für Namen von Objekten des Diskursbereichs (Subjekte, Objekte des natürlichsprachlichen Satzes)

Terme stehen für Namen von Objekten des Diskursbereichs (Subjekte, Objekte des natürlichsprachlichen Satzes) Prädikatenlogik Man kann den natürlichsprachlichen Satz Die Sonne scheint. in der Prädikatenlogik beispielsweise als logisches Atom scheint(sonne) darstellen. In der Sprache der Prädikatenlogik werden

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

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

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

GTI. Hannes Diener. 6. Juni - 13. Juni. ENC B-0123, diener@math.uni-siegen.de

GTI. Hannes Diener. 6. Juni - 13. Juni. ENC B-0123, diener@math.uni-siegen.de GTI Hannes Diener ENC B-0123, diener@math.uni-siegen.de 6. Juni - 13. Juni 1 / 49 Die Turingmaschine war das erste (bzw. zweite) formale Modell der Berechenbarkeit. Sie wurden bereits 1936 (also lange

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

Lineare Gleichungssysteme

Lineare Gleichungssysteme Brückenkurs Mathematik TU Dresden 2015 Lineare Gleichungssysteme Schwerpunkte: Modellbildung geometrische Interpretation Lösungsmethoden Prof. Dr. F. Schuricht TU Dresden, Fachbereich Mathematik auf der

Mehr

Lineare Gleichungssysteme

Lineare Gleichungssysteme Lineare Gleichungssysteme 1 Zwei Gleichungen mit zwei Unbekannten Es kommt häufig vor, dass man nicht mit einer Variablen alleine auskommt, um ein Problem zu lösen. Das folgende Beispiel soll dies verdeutlichen

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

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

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik Einführung in die Theoretische Informatik Woche 10 Harald Zankl Institut für Informatik @ UIBK Wintersemester 2014/2015 Zusammenfassung Zusammenfassung der letzten LV Satz Sei G = (V, Σ, R, S) eine kontextfreie

Mehr

Lineare Funktionen. 1 Proportionale Funktionen 3 1.1 Definition... 3 1.2 Eigenschaften... 3. 2 Steigungsdreieck 3

Lineare Funktionen. 1 Proportionale Funktionen 3 1.1 Definition... 3 1.2 Eigenschaften... 3. 2 Steigungsdreieck 3 Lineare Funktionen Inhaltsverzeichnis 1 Proportionale Funktionen 3 1.1 Definition............................... 3 1.2 Eigenschaften............................. 3 2 Steigungsdreieck 3 3 Lineare Funktionen

Mehr

Die Komplexitätsklassen P und NP

Die Komplexitätsklassen P und NP Die Komplexitätsklassen P und NP Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 3. Dezember 2009 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und

Mehr

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt

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

1 Aussagenlogik und Mengenlehre

1 Aussagenlogik und Mengenlehre 1 Aussagenlogik und engenlehre 1.1 engenlehre Definition (Georg Cantor): nter einer enge verstehen wir jede Zusammenfassung von bestimmten wohl unterschiedenen Objekten (m) unserer Anschauung oder unseres

Mehr

1 Ordnung muß sein. 1.1 Angeordnete Körper. 1.2 Folgerungen aus den Anordnungsaxiomen. ( c) (b a) > 0. Somit a c b c > 0.

1 Ordnung muß sein. 1.1 Angeordnete Körper. 1.2 Folgerungen aus den Anordnungsaxiomen. ( c) (b a) > 0. Somit a c b c > 0. 1 Ordnung uß sein 1.1 Angeordnete Körper Wir nehen einal an, daß es in eine Körper Eleente gibt, die wir positiv nennen. Welche Eigenschaften sollen diese haben? O1) Wenn x und y positiv sind, dann auch

Mehr

Mediator 9 - Lernprogramm

Mediator 9 - Lernprogramm Mediator 9 - Lernprogramm Ein Lernprogramm mit Mediator erstellen Mediator 9 bietet viele Möglichkeiten, CBT-Module (Computer Based Training = Computerunterstütztes Lernen) zu erstellen, z. B. Drag & Drop

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

IT-Basics 2. DI Gerhard Fließ

IT-Basics 2. DI Gerhard Fließ IT-Basics 2 DI Gerhard Fließ Wer bin ich? DI Gerhard Fließ Telematik Studium an der TU Graz Softwareentwickler XiTrust www.xitrust.com www.tugraz.at Worum geht es? Objektorientierte Programmierung Konzepte

Mehr

Theoretische Grundlagen der Informatik WS 09/10

Theoretische Grundlagen der Informatik WS 09/10 Theoretische Grundlagen der Informatik WS 09/10 - Tutorium 6 - Michael Kirsten und Kai Wallisch Sitzung 13 02.02.2010 Inhaltsverzeichnis 1 Formeln zur Berechnung Aufgabe 1 2 Hamming-Distanz Aufgabe 2 3

Mehr

Prolog basiert auf Prädikatenlogik

Prolog basiert auf Prädikatenlogik Software-Technologie Software-Systeme sind sehr komplex. Im Idealfall erfolgt die Programmierung problemorientiert, während die notwendige Übertragung in ausführbare Programme automatisch erfolgt. Prolog-Philosophie:

Mehr

Umgekehrte Kurvendiskussion

Umgekehrte Kurvendiskussion Umgekehrte Kurvendiskussion Bei einer Kurvendiskussion haben wir eine Funktionsgleichung vorgegeben und versuchen ihre 'Besonderheiten' herauszufinden: Nullstellen, Extremwerte, Wendepunkte, Polstellen

Mehr

Satz. Für jede Herbrand-Struktur A für F und alle t D(F ) gilt offensichtlich

Satz. Für jede Herbrand-Struktur A für F und alle t D(F ) gilt offensichtlich Herbrand-Strukturen und Herbrand-Modelle Sei F eine Aussage in Skolemform. Dann heißt jede zu F passende Struktur A =(U A, I A )eineherbrand-struktur für F, falls folgendes gilt: 1 U A = D(F ), 2 für jedes

Mehr

Was bisher geschah: Formale Sprachen

Was bisher geschah: Formale Sprachen Was isher geschah: Formale Sprachen Alphaet, Wort, Sprache Operationen und Relationen auf Wörtern und Sprachen reguläre Ausdrücke: Syntax, Semantik, Äquivalenz Wortersetzungssysteme Wortersetzungsregeln

Mehr

Modellbildungssysteme: Pädagogische und didaktische Ziele

Modellbildungssysteme: Pädagogische und didaktische Ziele Modellbildungssysteme: Pädagogische und didaktische Ziele Was hat Modellbildung mit der Schule zu tun? Der Bildungsplan 1994 formuliert: "Die schnelle Zunahme des Wissens, die hohe Differenzierung und

Mehr

Zusammenfassung Grundzüge der Informatik 4

Zusammenfassung Grundzüge der Informatik 4 Zusammenfassung Grundzüge der Informatik 4 Sommersemester 04 Thorsten Wink 21. September 2004 Version 1.2 Dieses Dokument wurde in L A TEX 2εgeschrieben. Stand: 21. September 2004 Inhaltsverzeichnis 1

Mehr

Formale Sprachen. Der Unterschied zwischen Grammatiken und Sprachen. Rudolf Freund, Marian Kogler

Formale Sprachen. Der Unterschied zwischen Grammatiken und Sprachen. Rudolf Freund, Marian Kogler Formale Sprachen Der Unterschied zwischen Grammatiken und Sprachen Rudolf Freund, Marian Kogler Es gibt reguläre Sprachen, die nicht von einer nichtregulären kontextfreien Grammatik erzeugt werden können.

Mehr

Kapitel 2. Methoden zur Beschreibung von Syntax

Kapitel 2. Methoden zur Beschreibung von Syntax 1 Kapitel 2 Methoden zur Beschreibung von Syntax Grammatik, die sogar Könige zu kontrollieren weiß... aus Molière, Les Femmes Savantes (1672), 2. Akt 2 Ziele Zwei Standards zur Definition der Syntax von

Mehr

Prüfung Computation, Programming

Prüfung Computation, Programming Prüfung Computation, Programming 1. Computation: Reguläre Ausdrücke [5 Punkte] Zusammenfassung reguläre Ausdrücke a Das Zeichen a. Ein beliebiges Zeichen [abc] Ein beliebiges Zeichen aus der Menge {a,

Mehr