Informatik Formale Sprachen 1.2 Grammatiken formaler Sprachen

Slides:



Advertisements
Ähnliche Präsentationen
8. Termin Teil B: Wiederholung Begriffe Baum
Advertisements

Definition Überlappung und Überdeckung
Vorlesung Compilertechnik Sommersemester 2008
7.2 B-Bäume / B*-Bäume als Hilfsmittel zur Indexorganisation
7. Natürliche Binärbäume
R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister)
8. Formale Sprachen und Grammatiken
Imperative Programmierung
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Grammatiken beschreiben Sprachen L µ *, indem.
Christian Schindelhauer
Strukturgleichungsmodelle
FH-Hof Extensible Markup Language Richard Göbel. FH-Hof Extensible Markup Language XML XML ist universeller Ansatz für die Strukturierung von Zeichenketten.
Parser - Verfahren: Rekursiver Abstieg
FH-Hof Alternative Darstellungsformen für Grammatiken Richard Göbel.
Parser für CH3-Sprachen
C- Syntax. Bestandteile der Sprache C: Ausdrücke Anweisungen.
REKURSION + ITERATION.
REKURSION + ITERATION. Bemerkung: Die in den folgenden Folien angegebenen "Herleitungen" sind keine exakten Beweise, sondern Plausibilitätsbetrachtungen.
REKURSION + ITERATION. Bemerkung: Die in den folgenden Folien angegebenen "Herleitungen" sind keine exakten Beweise, sondern Plausibilitätsbetrachtungen.
Polymorphie (Vielgestaltigkeit)
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (05 – Reguläre Ausdrücke) Prof. Dr. Th. Ottmann.
Basisinformationstechnologie I Dozent T.Schaßan Ableitungsbaum Referentin: Munkhnast Dembereldalai.
Kapitel 1 Die natürlichen und die ganze Zahlen. Kapitel 1: Die natürlichen und die ganzen Zahlen © Beutelspacher/Zschiegner April 2005 Seite 2 Inhalt.
M a r c – o l i v e r p a h l Informatik II – Kapitel 18 Übersetzung Zusammenfassung des Kapitel 18 Küchlin, Weber, Vorversion Einführung in die Informatik,
Prof. Dr. rer.nat. Ralph Großmann Fakultät Informatik / Mathematik Sommersemester 2012 Internet-Technologien XML-basierte Techniken Teil Metasprache der.
Beispiele für Ausdrucksalgebren
Grammatik als Deduktionssystem
Die Verschriftung der Sprache
1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Wintersemester.
Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Wintersemester 2005/ Vorlesung Dominic Dumrauf.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 4. Methodenentwurf Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse von.
Programmiermethodik SS2009 © 2009 Albert Zündorf, University of Kassel 1 Gliederung 1. Einführung 2. Objektdiagramme zur Analyse von Beispielen 3. Methodenentwurf.
Programmiermethodik Übung 6 Methoden verstehen und entwerfen.
Zahlen mit Zahlen ausmessen
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
§8 Gruppen und Körper (8.1) Definition: Eine Gruppe G ist eine Menge zusammen mit einer Verknüpfung, die jedem Paar (a,b) von Elementen aus G ein weiteres.
Grundkurs Theoretische Informatik, Folie 7.1 © 2006 G. Vossen,K.-U. Witt Grundkurs Theoretische Informatik Kapitel 7 Gottfried Vossen Kurt-Ulrich Witt.
Kakuro Regeln und Strategien
Eignung von Grammatik-basiertem Layout für grafische Programmiersprachen Seminar Layout-Algorithmen für Graphen Institut für Informatik Christian-Albrechts.
1. Mengenlehre Grundbegriffe.
Formale Sprachen und Automaten
2. Die rekursive Datenstruktur Baum 2
Christian Schindelhauer Wintersemester 2006/07 8. Vorlesung
1. Mengenlehre Grundbegriffe.
Syntaxanalyse Bottom-Up und LR(0)
Grundlagen der Programmierung
Formale Sprachen Grammatiken und die Chomsky-Hierarchie
Einfaches Maßnahmenkonzept Gefahrstoffe Tätigkeitsbeispiel – Mischen in einem Rührkessel Brand- und Explosionsschutz.
Natürliche und künstliche Sprachen
Zur Wiederholung: Beim unechten Bruch ist der Zähler größer als der Nenner. Das heißt, der Wert des Bruches ist größer als ein Ganzes. Man kann unechte.
POCKET TEACHER Mathematik Algebra
Einfaches Maßnahmenkonzept Gefahrstoffe Tätigkeitsbeispiel aus der Praxis – Flüssigkeit Gefährdung durch Brand und Explosion.
Städtisches Gymnasium Beverungen Friedel Berlage
Dieser nicht Fehler finden Algorithmus enthält einfach einen gravierenden welcher zu ist.
Noam CHOMSKY, Sheila GREIBACH
Noam CHOMSKY, Sheila GREIBACH
Automaten, formale Sprachen und Berechenbarkeit II SoSe 2004 Prof. W. Brauer Teil 3: Potenzreihen und kontextfreie Sprachen (Vgl. Buch von A. Salomaa)
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Christian Schindelhauer Wintersemester 2006/07 5. Vorlesung
Christian Schindelhauer Wintersemester 2006/07 6. Vorlesung
Leere Menge, Teilmenge, N, Z
Frühjahrs-/Sommersemester 2013
Informatik Formale Sprachen 1.1 Aufbau von Sprachen
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
Mensch – Maschine - Kommunikation
Der Hund jagt die Katze. Theoretische Informatik Satz S P O
7. Formale Sprachen und Grammatiken
 Sortigkeit oder Arität
