Alphabet, formale Sprache

Ähnliche Dokumente
1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

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

Kapitel IV Formale Sprachen und Grammatiken

Grammatik Prüfung möglich, ob eine Zeichenfolge zur Sprache gehört oder nicht

Syntax von Programmiersprachen

Syntax von Programmiersprachen

7. Formale Sprachen und Grammatiken

Syntax von Programmiersprachen

Vorlesung Automaten und Formale Sprachen Sommersemester Beispielsprachen. Sprachen

Kapitel 2. Methoden zur Beschreibung von Syntax

Sprachanalyse. Fachseminar WS 08/09 Dozent: Prof. Dr. Helmut Weber Referentin: Nadia Douiri

2.1 Allgemeines. Was ist eine Sprache? Beispiele:

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik

Kapitel 2: Methoden zur Beschreibung von Syntax

7. Syntax: Grammatiken, EBNF

Kontextfreie Sprachen. Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Kontextfreie Sprachen

Formale Sprachen. Script, Kapitel 4. Grammatiken

Definition 4 (Operationen auf Sprachen) Beispiel 5. Seien A, B Σ zwei (formale) Sprachen. Konkatenation: AB = {uv ; u A, v B} A + = n 1 An

Kapitel 2. Methoden zur Beschreibung von Syntax

Grundbegriffe. Grammatiken

Theorie der Informatik. Theorie der Informatik. 6.1 Einführung. 6.2 Alphabete und formale Sprachen. 6.3 Grammatiken. 6.4 Chomsky-Hierarchie

Sei Σ ein endliches Alphabet. Eine Sprache L Σ ist genau dann regulär, wenn sie von einem regulären Ausdruck beschrieben werden kann.

Sprachen sind durch folgenden Aufbau gekennzeichnet:

Abschnitt 5. Grammatiken

Kapitel 5: Syntaxdiagramme und Grammatikregeln

Kapitel 2: Formale Sprachen Gliederung. 0. Grundbegriffe 1. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie

Grammatiken. Grammatiken sind regelbasierte Kalküle zur Konstruktion von Systemen und Sprachen Überprüfung von Systemen und Sprachen

Formale Sprachen und Grammatiken

Fragenkatalog 2. Abgabegespräch Formale Modellierung 3 Reguläre Sprachen

Kapitel 4: Syntaxdiagramme und Grammatikregeln

Programmiersprachen und Übersetzer

Kontextfreie Grammatiken. Kontextfreie Grammatiken 1 / 45

Theoretische Informatik I

Kapitel: Die Chomsky Hierarchie. Die Chomsky Hierarchie 1 / 14

1. Formale Sprachen 1.2 Grammatiken formaler Sprachen

Grammatiken. Eine Grammatik G mit Alphabet Σ besteht aus: Variablen V. Startsymbol S V. Kurzschreibweise G = (V, Σ, P, S)

Formale Sprachen. Inhaltsverzeichnis. M. Jakob. 10. Dezember Allgemeine Einführung. Aufbau formaler Sprachen

Objektorientierte Programmierung. Kapitel 3: Syntaxdiagramme

Algorithmen und Datenstrukturen I - Exkurs Formale Sprachen -

Theoretische Informatik I (Grundzüge der Informatik I)

Automatentheorie und formale Sprachen

Lemma Für jede monotone Grammatik G gibt es eine kontextsensitive

WS06/07 Referentin: Katharina Blinova. Formale Sprachen. Hauptseminar Intelligente Systeme Dozent: Prof. Dr. J. Rolshoven

DisMod-Repetitorium Tag 4

Theoretische Informatik I

5.1 Algorithmen Der Algorithmenbegriff

2.2 Syntax, Semantik und Simulation

Kontextfreie Grammatiken. Kontextfreie Grammatiken 1 / 48

Sprachen und Programmiersprachen

(Prüfungs-)Aufgaben zu formale Sprachen

6 Kontextfreie Grammatiken

Lösung zur Klausur. Grundlagen der Theoretischen Informatik im WiSe 2003/2004

Grundbegriffe der Informatik Tutorium 12

Automaten und formale Sprachen Klausurvorbereitung

Mehrdeutige Grammatiken

Übungsblatt 6. Vorlesung Theoretische Grundlagen der Informatik im WS 18/19

Das Halteproblem für Turingmaschinen

Funktionale Programmierung ALP I. λ Kalkül WS 2012/2013. Prof. Dr. Margarita Esponda. Prof. Dr. Margarita Esponda

