Sprachanalyse Fachseminar WS 08/09 Dozent: Prof. Dr. Helmut Weber Referentin: Nadia Douiri Inhalt 1. Formale Sprachen 2. Chomsky-Hierarchie Nadia Douiri Fachseminar 2 FORMALE SPRACHE 1. WAS IST EINE SPRACHE? 2. WIE BESCHREIBT MAN EINE SPRACHE? 3. WAS IST EINE FORMALE SPRACHE? Nadia Douiri Fachseminar 3 1. WAS IST EINE SPRACHE? aus Wörtern bestehende, also verbale Kommunikation Wortschatz, welcher semantische Informationen enthält und eine Grammatik, welche die Wörter in Beziehung zueinander setzt. Sprache Natürliche Sprache Nadia Douiri Formale Sprache Fachseminar 4 2. WIE BESCHREIBT MAN EINE SPRACHE? Eine Sprache kann sowohl durch eine formale Beziehung (Syntax) als auch durch die inhaltliche Bedeutung (Semantik) beschrieben werden. Nadia Douiri Fachseminar 5 Semantik Regelt den Gebrauch der Symbole aufgrund zusätzlicher Informationen, wie z.B. der Bedeutung, dem Sinn und der Verständlichkeit. Semantik (inhaltliche Bedeutung) Formale Beschreibung der Semantik Wörterbuch: Semantik durch Übersetzung Nadia Douiri Fachseminar 6 Syntax Regelt die erlaubten Kombinationen von Symbolen, also den formalen Aufbau von Symbolen. Sie definiert die Regeln, wie die Ausdrücke einer Sprache auszusehen haben. Syntax (formale Beziehung) Formale Beschreibung der Syntax (Regelmenge) Grammatik Nadia Douiri Fachseminar 7 3. WAS IST EINE FORMALE SPRACHE? Programmiersprachen sind keine formalen Sprachen sind, sondern sie werden lediglich durch formale Sprachen definiert. Eine Formale Sprache ist eine Menge von Wörtern endlicher Länge gebildet aus Elementen eines Alphabetes . Der Unterschied zu natürlichen Sprachen ist, dass formale Sprachen auf Sprachsysteme, konstruiert durch Logik und/ oder Mathematik, basieren. Nadia Douiri Fachseminar 8 Unter Symbole versteht man unterscheidbare Objekte. Beispiel für… …ein simples Alphabet a, b …einen arithmetischer Ausdruck +, -, *, / …den alltäglichen Wortgebrauch der, die, das, …die Programmiersprache C ++, --, IF, != Nadia Douiri Fachseminar 9 Ein Alphabet ist eine Menge von Symbolen oder Zeichen. Beispiel für… …ein simples Alphabet A = { a ,b } …einen korrekt geklammerter arithmetischer Ausdruck. B = { ) ,( ,+ ,- ,* ,/ ,a } …den alltäglichen Wortgebrauch W = {der, die, das, kleine, große, bissige, jagt, Hund, Katze} …die Programmiersprache C C = { - , / , * , ++ , a , b , c , DO , FOR} Nadia Douiri Fachseminar 10 Ein Wort über einem Alphabet ist eine endliche Folge von Symbolen. Das leere Wort bzw. der Leerstring wird mit bezeichnet. Beispiel für… …ein simples Alphabet {a, ab, aa, abb, aba, aab} …einen arithmetischen Ausdruck {(((a))), (a - a) * a + a / (a + a) - a} …die Programmiersprache C {a++, a + b, a-b, WHILE(a != b)} Nadia Douiri Fachseminar 11 Eine Grammatik G ist ein 4-Tupel G = (N, T, P, S), wobei N: Menge von nichtterminalen Symbolen, T: Menge von terminalen Symbolen, d.h. das Alphabet P: Menge der Produktionen S: Startsymbol wobei S ∈ N und T ∩ N = ∅ Nadia Douiri Fachseminar 12 Beispiele Nadia Douiri Fachseminar 13 CHOMSKY-HIERARCHIE 1. KLASSIFIZIERUNG 2. ZUSAMMENFASSUNG DER TYPEN 3. Menge aller Sprachen Nadia Douiri Fachseminar 14 Chomsky-Hierarchie von Noam Chomsky beschrieben eine Hierarchie von formalen Grammatiken, zum Erzeugen von verschieden formalen Sprachen zur Klassifizierung Einteilung in 4 Typen Nadia Douiri Fachseminar 15 1. KLASSIFIZIERUNG Typ 0-Grammatik (uneingeschränkte Grammatik) den Regeln sind keinerlei Einschränkungen auferlegt jede Grammatik ist zunächst automatisch von Typ 0 ist zu allgemein für den Compilerbau Typ 1-Grammatik (kontextsensitive Grammatik) für alle Regeln u → v in der Produktion gilt: |u| ≤ |v| Grammatiken von diesem Typ sind zugleich auch von Typ 0. Nadia Douiri Fachseminar 16 Typ 2-Grammatik (kontextfreie Grammatik) für alle Regeln u → v in der Produktion gilt, dass u eine einzelne Variable ist. Jede Regel einer Typ-2-Grammatik stellt somit auch eine von Typ 1 dar. Werden im Zusammenhang mit Programmiersprachen benutzt. Typ 3-Grammatik (reguläre Grammatik) zusätzlich für die Produktionen gilt, linkslinear: A → Ba, A → a oder rechtslinear: A → aB, A → a mit A, B ∈ N, a ∈ T. Nadia Douiri Fachseminar 17 2. ZUSAMMENFASSUNG DER TYPEN Grammatik Typ Produktionsformen Allgemein 0 beliebig Kontextsensitiv 1 αAβ → αγβ Kontextfrei 2 A →α Regulär 3 A → a | aB |Ba α, β, γ sind Symbolfolgen bestehend aus Terminalen und Variablen, A und B sind Variablen, a ist ein Terminal Nadia Douiri Fachseminar 18 3. Menge aller Sprachen Nadia Douiri Fachseminar 19 Beispiele Nadia Douiri Fachseminar 20