Folie 1 §8 Gruppen und Körper (8.1) Definition: Eine Gruppe G ist eine Menge zusammen mit einer Verknüpfung, die jedem Paar (a,b) von Elementen aus G ein.
Syntaxdiagramme.
 Präsentation transkript:

Informatik 12 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 sich bringen kann, ist es notwendig, eindeutige Produktionsregeln für die Wörter einer Sprache zu formulieren. Informatik 12 1. Formale Sprachen 1.2 Grammatiken formaler Sprachen

Informatik 12 1. Formale Sprachen 1.2 Grammatiken formaler Sprachen Die Wörter einer Sprache sollen korrekte Klassenbezeichnungen an einem Gymnasium mit höchstens sieben Klassen in einem Jahrgang sein. Korrekte Wörter sind also 5a, 7f, 10g, Q11, Q12. Das Alphabet diese Sprache soll sein A = {5, 6, 7, 8, 9, 10, 11, 12, a, b, c, d, e, f, g, Q}. Informatik 12 1. Formale Sprachen 1.2 Grammatiken formaler Sprachen

Informatik 12 1. Formale Sprachen 1.2 Grammatiken formaler Sprachen Die Produktionsregeln kann man mit Hilfe syntaktischer Variablen festlegen: R1: <Stufe> --> <Unter- oder Mittelstufe> R2: <Stufe> --> <Oberstufe> R3: <Unter- oder Mittelstufe> --> <ZahlKlasse><BezeichnungKlasse> R4: <ZahlKlasse> --> '5' R5: <ZahlKlasse> --> '6' R6: <ZahlKlasse> --> '7' R7: <ZahlKlasse> --> '8' R8: <ZahlKlasse> --> '9' R9: <ZahlKlasse> --> '10' R10: <BezeichnungKlasse> --> 'a' R11: <BezeichnungKlasse> --> 'b' R12: <BezeichnungKlasse> --> 'c' R13: <BezeichnungKlasse> --> 'd' R14: <BezeichnungKlasse> --> 'e' R15: <BezeichnungKlasse> --> 'f' R16: <BezeichnungKlasse> --> 'g' R17: <Oberstufe> -->'Q'<ZahlOberstufe> R18: <ZahlOberstufe> --> '11' R19: <ZahlOberstufe> --> '12' Informatik 12 1. Formale Sprachen 1.2 Grammatiken formaler Sprachen