Übungsaufgaben zu Formalen Sprachen und Automaten

Formale Methoden 1. Gerhard Jäger 28. November Uni Bielefeld, WS 2007/2008 1/15

Was bisher geschah: Formale Sprachen

Theoretische Informatik. Grammatiken. Grammatiken. Grammatiken. Rainer Schrader. 9. Juli 2009

Algorithmen und Formale Sprachen

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

Formale Sprachen, reguläre und kontextfreie Grammatiken

Inhalt Kapitel 11: Formale Syntax und Semantik

Syntax. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Einführung in die Programmierung für NF. Rückgabewerte, EBNF, Fallunterscheidung, Schleifen

Theorie der Informatik

Ist eine algorithmische Problemstellung lösbar und wenn ja, mit welchen Mitteln? was ist eine algorithmische Problemstellung?

1 Formale Sprachen, reguläre und kontextfreie Grammatiken

1 Automatentheorie und Formale Sprachen

Was bisher geschah Chomsky-Hierarchie für Sprachen: L 0 Menge aller durch (beliebige) Grammatiken beschriebenen Sprachen L 1 Menge aller monotonen

Syntax von Programmiersprachen

FORMALE SYSTEME. 3. Vorlesung: Endliche Automaten. TU Dresden, 17. Oktober Markus Krötzsch

Transkript:

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 A* bezeichnet die Menge aller Wörter über dem Alphabet A (inkl. dem leeren Wort) n Formale Sprache l Sei A ein Alphabet. Eine (formale) Sprache (über A) ist eine beliebige Teilmenge von A*. n Endliche Beschreibungsvorschrift für unendliche Sprachen l Grammatik, die Sprache erzeugt, oder Automat, der Sprache erkennt - 14 -

Beispiele n Beispiel 1 l A 1 = { 0,1}, A 1 * = {ε, 0, 1, 01, 10, 11, 000, 100, } l L = {0, 1, 10, 11, 100, 101,.. } A 1 *, die Menge der Binärdarstellungen natürlicher Zahlen (mit Null, ohne führende Nullen) n Beispiel 2 l A 2 = {(, ), +, -, *, /, a}, A 2 * = {ε, (), (+-a), (a*a), } l die Sprache der korrekt geklammerten Ausdrücke EXPR A 2 * : EXPR = { (((a))), (a + a), (a - a)*a + a /(a + a) -a,.. } - 15 -

Grammatik - informell n Definiert Regeln, die festlegen, welche Wörter über einem Alphabet zur Sprache gehören und welche nicht. n Beispiel: Grammatik für "Hund-Katze-Sätze" 1 Satz Subjekt Prädikat Objekt 2 Subjekt Artikel Attribut Substantiv 3 Artikel ε 4 Artikel der 5 Artikel die 6 Artikel das 7 Attribut ε 8 Attribut Adjektiv 9 Attribut Adjektiv Attribut 10 Adjektiv kleine 11 Adjektiv bissige 12 Adjektiv große 13 Substantiv Hund 14 Substantiv Katze 15 Prädikat jagt 16 Objekt Artikel Attribut Substantiv - 16 -

Grammatik - informell n Grammatik für "Hund-Katze-Sätze" l durch diese Grammatik können z.b. die folgenden Sätze gebildet (abgeleitet) werden "der kleine bissige Hund jagt die große Katze" "die kleine Katze jagt der bissige Hund" "das große Katze jagt der kleine große bissige kleine. Katze" l folgende "Sätze" werden nicht durch diese Grammatik gebildet "die Katze der Hund" "Katze und Hund" "der Hund jagt die Katze die jagt Hund" - 17 -

n Definition: Grammatik - Definition - 1 l Eine Grammatik G ist definiert durch ein Viertupel (N, T, P, S) n N: endliche Menge der Nichtterminalsymbole (Variablen) l sind Symbole für syntaktische Abstraktionen l Beispiel: Satz, Subjekt, Prädikat, Objekt, Artikel, Attribut, Substantiv, Adjektiv l kommen nicht in den Wörtern der Sprache vor l werden durch Anwendung der Produktionsregeln solange ersetzt, bis nur noch Terminalsymbole übrig sind n T: endl. Menge der Terminalsymbole, disjunkt mit N: N T = l sind Zeichen des Alphabets, aus denen die Wörter der Sprache bestehen l Beispiel: der, die, das, kleine, bissige, große, Hund, Katze, jagt - 18 -

