Prof. Dr. rer.nat. Ralph Großmann Fakultät Informatik / Mathematik Sommersemester 2012 Internet-Technologien XML-basierte Techniken Teil Metasprache der.

Slides:



Advertisements
Ähnliche Präsentationen
XML-basierte Techniken
Advertisements

Vorlesung Compilertechnik Sommersemester 2008
Programmierung 1 - Repetitorium WS 2002/2003 Programmierung 1 - Repetitorium Andreas Augustin und Marc Wagner Homepage:
Kontextfreie Grammatiken
Theoretische Grundlagen der Informatik Prof. Dr. Michael Löwe
Modellbasierte Software-Entwicklung eingebetteter Systeme
Extensible Markup Language
7. Natürliche Binärbäume
8. Formale Sprachen und Grammatiken
Imperative Programmierung
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Notationen A = ist eine endliche, nichtleere menge,
Grammatiken, Definitionen
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Grammatiken beschreiben Sprachen L µ *, indem.
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Reduktionen Def: L · L (L ist reduzierbar auf.
FH-Hof Extensible Markup Language Richard Göbel. FH-Hof Extensible Markup Language XML XML ist universeller Ansatz für die Strukturierung von Zeichenketten.
FH-Hof Grammatiken Richard Göbel. FH-Hof Begriffe Eine Grammatik definiert die Struktur (Syntax) einer Zeichenkette Eine Grammatik definiert nicht die.
CFGs und Kellerautomaten
DOM (Document Object Model)
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (05 – Reguläre Ausdrücke) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (06 – Reduktion endlicher Automaten) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (12 – Kellerautomaten, PDA) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (17 –Turingmaschinen) Prof. Dr. Th. Ottmann.
Basisinformationstechnologie I Dozent T.Schaßan Ableitungsbaum Referentin: Munkhnast Dembereldalai.
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,
Prolog Grundkurs WS 98/99 Christof Rumpf
Sprachwissenschaftliches Institut Einführung in die HPSG Grammatiktheorie 4./11. Mai 2004.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 1 Gisbert Dittrich; Claudio Moraga FBI Unido
? Grammatik  Orthographie ?
d.h. für alle  mit () = (s1,s2 ,...,sn,s) gilt: wenn
Beispiele für Ausdrucksalgebren
Lexikalisch-Funktionale-Grammatik
Agenda Motivation Formale Sprachen Compiler Compilerentwicklung
1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Wintersemester.
Christian Schindelhauer
Christian Schindelhauer
Christian Schindelhauer
Grundkurs Theoretische Informatik, Folie 7.1 © 2006 G. Vossen,K.-U. Witt Grundkurs Theoretische Informatik Kapitel 7 Gottfried Vossen Kurt-Ulrich Witt.
Formale Sprachen Grundbegriffe für formale Sprachen
§10 Vektorraum. Definition und Beispiele
Formale Sprachen und Automaten
Christian Schindelhauer Wintersemester 2006/07 8. Vorlesung
BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 13. Sitzung WS 02/03.
Grundlagen der Programmierung
Formale Sprachen Grammatiken und die Chomsky-Hierarchie
Formale Sprachen Reguläre Sprachen Rudolf FREUND, Marian KOGLER.
Automaten, formale Sprachen und Berechenbarkeit II SoSe 2004 Prof. W. Brauer Teil 1: Wiederholung (Vor allem Folien von Priv.-Doz. Dr. Kindler vom WS 2001/02.
Städtisches Gymnasium Beverungen Friedel Berlage
Dieser nicht Fehler finden Algorithmus enthält einfach einen gravierenden welcher zu ist.
Beispiele: KFG 2.Teil Beispiel 1: Sei G eine Grammatik mit den folgenden Regeln: S  Ac | Bd A  aAb | ab B  aBbb | abb Definieren Sie.
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.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Arne Vater Wintersemester 2006/07 28.
Christian Schindelhauer Wintersemester 2006/07 5. Vorlesung
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Christian Schindelhauer Wintersemester 2006/07 3. Vorlesung
Arne Vater Wintersemester 2006/ Vorlesung
Christian Schindelhauer Wintersemester 2006/07 6. Vorlesung
Christian Schindelhauer Wintersemester 2006/07 2. Vorlesung
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Informatik Formale Sprachen 1.2 Grammatiken formaler Sprachen
Mensch – Maschine - Kommunikation
Der Hund jagt die Katze. Theoretische Informatik Satz S P O
Institut für Softwarewissenschaft – Universität WienP.Brezany 1 Beispiele (Frist: ) Beispiel 1: Sei  = {a, b} ein Alphabet und Q = {q 0, q 1 } eine.
7. Formale Sprachen und Grammatiken
Kapitel 4:Die Chomsky Hierarchie
2 Grundlagen In diesem Abschnitt werden die Grundbegriffe und Methoden der Theorie der formalen Sprachen und der Automaten wiederholt, soweit diese ben.
 Sortigkeit oder Arität
Sprachen und Programmiersprachen
 Präsentation transkript:

Prof. Dr. rer.nat. Ralph Großmann Fakultät Informatik / Mathematik Sommersemester 2012 Internet-Technologien XML-basierte Techniken Teil Metasprache der XML-Spezifikation Teil 2

Metasprache der XML-Spezifikation 1.Sprachbegriff / 2. Grammatikbegriff 1. Sprachbegriff (N.CHOMSKY 1959) Gegeben ist ein endliches Alphabet A von Symbolen (Terminalen). Über der Trägermenge A wird eine assoziative Verkettungsoperation ¤ definiert, die das hintereinander Schreiben von Terminalen ( Wortbildung !) realisiert. Die Menge aller Wörter (Hülle) wird mit A* bezeichnet. Jede Teilmenge L von A* heißt Sprache. Für praktische Anwendungen muss eine Sprache aber einen gewissen Aufbau besitzen, d.h. die Wortbildung unterliegt grammatikalischen Regeln. 2. Grammatikbegriff Eine Grammatik G ist ein 4-Tupel G=(A,V,w,P) mit - A nichtleeres endliches Alphabet von Symbolen (Terminalen) - V nichtleere Menge von sogenannten Nichtterminalen (syntaktische Kategorien zur Strukturierung) mit A V = Ø - w є V Startsymbol (in XML z.B. document ) - P Teilmenge von (A U V) * × (A U V) *, d.h. eine binäre Relation, eine Menge von Ableitungsregeln oder Produktionen.

Eine Produktion ist also ein Paar (x,y) є P mit der Bedeutung x ist aus y ableitbar, d.h. für ein y kann ein x substituiert werden. CHOMSKY definierte eine Hierarchie von Sprachen (Typ 0 bis Typ 3) entsprechend von Einschränkungen der Form der Produktionsregeln. CHOMSKY Typ 2 – Sprachen stellen die sogen. kontextfreien Sprachen dar. Fast alle praktisch in Anwendung befindlichen formalen Sprachen haben eine kontextfreie Grammatik. Für diese Grammatiken gilt die Einschränkung: P ist Teilmenge von V × (A U V) *. Die linke Seite einer Regel ist immer ein Nichtterminal. Zur Notation der Produktionsregeln haben BACKUS und NAUR 1960 eine Metasprache vorgeschlagen, die seither in erweiterter Form zur Definition von Grammatiken für formale Sprachen benutzt wird. Metasprache der XML-Spezifikation 2. Grammatikbegriff / CHOMSKY Typ 2

Metasprache der XML-Spezifikation 3. EBNF / Terminale / Nichtterminale 3. Extended Backus Naur Form (EBNF) Es werden hier die Spezifika und Erweiterungen erläutert, die in der Notation der XML-Spezifikation verwendet werden. Symbole (Terminale) des Alphabetes A: - Symbole müssen in Apostrophe (entweder in oder in ) eingeschlossen werden. Bsp.: <, %, <!DOCTYPE -Symbole, die nur aus einem einzelnen Zeichen bestehen, können in Hexadezimaldarstellung (Ein- oder Mehrbyte) angegeben werden: #xN, N ist eine Hexadezimalzahl Bsp.: #x20, #x9, #xDA Nichtterminale von V: - Nichtterminale sind normale Bezeichnungen (Groß- und Kleinschreibung ist signifikant ). Bestimmte Bezeichnungen sollen nicht verwendet werden, wie z.B. mit XML anfangende. Bsp.: S, document, ExternalID, PEReference

Metasprache der XML-Spezifikation Produktionsregeln / Alternative Produktionsregeln von P: - eine Produktionsregel (x,y) є P mit x є V und y є (A U V) * wird in der Form x ::= y geschrieben. x stellt ein Nichtterminal und y einen Ausdruck dar. Bsp.: NDataDecl ::= S 'NDATA' S Name - Ein Ausdruck stellt gemäß (A U V) * eine Verkettung von Terminalen und Nichtterminalen dar. Die EBNF definiert einige Metaoperationen, die in Ausdruck vorkommen dürfen. Alternative: - Sind A und B Ausdrücke, so ist auch A | B ein Ausdruck. C ::= A|B ersetzt die beiden Regeln C ::= A und C ::= B. Bsp.: Misc ::= Comment | PI | S, ExternalID ::= 'SYSTEM' S SystemLiteral | 'PUBLIC' S PubidLiteral S SystemLiteral

Metasprache der XML-Spezifikation Sequenz Sequenz: -Sind A und B Ausdrücke, so ist auch A, B ein Ausdruck. - C ::= A,B bedeutet die Angabe einer strikten Reihenfolge, d.h. C ist definiert durch die Abfolge der Elemente A und B. - Bsp.: Dokument ::= Head, Body -Bem.: in der ursprünglichen Backus-Naur-Form waren die Nichtterminale in <> eingeschlossen, womit ein Trennsymbol für die Hintereinander- Schreibung nicht notwendig war!

Metasprache der XML-Spezifikation Option / Zusammenfassung / Wiederholung Option: - Ist A ein Ausdruck, so ist auch A ? ein Ausdruck. C ::= A? ersetzt die beiden Regeln C ::= A und C ::=, d.h. A kann stehen oder nicht. Bsp.: Eq ::= S? '=' S? Zusammenfassung: - Ist A ein Ausdruck, so ist auch ( A ) ein Ausdruck. Wegen der Metaoperationen mit unterschiedlichen Prioritäten und der Anwendung von Operatoren auf mehrere Elemente sind Klammerungen unerläßlich. Bsp.: VersionInfo ::= S 'version' Eq ("'" VersionNum "'" | '"' VersionNum '"') Wiederholung: - Ist A ein Ausdruck, so ist auch A + ein Ausdruck. C ::= A+ ersetzt die Folge von Regeln C ::= A und C ::= A A und C ::= A A A, usw. d.h. A kann einmal oder beliebig oft stehen Bsp.: S ::= (#x20 | #x9 | #xD | #xA)+

Metasprache der XML-Spezifikation Wiederholungs-Option / Differenz / Aufzählung von Einzelzeichen Wiederholungs-Option: - Ist A ein Ausdruck, so ist auch A * ein Ausdruck. C ::= A* ersetzt die Regel C ::= A + |. D.h. A kann keinmal, einmal oder beliebig oft stehen. Bsp.: Names ::= Name (#x20 Name)* Differenz: - Sind A und B Ausdrücke, so ist auch A - B ein Ausdruck. Es sind alle Muster zugelassen, die dem Ausdruck A entsprechen, aber keine Muster, die dem Ausdruck B entsprechen. Bsp.: PITarget ::= Name - (('X' | 'x') ('M' | 'm') ('L' | 'l')) Aufzählung von Einzelzeichen: - Sind o.B.d.A. p & / drei Einzelzeichen, so ist auch [p&/] ein Ausdruck. C ::= [p&/] ersetzt die Regel C ::= p | & | /. Für ein aufgezähltes Einzelzeichen kann auch sein Hexadezimalkode in der Form #xN stehen. Bsp.: PubidChar ::=

Metasprache der XML-Spezifikation Aufzählung Bereiche/Aufzählung nichtzugelassener Einzelzeichen Aufzählung von Bereichen von Einzelzeichen: - Sind o.B.d.A. 0-9 und A-Z zwei Bereiche von Einzelzeichen der Ziffern 0 bis 9 und der Großbuchstaben A bis Z, so ist auch [0-9A-Z] ein Ausdruck. C ::= [0-9A-Z] ersetzt die Regel C ::= 0 | 1 | 2 |…| 9 | A | B |…| Z. Für ein aufgezähltes Einzelzeichen kann auch sein Hexadezimalkode in der Form #xN stehen. Bsp.: CharRef ::= '&#' [0-9]+ ';' | '&#x' [0-9a-fA-F]+ ';' Char ::= [#x20-#xD7FF] Aufzählung von nicht zugelassenen Einzelzeichen: - Sind o.B.d.A. p & / drei Einzelzeichen, so ist auch [^p&/] ein Ausdruck. Das in einer Aufzählung [...] vorangestellte Zeichen ^ bedeutet, dass die aufgezählte Folgezeichen nicht stehen dürfen. Für ein aufgezähltes Einzelzeichen kann auch sein Hexadezimalkode in der Form #xN stehen. Bsp.: AttValue ::= '"' ([^<&"] | Reference)* '"' | "'" ([^<&'] | Reference)* "'"

Metasprache der XML-Spezifikation 4.XML-Parser 4. XML Parser Bei der Benutzung von Parsern ist zu beachten, dass diese in jedem Fall von einem unterliegenden deterministischen Parsing-Modell ausgehen. Die Regeln müssen in jedem Fall linksfaktorisiert angegeben werden, d.h. statt der Regel C::=A B | A C muss C::= A ( B | C ) angegeben werden. Die Parser arbeiten in der Regel ohne Look-ahead-Technik und natürlich ohne Backtracking. Die Grammatik muss also eine LF(1)- bzw. eine LR(1)- Grammatik sein. Diese wird in eine CHOMSKY Typ 3 – Form transformiert, die mit einem endlichen Automaten analysierbar ist.