Informatik 12 1. Formale Sprachen 1.2 Grammatiken formaler Sprachen Man kann die Regeln auch folgendermaßen zusammenfassen: Z1: <Stufe> --> <Unter- oder Mittelstufe> | <Oberstufe> Z2: <Unter- oder Mittelstufe> --> <ZahlKlasse><BezeichnungKlasse> Z3: <ZahlKlasse> -->'5' | '6' | '7' | '8' | '9' | '10' Z4: <BezeichnungKlasse> --> 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'g' | Z5: <Oberstufe> -->'Q'<ZahlOberstufe> Z6: <ZahlOberstufe> --> '11' | '12' Diese Schreibweise der Produktionsregeln heißt Backus-Naur-Form (BNF) Informatik 12 1. Formale Sprachen 1.2 Grammatiken formaler Sprachen

Informatik 12 1. Formale Sprachen 1.2 Grammatiken formaler Sprachen Das Wort 'Q12' wird folgendermaßen gebildet: <Stufe> -->(R2, bzw. Z1) <Oberstufe> -->(R7, bzw. Z5) 'Q'<ZahlOberstufe> -->(R19 bzw. Z6) 'Q12' Man bezeichnet diese Vorgehensweise als Ableitung des Wortes. Dazu ist es notwendig, genau eine der syntaktischen Variablen als Startvariable festzulegen. . Zeichen aus dem Alphabet nennt man auch Terminale, syntaktische Variablen nennt man Nichtterminale . Informatik 12 1. Formale Sprachen 1.2 Grammatiken formaler Sprachen

Informatik 12 1. Formale Sprachen 1.2 Grammatiken formaler Sprachen Das Alphabet ist identisch mit der Menge der Terminale. Ein Alphabet kann auch ein Leerzeichen als Terminal enthalten. Eine Sprache kann auch das sogenannte leere Wort ε enthalten. Es hat die Wortlänge 0. Im Gegensatz dazu hat ein Wort, das aus dem Leerzeichen besteht die Wortlänge 1. Informatik 12 1. Formale Sprachen 1.2 Grammatiken formaler Sprachen

Informatik 12 1. Formale Sprachen 1.2 Grammatiken formaler Sprachen Die Menge A* eines Alphabets bezeichnet alle möglichen Wörter, die sich (ohne Existenz bestimmter Produktionsregeln) mit den Elementen aus A bilden lassen. Somit kann man sagen, dass eine formale Sprache eine Teilmenge von A* ist. Informatik 12 1. Formale Sprachen 1.2 Grammatiken formaler Sprachen

Informatik 12 1. Formale Sprachen 1.2 Grammatiken formaler Sprachen Das Alphabet A einer Sprache, die Menge V der syntaktischen Variablen, die Startvariable S aus V und die Menge P der Produktionsregeln bilden zusammen die Grammatik einer Sprache. G = ( A, V, S, P ) A und V dürfen dabei kein gemeinsames Element haben. Informatik 12 1. Formale Sprachen 1.2 Grammatiken formaler Sprachen

Informatik 12 1. Formale Sprachen 1.2 Grammatiken formaler Sprachen Die Ableitung eines Wortes kann man auch mit Hilfe eines Ableitungsbaumes darstellen. Die Wurzel ist die Startvariable. Die Nachfolger sind jeweils die folgenden Terminale oder Nichtterminale. Die Blätter des Baumes sind schließlich die Terminale des abgeleiteten Wortes. Informatik 12 1. Formale Sprachen 1.2 Grammatiken formaler Sprachen

Informatik 12 1. Formale Sprachen 1.2 Grammatiken formaler Sprachen Ableitung von Q12 : Informatik 12 1. Formale Sprachen 1.2 Grammatiken formaler Sprachen

Informatik 12 1. Formale Sprachen 1.2 Grammatiken formaler Sprachen Andere Notationsformen: Die erweiterte Backus-Naur-Form (EBNF) Die BNF wird durch einige Abkürzungsregeln ergänzt: Informatik 12 1. Formale Sprachen 1.2 Grammatiken formaler Sprachen