Grammatik - Definition - 2 n P: endliche Menge von Produktionsregeln x y l Regel x y bedeutet, dass das Teilwort x durch das Teilwort y ersetzt werden kann l x V * N V *, y V *, wobei V = N T (Vokabular). D.h.: sowohl x als auch y können beliebige Nichtterminal- und Terminalsymbole enthalten, x enthält mindestens ein Nichtterminal. l Beispiel: Prädikat jagt der kleine bissige Hund Prädikat Objekt der kleine bissige Hund jagt Objekt n S: das Startsymbol l ist ein spezielles Nichtterminalsymbol aus N, aus dem alle Wörter der Sprache mit Hilfe der Grammatik erzeugt werden l Beispiel: Satz - 19 -

n Ableitung Grammatik - Definition - 3 l Ableitungsprozess ist eine Relation " " auf V * l Für u, v, y V * und x V * NV * gilt w uxv uyv falls (x y) P n Die von der Grammatik G erzeugte Sprache ist: l L(G) = { w w T*, S... w} w ist ableitbar aus dem Startsymbol l D.h.: Jedes durch Anwendung der Regeln aus S erzeugbare Wort, das nur aus Terminalsymbolen besteht, gehört zu der Sprache L(G) l zwei Grammatiken heißen äquivalent, wenn sie dieselbe Sprache erzeugen - 20 -

Kontextfreie Grammatik / Sprache n Produktionsregeln: A y A N, y V* d.h.: Links steht genau ein Nichtterminalsymbol n Wichtigste Klasse zur formalen Beschreibung der Syntax von Programmiersprachen. n Es ist möglich, Automaten zu bauen, die Wörter einer kontextfreien Sprache erkennen (Wortproblem) und ihre syntaktische Struktur analysieren (Compilerbau) n Notationen zur Darstellung kontextfreier Grammatiken l Syntaxdiagramme l Extended Backus-Naur-Form (EBNF) - 21 -

n Sei G = (N, T, P, S) mit Grammatik - Beispiel l N = {A, B} l T = {a, b, c, d} l P = { A abbc, B abb, abb d } l S = A n n L(G) = { a d b c n 0} l G ist keine kontextfreie Grammatik, da die dritte Produktionsregel auf der linken Seite mehr als nur das Nichtterminalsymbol B enthält. n Ersetzt man in G die Produktionen P durch P', dann ist G' kontextfrei. Es gilt L(G) = L(G'). l P' = { A Bc, B abb, B d } - 22 -

EBNF n EBNF (Extended Backus-Naur-Form) l kompaktere Repräsentation kontextfreier Grammatiken l BNF erstmals benutzt zur Definition der Sprache Algol-60 l EBNF-Notation w = definiert als w (......) genau eine Alternative aus der Klammer muss kommen w [... ] Inhalt der Klammer kann kommen oder nicht w {... } Inhalt der Klammer kann n-fach kommen, n 0 w Terminalsymbole werden in " " eingeschlossen - 23 -

Beispiel - Grammatik 1 Satz Subjekt Prädikat Objekt 2 Subjekt Artikel Attribut Substantiv 3 Artikel ε 4 Artikel der 5 Artikel die 6 Artikel das 7 Attribut ε 8 Attribut Adjektiv 9 Attribut Adjektiv Attribut 10 Adjektiv kleine 11 Adjektiv bissige 12 Adjektiv große 13 Substantiv Hund 14 Substantiv Katze 15 Prädikat jagt 16 Objekt Artikel Attribut Substantiv - 24 -

Beispiel in EBNF n Unsere einfache Grammatik für "Hund-Katze-Sätze" sieht in EBNF folgendermaßen aus: Satz = Subjekt Prädikat Objekt Subjekt = Artikel Attribut Substantiv Artikel = [ ("der" "die" "das") ] Attribut = { Adjektiv } Adjektiv = ("kleine" "bissige" "große") Substantiv = ("Hund" "Katze") Prädikat = "jagt" Objekt = Artikel Attribut Substantiv - 25 -

Syntaxdiagramme - 1 n Syntaxdiagramme (beschreiben Produktionen grafisch) l Nichtterminalsymbole sind Rechtecke l Terminalsymbole sind rund / oval Subjekt Artikel Attribut Substantiv Artikel der die das Attribut Adjektiv - 26 -

Syntaxdiagramme - 2 Attribut Adjektiv Alternative: Rekursives Syntaxdiagramm Attribut Adjektiv Attribut - 27 -