Informatik 12 1. Formale Sprachen 1.2 Grammatiken formaler Sprachen Andere Notationsformen: Die erweiterte Backus-Naur-Form (EBNF) Der Produktionspfeil --> wird durch ein Gleichheitszeichen = ersetzt. Nichtterminale schreibt man ohne spitze Klammern, Terminale schreibt man mit Hochkomma. * Jede Regel endet mit einem Strichpunkt. * In der BNF kann das Hochkomma bei denTerminalen auch weggelassen werden Informatik 12 1. Formale Sprachen 1.2 Grammatiken formaler Sprachen

Informatik 12 1. Formale Sprachen 1.2 Grammatiken formaler Sprachen Andere Notationsformen: Die erweiterte Backus-Naur-Form (EBNF) Der Produktionspfeil --> wird durch ein Gleichheitszeichen = ersetzt. Nichtterminale schreibt man ohne spitze Klammern, Terminale schreibt man mit Hochkomma. * Jede Regel endet mit einem Strichpunkt. Datumsangaben : datum = tag ’.’ monat ’.’ jahr ; Informatik 12 1. Formale Sprachen 1.2 Grammatiken formaler Sprachen

Informatik 12 1. Formale Sprachen 1.2 Grammatiken formaler Sprachen Andere Notationsformen: Die erweiterte Backus-Naur-Form (EBNF) Optionale Teile eines Worts werden in eckige Klammern [ ] gesetzt. jahr = [ziffer ziffer] ziffer ziffer ; heißt, dass man 2015 oder 15 für das Jahr schreiben kann. In BNF : <jahr> --> <ziffer><ziffer> | <ziffer><ziffer><ziffer><ziffer> Informatik 12 1. Formale Sprachen 1.2 Grammatiken formaler Sprachen

Informatik 12 1. Formale Sprachen 1.2 Grammatiken formaler Sprachen Andere Notationsformen: Die erweiterte Backus-Naur-Form (EBNF) Wiederholungen werden in geschweifte Klammern { } gesetzt. zahl = ziffer {ziffer} ; ist eine andere Schreibweise für die rekursive Produktionsregel <zahl> --> <ziffer> | <ziffer><zahl> in BNF. Informatik 12 1. Formale Sprachen 1.2 Grammatiken formaler Sprachen

Informatik 12 1. Formale Sprachen 1.2 Grammatiken formaler Sprachen Andere Notationsformen: Die erweiterte Backus-Naur-Form (EBNF) Gruppierungen werden in runde Klammern ( ) gesetzt. wort = ('a' | 'b') rest ; produziert alle Wörter, die entweder mit 'a' oder 'b' anfangen. In BNF: <wort> --> 'a' <rest> | 'b' <rest> Informatik 12 1. Formale Sprachen 1.2 Grammatiken formaler Sprachen

Informatik 12 1. Formale Sprachen 1.2 Grammatiken formaler Sprachen Andere Notationsformen: Syntaxdiagramme Syntaxdiagramme helfen, die Produktionsregeln zu veranschaulichen Informatik 12 1. Formale Sprachen 1.2 Grammatiken formaler Sprachen

Informatik 12 1. Formale Sprachen 1.2 Grammatiken formaler Sprachen Andere Notationsformen: Syntaxdiagramme Syntaxdiagramme helfen, die Produktionsregeln zu veranschaulichen Hinter der Variable, die verarbeitet werden soll, setzt man einen Doppelpunkt. Nichtterminale schreibt man in Rechtecke, Terminale in Kreise. Informatik 12 1. Formale Sprachen 1.2 Grammatiken formaler Sprachen

Informatik 12 1. Formale Sprachen 1.2 Grammatiken formaler Sprachen Andere Notationsformen: Syntaxdiagramme Auswahl Informatik 12 1. Formale Sprachen 1.2 Grammatiken formaler Sprachen

Informatik 12 1. Formale Sprachen 1.2 Grammatiken formaler Sprachen Andere Notationsformen: Syntaxdiagramme Optionale Teile Informatik 12 1. Formale Sprachen 1.2 Grammatiken formaler Sprachen

Informatik 12 1. Formale Sprachen 1.2 Grammatiken formaler Sprachen Andere Notationsformen: Syntaxdiagramme Wiederholungen Informatik 12 1. Formale Sprachen 1.2 Grammatiken formaler Sprachen