Algorithmen & Programmierung. Formale Sprachen Die Logik hinter dem Compiler

Größe: px
Ab Seite anzeigen:

Download "Algorithmen & Programmierung. Formale Sprachen Die Logik hinter dem Compiler"

Transkript

1 Algorithmen & Programmierung Formale Sprachen Die Logik hinter dem Compiler

2 Natürlichsprachliche Programme? Können Programme natürlichsprachlich formuliert werden? Kaufe zwei Tüten Mehl und Gemüse!? Implizites Wissen Natürlichsprachliche Algorithmen setzen i.d.r. implizites Zusatzwissen des Prozessors voraus. Deshalb ist die Granularität von Aktionen, die in natürlicher Sprache beschrieben werden, meist sehr grob. Idee für Abhilfe Verfeinerung der Granularität, so dass jede Aktionen so exakt beschrieben werden kann, dass zur ihrer Ausführung nur noch relativ einfaches Elementarwissen vorausgesetzt werden muss. Problem Mit dem Konzept natürliche Sprache lassen sich Sachverhalte nicht eindeutig formulieren. 156

3 Mehrdeutigkeit natürlicher Sprache Problem Sprachliche Zeichen (z.b. Wörter) können manchmal auf verschiedene Weise interpretiert werden. Umgekehrt können mehrere verschiedene Worte denselben Sachverhalt bezeichnen. Natürliche Lösung Die richtige Bedeutung eines mehrdeutigen Begriffes (korrekte Interpretation) erschließt sich oft nur aus dem Kontext einer Konversation oder eines Schriftstücks. Zusätzlich spielt wiederum das implizite vorausgesetzte Wissen eine große Rolle für die korrekte Interpretation mehrdeutiger Begriffe. Maschinelles Verstehen natürlicher Sprache Aufgrund dieser Mehrdeutigkeiten ist es trotz großer Forschungsbemühungen bis heute nicht gelungen, zuverlässige Systeme zu entwickeln, die allgemeine natürliche Sprache verstehen. 157

4 Mehrdeutigkeit natürlicher Sprache Homonyme Bezeichnet ein Wort, das verschiedene Bedeutungen besitzt, z.b. Bank, Rasen, Schimmel Synonyme Bezeichnet verschiedene Wörter, die denselben Sachverhalt beschreiben, z.b. Schimmel - weißes Pferd Weitere Mehrdeutigkeiten Wachstube, Tonerkennung, Druckerzeugnis, Musikerleben Das Auto wird das Hindernis umfahren (Betonung von umfahren ist wichtig für Bedeutung) Mädchenhandelsschule (Schule für Mädchenhandel oder Handelsschule für Mädchen?) Junge Frauen und Männer (Sind die Männer auch jung?) 158

5 Natürliche & Formale Sprachen Unterscheidung von Sprachen Natürliche Sprachen Fachsprachen Formale Sprachen Formale Sprachen vs. natürliche Sprachen Eine Formulierung von Sachverhalten ist mit formalen Sprachen eindeutig. Algorithmen, die mit Hilfe formaler Sprachen formuliert werden, sind eindeutig ausführbar und setzen kein implizites Wissen voraus. 159

6 Formale Sprachen

7 Formale Sprachen - Beispiele Formelschrift in Mathematik Jeder Mathematiker sollte die Aussage einer Formel verstehen. Programme können ausschließlich auf Basis einer Formel Berechnungen anstellen, z.b. die Formel visualisieren: 161

8 Formale Sprachen - Beispiele Notenschrift Auch die Notation von Musik ist eine formale Beschreibung ohne Mehrdeutigkeiten. Allerdings verlangt eine schön klingende musikalische Umsetzung das Hinzuziehen impliziten Wissens der Musiker. Ein rein formales Abspielen durch entsprechende Software klingt (noch?) nicht sehr musikalisch. 162

9 Formale Sprachen Fragen Wie kann man formale Sprachen beschreiben und definieren? Wie kommt man von Beschreibungen in natürlicher Sprache zu formalen Beschreibungen? Wie beseitigt man die Mehrdeutigkeiten natürlicher Sprachen? Erster Schritt Beispielhafte Untersuchung von Gesetzmäßigkeiten natürlicher und formaler Sprachen: Analyse einer unbekannten Sprache (Schrift) Analyse natürlichsprachlicher Sätze Analyse algebraischer Ausdrücke 163

10 Analyse einer unbekannten Sprache Auch wenn wir (zumindest die meisten) ) diesen Text weder lesen noch verstehen können, lassen sich einige Gesetzmäs- sigkeiten in der Sprache bzw. Schrift erkennen: Zeichen Die Schrift ist aus verschiedenen Einzelzeichen aufgebaut, die sich wiederholen können. Wörter Mehrere Einzelzeichen werden (offensichtlich) zu Wörtern zusammengefasst. Anordnung der Zeichen Die Schriftzeichen sind horizontal angeordnet und die Leserichtung ist (vermutlich) links rechts 164

11 Analyse natürlicher Sätze DER TIGER JAGT DIE ANTILOPE Artikel Substantiv Verb Artikel Substantiv Subjekt Prädikat Objekt Satz 165

12 Analyse algebraischer Ausdrücke ( ) 9 Operand (Term) Operator Operand (Term) { Operand Operator (Term) { Ausdruck (Term) Operand (Term) 166

13 Regeln zur Satzerzeugung Satz Subjekt Prädikat Objekt Subjekt Artikel Substantiv Objekt Artikel Substantiv Prädikat Verb Verb JAGT DER TIGER JAGT DIE ANTILOPE Artikel DER Artikel DIE Artikel Substantiv Verb Artikel Substantiv Substantiv TIGER Subjekt Prädikat Objekt Substantiv ANTILOPE Substantiv LÖWE Satz 167

14 Regeln zur Satzerzeugung Wir erkennen relativ leicht richtige und falsche Satzstrukturen, selbst wenn wir den Inhalt nicht verstehen: Es existiert ein Interesse an der generellen Rezession der Applikation relativ primitiver Methoden komplementär zur Favorisierung adäquater komplexer Algorithmen. Dieser Satz kein Verb Dies gilt auch für mathematische Ausdrücke (bei denen man allerdings oft etwas genauer hinschauen muss): (3+y)((z+(4 x) x+y ) 168

15 Definition formaler Sprachen Alphabet Eine endliche geordnete Menge von Zeichen heißt Alphabet (Zeichenvorrat). Zeichenkette Eine Zeichenkette über Σ wird wie folgt definiert: 1. Die leere Zeichenkette ε (epsilon) ist eine Zeichenkette 2. Wenn α eine Zeichenkette ist, dann ist die Aneinanderreihung αx bzw. xα auch eine Zeichenkette für jedes x Σ. Länge einer Zeichenkette α bezeichnet die Anzahl der Zeichen einer Zeichenkette α, wobei gilt: ε =0 169

16 Beispiel Mit diesem Alphabet altdeutscher Spielkarten können als Zeichenketten typische Skathände mit zehn Einzelkarten oder der Skat selbst mit zwei Einzelkarten gebildet werden. commons.wikimedia.org 170

17 Definition formaler Sprachen Gleichheit Zwei Zeichenketten α = α 1... α n und β = β 1...β m sind gleich, wenn n=m und α i =β i für i=1..n Konkatenation Als Konkatenation α β zweier Zeichenketten α = α 1... α n und β = β 1...β m bezeichnet man ihre Aneinanderreihung α β = α 1... α n β 1...β m Kleenesche Hülle Σ * Die Menge aller Zeichenketten, die sich mittels Konkatenation aller Symbole aus Σ bilden lassen, wird als Kleenesche Hülle Σ * bezeichnet. Formale Sprache und Wort Jede Teilmenge L Σ * heißt formale Sprache und eine Zeichenkette w L wird als Wort bezeichnet. 171

18 Beispiele für formale Sprachen Menge aller Kartenpaare, die sich im Skat befinden können endliche Sprache Menge aller möglichen Schachspiele sehr große, aber endliche Sprache Menge aller C-Programmtexte unendliche Sprache Menge aller Basensequenzen, die GTAC enthalten unendliche Sprache 172

19 Syntax und Grammatik

20 Motivation Gegeben Alphabet Σ mit 52 franz. Karten Formale Beschreibung Pokerhand mit fünf Karten Realisierung mit L Σ * wikipedia.de Mögliches Resultat Weitere Möglichkeit Problem Mit der bisherigen Definition können keinerlei Einschränkungen getroffen werden, weder bzgl. der erlaubten Kartenanzahl noch die Tatsache dass jede Karte nur einmal vorhanden ist. 174

21 Syntax Syntax Die Syntax einer Sprache L Σ * bezeichnet eine Menge von Regeln, die festlegen, welche Elemente aus Σ * zu L gehören. Bedeutung Die Syntax regelt, welche der möglichen Zeichenketten einer Sprache tatsächlich zulässig sind. Realisierung Die aufgestellte Menge von Regeln beschreibt die Erzeugung zulässiger Zeichenketten der Sprache. Aufgrund des generativen Charakters heißt dieses Regelwerk Generative Grammatik. 175

22 Grammatik Als generative Grammatik bezeichnet man das Quadrupel G = (Σ, V, R, S) mit: Alphabet der Zeichen Σ (Terminalsymbole) Zeichen oder Zeichenfolgen des Alphabets, aus dem die Wörter der Sprache bestehen Menge der Variablen V (Nichtterminalsymbole) Menge an Variablen, die durch Anwendung von Regeln ersetzt werden. Es gilt: Σ V= Menge der Regeln R Beschreibt, wie man aus den Variablen neue Variablen, Zeichen oder Zeichenketten bildet. Allgemein schreibt man eine Regel in der Form v u, wobei v eine beliebige Variable aus der Menge V ist und u eine beliebige Aneinanderreihung von Elementen aus V und Σ, d.h. (V Σ) *. Startvariable S S V ist die Startvariable, aus der alle Wörter der Sprache erzeugt werden. 176

23 Ableitung Ableitung Eine Folge von Wörtern (w0, w1,..., wn) mit w0 = S, wn (V Σ)* und wi wi+1 für i=0,...,n 1 heißt Ableitung von wn (aus S). Ablauf Mit Hilfe der Regelmenge R wird jeweils ein Wort in einem Schritt in ein neues Wort abgebildet (abgeleitet). Dabei ersetzt man die linke Seite einer Regel (v) durch ihre rechte Seite (u). 177

24 Erzeugte Sprache Ziel einer Grammatik Das Ziel einer Grammatik liegt in der Erzeugung von Wörtern, die ausschließlich aus Terminalsymbolen bestehen. Zielerreichung Wenn im Ableitungsprozess ein Wort entsteht, das noch mindestens eine Variable enthält (w (V Σ)*), müssen die Regeln aus R erneut auf ein derartiges Wort angewendet werden, bis das entstandene Wort nur noch aus Terminalsymbolen besteht. Erzeugte Sprache Alle Wörter w Σ*, die in beliebig vielen Schritten aus dem Startsymbol abgeleitet werden können, bilden die von einer Grammatik G erzeugte Sprache L mit L(G) = { w Σ * S * G w } (S * G w bedeutet, dass sich w aus dem Startsymbol S der Grammatik G in beliebig vielen Schritten ableiten lässt) 178

25 Erweiterte Backus-Naur-Form Die Syntax höherer Programmiersprachen wird i.d.r. mit Hilfe von Grammatiken definiert. Die erweiterte Backus-Naur-Form (EBNF) ist ein Formalismus zur kompakten Darstellung von Grammatiken: Definitionszeichen = Ableitungszeichen Terminalsymbole " werden in Anführungszeichen eingeschlossen Variablen (Nichtterminalsymbole) bekommen Namen, der mit einem Großbuchstaben startet Selektionsklammern (... ) Genau eine Alternative aus der Klammer muss ausgewählt (selektiert) werden Optionsklammern [ ] Inhalt der Klammer ist optional Wiederholungsklammern { } Inhalt der Klammer kann n-fach stehen mit n 0 179

26 Beispiel Gegeben sei folgende Grammatik G(Σ,V,R,S) zur Darstellung ganzer Zahlen mit optionalem Vorzeichen: Σ = {0,1,2,3,4,5,6,7,8,9,+, } V = {GANZZAHL, ZAHL, VORZEICHEN, ZIFFER} R = { GANZZAHL ZAHL, GANZZAHL VORZEICHEN ZAHL, ZAHL ZIFFER, ZAHL ZIFFER ZAHL, VORZEICHEN +, VORZEICHEN ZIFFER 0, ZIFFER 1, ZIFFER 2, ZIFFER 3, ZIFFER 4, ZIFFER 5, ZIFFER 6, ZIFFER 7, ZIFFER 8, ZIFFER 9 } S = GANZZAHL 180

27 Syntaxdiagramm Verwendung Syntaxdiagramme dienen zur Visualisierung von Grammatiken ob ein Wort Element einer Sprache ist, kann im Syntaxdiagramm direkt abgelesen werden Ausdrucksmächtigkeit Syntaxdiagramme können genau die gleichen Grammatiken wie die EBNF darstellen. Bestandteile runde Kästchen bzw. Kreise repräsentieren Terminalsymbole eckige Kästchen stellen Variablen dar Verbindungen aus Linien und Pfeilen 181

28 Syntaxdiagramm Regeln für den Aufbau jedes Syntaxdiagramm besitzt einen eindeutigen Namen an jedem Kästchen enden genau zwei Linien (Pfeile), die sich in der Regel gegenüberliegen es gibt genau eine Linie, die in das Diagramm hineinführt (Eingang) es gibt genau eine Linie, die aus dem Diagramm hinausführt (Ausgang) Linien dürfen sich ausschließlich bei gewollter Verzweigung kreuzen Weg Ein Weg durch ein Syntaxdiagramm beginnt am Eingang und folgt in gleichbleibender Richtung den Linien, wobei Kästchen einfach durchquert werden. An Verzweigungspunkten darf ein Zweig unter Beachtung der Pfeilrichtung ausgewählt werden. Ausdruck Jeder in Pfeilrichtung begehbare Weg ist ein gültiger Ausdruck (Wort). 182

29 Syntaxdiagramm Nichtterminale / Variablen Alternative / Selektion Terminalsymbole Option / Selektion Konkatenation / Sequenz Wiederholung / Iteration 183

30 Syntaxdiagramm - Beispiel Ganze Zahlen 0: 184

31 Syntaxdiagramm - Beispiel Selektion: 185

32 Darstellung von C-Syntax Regeln zur Darstellung von C-Syntax Da wir Grammatiken meist zur Darstellung syntaktischer Sprachelemente von C benötigen, werden wir aus Gründen der Übersichtlichkeit noch eine weitere Darstellungsform verwenden. Terminalsymbole bzw. Schlüsselwörter werden durch eine Schriftart mit fester Zeichenbreite und die Farbe Lila gekennzeichnet. Nichtterminalsymbole werden durch die Farbe Blau dargestellt und unterstrichen. Optionale und wiederholte Elemente werden wie bei der EBNF von eckigen oder geschweiften Klammern in schwarzer Schriftart eingeschlossen. Beispiel (Steuerstrukturen in C) Selektion: Sequenz: Iteration: if ( Bedingung ) { while ( Bedingung ) Anweisung1 { Anweisung ; } Anweisung [ else } Anweisung2 ] 186

33 Semantik einer Sprache Aufgabe Die Semantik einer Sprache L legt die Bedeutung korrekt gebildeter Ausdrücke der Sprache L fest und beantwortet damit die Frage, ob syntaktisch richtige Konstruktionen auch sinnvoll sind. Dies geschieht meist durch zusätzliche Regeln, die nichts mit der Syntax zu tun haben. Im Rahmen dieser Lehrveranstaltung werden wir Aspekte der Semantik jedoch nicht weiter formalisieren. Syntax einfacher Sätze Satz Subjekt Prädikat Objekt Subjekt Artikel Substantiv Objekt Artikel Substantiv Prädikat Verb Verb JAGT Artikel DER Artikel DEN Artikel DIE Substantiv TIGER Substantiv ANTILOPE Substantiv LÖWE 187

34 Anwendung von Grammatiken Lexikalische Analyse Beispiel: Schritte beim Compilieren testet, ob die Wörter der Sprache als Bausteine richtig gebildet sind z.b. Kommandozeilenprogramm lex Syntaktische Analyse (Parsen) testet, ob die Sätze (aus richtigen Wörtern) korrekt gebildet wurden. liefert Ableitungsbaum z.b. Kommandozeilenprogramm yacc Semantische Analyse überprüft den Kontext, z.b. ob jede im Programm benutzte Variable auch definiert wurde 188

35 Weitere Grammatikanwendungen Suche nach Daten Häufig besteht der Wunsch, Daten mit einer bestimmten Struktur zu finden, Dazu existieren Programme, die mit Hilfe von sogenannten regulären Ausdrücken suchen können, die ihrerseits eine (Spezialform einer) Grammatik darstellen. Beispiel grep ist ein Kommandozeilenprogramm, mit dem Textdateien durchsucht werden, ob sie ein Textmuster enthalten, das zu einem vorgegebenen regulären Ausdruck passt grep sucht (evtl. in Kombination mit find) alle Dateien innerhalb eines vorzugebenden Verzeichnispfades, die das Textmuster enthalten für jede gefundene Datei gibt es die Zeilennummern aus, die das Textmuster enthalten Details siehe grep-dokumentation 189

36 Ende der Vorlesung

Sprachen sind durch folgenden Aufbau gekennzeichnet:

Sprachen sind durch folgenden Aufbau gekennzeichnet: BNF UND SYNTAXDIAGRAMME 1. Allgemeines 1.1 Aufbau von Sprachen BNF und Syntaxdiagramme werden verwendet, um die Syntax einer Sprache darzustellen und graphisch zu veranschaulichen. Mit ihnen können entweder

Mehr

Alphabet, formale Sprache

Alphabet, formale Sprache 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

Mehr

Syntax von Programmiersprachen

Syntax von Programmiersprachen "Grammatik, die sogar Könige zu kontrollieren weiß... aus Molière, Les Femmes Savantes (1672), 2. Akt Syntax von Programmiersprachen Prof. Dr. Christian Böhm in Zusammenarbeit mit Gefei Zhang WS 07/08

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

Kapitel IV Formale Sprachen und Grammatiken

Kapitel IV Formale Sprachen und Grammatiken Kapitel IV Formale Sprachen und Grammatiken 1. Begriffe und Notationen Sei Σ ein (endliches) Alphabet. Dann Definition 42 1 ist Σ das Monoid über Σ, d.h. die Menge aller endlichen Wörter über Σ; 2 ist

Mehr

Kapitel 5: Syntaxdiagramme und Grammatikregeln

Kapitel 5: Syntaxdiagramme und Grammatikregeln 5. Syntaxdiagramme und Grammatikregeln 5-1 Objektorientierte Programmierung (Winter 2010/2011) Kapitel 5: Syntaxdiagramme und Grammatikregeln Syntaxdiagramme Grammatikregeln (kontextfrei) Beispiele: Lexikalische

Mehr

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

Formale Sprachen. Inhaltsverzeichnis. M. Jakob. 10. Dezember Allgemeine Einführung. Aufbau formaler Sprachen M. Jakob Gymnasium Pegnitz 10. Dezember 2014 Inhaltsverzeichnis Allgemeine Einführung Aufbau formaler Sprachen Notationsformen formaler Sprachen Backus-Naur-Formen Erkennen formaler Sprachen Implementierung

Mehr

7. Syntax: Grammatiken, EBNF

7. Syntax: Grammatiken, EBNF 7. Syntax: Grammatiken, EBNF Teil 1 Sehr schönes Beispiel für Notwendigkeit der Theoretischen Informatik für Belange der Praktischen Informatik Vertiefung in: Einführung in die Theoretische Informatik

Mehr

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

Theorie der Informatik. Theorie der Informatik. 6.1 Einführung. 6.2 Alphabete und formale Sprachen. 6.3 Grammatiken. 6.4 Chomsky-Hierarchie Theorie der Informatik 17. März 2014 6. Formale Sprachen und Grammatiken Theorie der Informatik 6. Formale Sprachen und Grammatiken Malte Helmert Gabriele Röger Universität Basel 17. März 2014 6.1 Einführung

Mehr

Einführung in die Informatik. Programming Languages

Einführung in die Informatik. Programming Languages Einführung in die Informatik Programming Languages Beschreibung von Programmiersprachen Wolfram Burgard Motivation und Einleitung Wir haben in den vorangehenden Kapiteln meistens vollständige Java- Programme

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

2.1 Allgemeines. Was ist eine Sprache? Beispiele:

2.1 Allgemeines. Was ist eine Sprache? Beispiele: Was ist eine Sprache? Beispiele: (a) Deutsch, Japanisch, Latein, Esperanto,...: Natürliche Sprachen (b) Pascal, C, Java, Aussagenlogik,...: Formale Sprachen Wie beschreibt man eine Sprache? (i) Syntax

Mehr

Objektorientierte Programmierung. Kapitel 3: Syntaxdiagramme

Objektorientierte Programmierung. Kapitel 3: Syntaxdiagramme Stefan Brass: OOP (Java), 3. 1/31 Objektorientierte Programmierung Kapitel 3: Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2014/15 http://www.informatik.uni-halle.de/ brass/oop14/

Mehr

1 Formale Sprachen, reguläre und kontextfreie Grammatiken

1 Formale Sprachen, reguläre und kontextfreie Grammatiken Praktische Informatik 1, WS 2001/02, reguläre Ausdrücke und kontextfreie Grammatiken 1 1 Formale Sprachen, reguläre und kontextfreie Grammatiken Ein Alphabet A ist eine endliche Menge von Zeichen. Die

Mehr

Interdisziplinäre fachdidaktische Übung: Modelle für Sprachen in der Informatik. SS 2016: Grossmann, Jenko

Interdisziplinäre fachdidaktische Übung: Modelle für Sprachen in der Informatik. SS 2016: Grossmann, Jenko Interdisziplinäre fachdidaktische Übung: Modelle für Sprachen in der SS 2016: Grossmann, Jenko Die Beschreibung orientiert sich am Begriffssystem der Beschreibung natürlicher Sprachen Sprache in der steht

Mehr

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

Einführung in die Programmierung für NF. Rückgabewerte, EBNF, Fallunterscheidung, Schleifen Einführung in die Programmierung für NF Rückgabewerte, EBNF, Fallunterscheidung, Schleifen FUNKTIONEN UND PROZEDUREN 3 Rückgabewerte, EBNF, Fallunterscheidung, Schleifen 2 Funk@on und Prozedur Methoden

Mehr

5.1 Einführung. Beispiele. Syntax. Woher weiß der Compiler, dass ein Programm nicht korrekt ist? Unterscheiden: Grammatik und Semantik

5.1 Einführung. Beispiele. Syntax. Woher weiß der Compiler, dass ein Programm nicht korrekt ist? Unterscheiden: Grammatik und Semantik Algorithmen und Programmierung Wintersemester 2016/2017 Algorithmen und Programmierung 5. Kapitel Syntax Prof. Matthias Werner Professur Betriebssysteme Woher weiß der Compiler, dass ein Programm nicht

Mehr

Sprachen und Programmiersprachen

Sprachen und Programmiersprachen Sprachen und Programmiersprachen Natürliche Sprachen versus Programmiersprachen / Spezifikationssprachen Syntax legt die grammatikalische Korrektheit fest. Semantik legt die Bedeutung von syntaktisch korrekten

Mehr

Abschnitt 4: Daten und Algorithmen

Abschnitt 4: Daten und Algorithmen Abschnitt 4: Daten und Algorithmen 4. Daten und Algorithmen 4.1 4.2 Syntaxdefinitionen 4.3 Eigenschaften von Algorithmen 4.4 Paradigmen der Algorithmenentwicklung Peer Kröger (LMU München) Einführung in

Mehr

Algorithmen und Formale Sprachen

Algorithmen und Formale Sprachen Algorithmen und Formale Sprachen Algorithmen und formale Sprachen Formale Sprachen und Algorithmen Formale Sprachen und formale Algorithmen (formale (Sprachen und Algorithmen)) ((formale Sprachen) und

Mehr

Einführung in die Informatik I (autip)

Einführung in die Informatik I (autip) Einführung in die Informatik I (autip) Dr. Stefan Lewandowski Fakultät 5: Informatik, Elektrotechnik und Informationstechnik Abteilung Formale Konzepte Universität Stuttgart 24. Oktober 2007 Was Sie bis

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

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

Definition 4 (Operationen auf Sprachen) Beispiel 5. Seien A, B Σ zwei (formale) Sprachen. Konkatenation: AB = {uv ; u A, v B} A + = n 1 An Definition 4 (Operationen auf Sprachen) Seien A, B Σ zwei (formale) Sprachen. Konkatenation: AB = {uv ; u A, v B} A 0 = {ɛ}, A n+1 = AA n A = n 0 An A + = n 1 An Beispiel 5 {ab, b}{a, bb} = {aba, abbb,

Mehr

Einführung in die Informatik. Programming Languages

Einführung in die Informatik. Programming Languages Einführung in die Informatik Programming Languages Beschreibung von Programmiersprachen Wolfram Burgard Cyrill Stachniss 1/15 Motivation und Einleitung Wir haben in den vorangehenden Kapiteln meistens

Mehr

Grundbegriffe. Grammatiken

Grundbegriffe. Grammatiken Grammatiken Grammatiken in der Informatik sind ähnlich wie Grammatiken für natürliche Sprachen ein Mittel, um alle syntaktisch korrekten Sätze (hier: Wörter) einer Sprache zu erzeugen. Beispiel: Eine vereinfachte

Mehr

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen.

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen. 1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik

Mehr

4. Induktives Definieren - Themenübersicht

4. Induktives Definieren - Themenübersicht Induktives Definieren 4. Induktives Definieren - Themenübersicht Induktives Definieren Natürliche Zahlen Operationen auf natürlichen Zahlen Induktive Algorithmen Induktiv definierte Mengen Binärbäume Boolesche

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik Grundlagen der Theoretischen Informatik Sommersemester 2015 22.04.2015 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Bis jetzt 1. Terminologie 2. Endliche Automaten und reguläre Sprachen

Mehr

Kapitel 4: Syntaxdiagramme und Grammatikregeln

Kapitel 4: Syntaxdiagramme und Grammatikregeln 4. Syntaxdiagramme und Grammatikregeln 4-1 Objektorientierte Programmierung (Winter 2006/2007) Kapitel 4: Syntaxdiagramme und Grammatikregeln Syntaxdiagramme Grammatikregeln (kontextfrei) Beispiele: Lexikalische

Mehr

Formale Sprachen, reguläre und kontextfreie Grammatiken

Formale Sprachen, reguläre und kontextfreie Grammatiken Formale Sprachen, reguläre und kontextfreie Grammatiken Alphabet A: endliche Menge von Zeichen Wort über A: endliche Folge von Zeichen aus A A : volle Sprache über A: Menge der A-Worte formale Sprache

Mehr

Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie

Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Wintersemester 2005/2006 07.11.2005 5. Vorlesung 1 Überblick: Kontextfreie Sprachen Formale Grammatik Einführung, Beispiele Formale

Mehr

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

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

Mehr

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

Lemma Für jede monotone Grammatik G gibt es eine kontextsensitive Lemma Für jede monotone Grammatik G gibt es eine kontextsensitive Grammatik G mit L(G) = L(G ). Beweis im Beispiel (2.): G = (V,Σ, P, S) : P = {S asbc, S abc, CB BC, ab ab, bb bb, bc bc, cc cc}. (i) G

Mehr

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

Grammatiken. Grammatiken sind regelbasierte Kalküle zur Konstruktion von Systemen und Sprachen Überprüfung von Systemen und Sprachen Grammatiken Grammatiken sind regelbasierte Kalküle zur Konstruktion von Systemen und Sprachen Überprüfung von Systemen und Sprachen Grammatiken eignen sich besonders zur Modellierung beliebig tief geschachtelter,

Mehr

Informatik III. Christian Schindelhauer Wintersemester 2006/07 5. Vorlesung

Informatik III. Christian Schindelhauer Wintersemester 2006/07 5. Vorlesung Informatik III Christian Schindelhauer Wintersemester 2006/07 5. Vorlesung 09.11.2006 schindel@informatik.uni-freiburg.de 1 Äquivalenzklassen Definition und Beispiel Definition Für eine Sprache L Σ* bezeichnen

Mehr

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

Grammatiken. Eine Grammatik G mit Alphabet Σ besteht aus: Variablen V. Startsymbol S V. Kurzschreibweise G = (V, Σ, P, S) Grammatiken Eine Grammatik G mit Alphabet Σ besteht aus: Variablen V Startsymbol S V Produktionen P ( (V Σ) \ Σ ) (V Σ) Kurzschreibweise G = (V, Σ, P, S) Schreibweise für Produktion (α, β) P: α β 67 /

Mehr

6 Kontextfreie Grammatiken

6 Kontextfreie Grammatiken 6 Kontextfreie Grammatiken Reguläre Grammatiken und damit auch reguläre Ausdrücke bzw. endliche Automaten haben bezüglich ihres Sprachumfangs Grenzen. Diese Grenzen resultieren aus den inschränkungen,

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

Logik I. Symbole, Terme, Formeln

Logik I. Symbole, Terme, Formeln Logik I Symbole, Terme, Formeln Wie jede geschriebene Sprache basiert die Prädikatenlogik erster Stufe auf einem Alphabet, welches aus den folgenden Symbolen besteht: (a) Variabeln wie zum Beispiel v 0,v

Mehr

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

Grammatik Prüfung möglich, ob eine Zeichenfolge zur Sprache gehört oder nicht Zusammenhang: Formale Sprache Grammatik Formale Sprache kann durch Grammatik beschrieben werden. Zur Sprache L = L(G) gehören nur diejenigen Kombinationen der Zeichen des Eingabealphabets, die durch die

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

Formale Sprachen. Inhalte. Lehrplan. Hinweis

Formale Sprachen. Inhalte. Lehrplan. Hinweis Formale Sprachen Inhalte Aufbau von Sprachen Grammatiken formaler Sprachen Endliche Automaten *Grenzen endlicher Automaten Werkzeuge TdI, 2. Juli 2010 Peter Brichzin 1 TdI, 2. Juli 2010 Peter Brichzin

Mehr

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 1. Automaten und Sprachen 1.1 Endlicher Automat Einen endlichen Automaten stellen wir uns als Black Box vor, die sich aufgrund einer Folge von

Mehr

Programmieren I. Formale Sprachen. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Formale Sprachen. www.kit.edu. Institut für Angewandte Informatik Programmieren I Formale Sprachen KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Formale Sprachen: Allgemeines Sprachen werden

Mehr

Mehrdeutige Grammatiken

Mehrdeutige Grammatiken Mehrdeutige Grammatiken Wir haben gesehen, dass es auch mehr als eine Linksableitung, d.h. mehr als einen Syntaxbaum geben kann, um das selbe Terminalwort zu erzeugen. Eine Grammatik, die für mindestens

Mehr

Algorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration

Algorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration Algorithmen & Programmierung Steuerstrukturen im Detail Selektion und Iteration Selektion Selektion Vollständige einfache Selektion Wir kennen schon eine Möglichkeit, Selektionen in C zu formulieren: if

Mehr

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

Begriffe (Wiederholung)

Begriffe (Wiederholung) Begriffe (Wiederholung) Sprache Menge aller Sätze Alphabet terminales / nicht terminales terminales A. Zeichen aus denen die Sätze der Sprache bestehen nicht terminales A. Hilfszeichen zum Bilden von Regeln

Mehr

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

Kapitel 2: Formale Sprachen Gliederung. 0. Grundbegriffe 1. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie Gliederung 0. Grundbegriffe 1. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie 2.1. 2.2. Reguläre Sprachen 2.3. Kontextfreie Sprachen 2/1, Folie 1 2015 Prof. Steffen

Mehr

Grundlagen der Programmiersprachen

Grundlagen der Programmiersprachen Grundlagen der Programmiersprachen Syntax und ihre Definition Alphabete und Sprachen Syntaxdiagramme und Backus-Naur-Form Semantik und ihre Definition funktionale Semantik vom ML Fixpunktberechnung Motivation

Mehr

Programmierkurs II. C und Assembler

Programmierkurs II. C und Assembler Programmierkurs II C und Assembler Prof. Dr. Wolfgang Effelsberg Universität Mannheim Sommersemester 2003 1-1 Inhalt Teil I: Die Programmiersprache C 2. Datentypen und Deklarationen 3. Operatoren und Ausdrücke

Mehr

Empfehlenswerte Referenzen

Empfehlenswerte Referenzen Wenn Google etwas nicht finden kann, fragen sie Jack Bauer. ("Fakten über Jack Bauer") Inhalt Empfehlenswerte Referenzen...1 0 Wozu reguläre Ausdrücke?...1 1 Die Elemente regulärer Ausdrücke...2 2 Ein

Mehr

Kontextfreie Grammatiken. Kontextfreie Grammatiken 1 / 45

Kontextfreie Grammatiken. Kontextfreie Grammatiken 1 / 45 Kontextfreie Grammatiken Kontextfreie Grammatiken 1 / 45 Was kann man mit kontextfreien Grammatiken anfangen? Kontextfreie Grammatiken, kurz: werden zur Modellierung von KFGs beliebig tief geschachtelten

Mehr

Teil IX. Eine kleine Programmiersprache

Teil IX. Eine kleine Programmiersprache Teil IX Eine kleine Programmiersprache 1 Teil IX.1 Syntaktische Beschreibungsmittel 2 Chomsky Grammatik Eine Chomsky Grammatik wird beschrieben mit einem Quadrupel G = (N, T, P, S). Dabei ist: N die Menge

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

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

Formale Methoden 1. Gerhard Jäger 28. November Uni Bielefeld, WS 2007/2008 1/15 1/15 Formale Methoden 1 Gerhard Jäger Gerhard.Jaeger@uni-bielefeld.de Uni Bielefeld, WS 2007/2008 28. November 2007 2/15 Formale Sprache: Menge von Symbolketten Theorie formaler Sprachen Formale Sprachen

Mehr

Programmierkurs II. Prof. Dr. Wolfgang Effelsberg. Universität Mannheim. Sommersemester Wolfgang Effelsberg Programmiersprachen

Programmierkurs II. Prof. Dr. Wolfgang Effelsberg. Universität Mannheim. Sommersemester Wolfgang Effelsberg Programmiersprachen Prof. Dr. Wolfgang Effelsberg Universität Mannheim Sommersemester 2005 1-1 Inhalt (1) Teil I: Die Programmiersprache C 2. Datentypen und Deklarationen 3. Operatoren und Ausdrücke 4. Ablaufsteuerung (Kontrollstrukturen)

Mehr

Programmierkurs II. Prof. Dr. Wolfgang Effelsberg. Universität Mannheim. Sommersemester Wolfgang Effelsberg Programmiersprachen

Programmierkurs II. Prof. Dr. Wolfgang Effelsberg. Universität Mannheim. Sommersemester Wolfgang Effelsberg Programmiersprachen Prof. Dr. Wolfgang Effelsberg Universität Mannheim Sommersemester 2005 1-1 Inhalt (1) Teil I: Die Programmiersprache C 2. Datentypen und Deklarationen 3. Operatoren und Ausdrücke 4. Ablaufsteuerung (Kontrollstrukturen)

Mehr

Formale Sprachen und endliche Automaten

Formale Sprachen und endliche Automaten Formale Sprachen und endliche Automaten Formale Sprachen Definition: 1 (Alphabet) Ein Alphabet Σ ist eine endliche, nichtleere Menge von Zeichen oder Symbolen. Ein Wort über dem Alphabet Σ ist eine endliche

Mehr

Formale Sprachen. Grammatiken und die Chomsky-Hierarchie. Rudolf FREUND, Marian KOGLER

Formale Sprachen. Grammatiken und die Chomsky-Hierarchie. Rudolf FREUND, Marian KOGLER Formale Sprachen Grammatiken und die Chomsky-Hierarchie Rudolf FREUND, Marian KOGLER Grammatiken Das fundamentale Modell zur Beschreibung von formalen Sprachen durch Erzeugungsmechanismen sind Grammatiken.

Mehr

LR-Parser, Shift-Reduce-Verfahren

LR-Parser, Shift-Reduce-Verfahren LR-Parser, Shift-Reduce-Verfahren Bottom-Up-Syntaxanalyse LR-Parser L: Eingabe von links nach rechts; R: Rechtsherleitung Shift-Reduce-Verfahren Beachte: Kein Backtracking nicht auf jede Grammatik anwendbar

Mehr

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

Funktionale Programmierung ALP I. λ Kalkül WS 2012/2013. Prof. Dr. Margarita Esponda. Prof. Dr. Margarita Esponda ALP I λ Kalkül WS 2012/2013 Berechenbarkeit - inspiriert durch Hilbert's Frage - im Jahr 1900, Paris - Internationaler Mathematikerkongress Gibt es ein System von Axiomen, aus denen alle Gesetze der Mathematik

Mehr

Dank. Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Reguläre Ausdrücke als Suchmuster für grep

Dank. Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Reguläre Ausdrücke als Suchmuster für grep Dank Vorlesung Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I Bernhard Beckert Diese Vorlesungsmaterialien basieren ganz wesentlich auf den Folien zu den Vorlesungen

Mehr

3. Zeichenreihen und formale Sprachen

3. Zeichenreihen und formale Sprachen 3. Zeichenreihen und formale Sprachen 3.1. Definition formaler Sprachen Def. 3.1: Eine endliche Menge von Symbolen heißt Zeichenvorrat ; die Elemente des ZV heißen Zeichen: α ; ein ZV mit einer darauf

Mehr

Informatik III. Christian Schindelhauer Wintersemester 2006/07 6. Vorlesung

Informatik III. Christian Schindelhauer Wintersemester 2006/07 6. Vorlesung Informatik III Christian Schindelhauer Wintersemester 2006/07 6. Vorlesung 10.11.2006 schindel@informatik.uni-freiburg.de 1 Kapitel IV Kontextfreie Sprachen Kontextfreie Grammatik Informatik III 6. Vorlesung

Mehr

Von der Grammatik zum AST

Von der Grammatik zum AST Von der Grammatik zum AST Welche Eigenschaften soll ein Parser haben? Wann ist eine Grammatik eindeutig? Wie sollte eine Grammatik aussehen? Theoretischer Hin tergrund: FIRST, FOLLOW Einschränkungen von

Mehr

Kontextfreie Grammatiken

Kontextfreie Grammatiken Kontextfreie Grammatiken Bisher haben wir verschiedene Automatenmodelle kennengelernt. Diesen Automaten können Wörter vorgelegt werden, die von den Automaten gelesen und dann akzeptiert oder abgelehnt

Mehr

Automaten und formale Sprachen Klausurvorbereitung

Automaten und formale Sprachen Klausurvorbereitung Automaten und formale Sprachen Klausurvorbereitung Rami Swailem Mathematik Naturwissenschaften und Informatik FH-Gießen-Friedberg Inhaltsverzeichnis 1 Definitionen 2 2 Altklausur Jäger 2006 8 1 1 Definitionen

Mehr

9 Theoretische Informatik und Compilerbau

9 Theoretische Informatik und Compilerbau 9 Theoretische Informatik und Compilerbau Theoretische Informatik und Mathematik schaffen die Basis für viele der technischen Entwicklungen, die wir in diesem Buch besprechen. Die boolesche Algebra (S.

Mehr

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

WS06/07 Referentin: Katharina Blinova. Formale Sprachen. Hauptseminar Intelligente Systeme Dozent: Prof. Dr. J. Rolshoven WS06/07 Referentin: Katharina Blinova Formale Sprachen Hauptseminar Intelligente Systeme Dozent: Prof. Dr. J. Rolshoven 1. Allgemeines 2. Formale Sprachen 3. Formale Grammatiken 4. Chomsky-Hierarchie 5.

Mehr

Programmierung WS12/13 Lösung - Übung 1 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder

Programmierung WS12/13 Lösung - Übung 1 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder Prof. aa Dr. J. Giesl Programmierung WS12/13 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder Tutoraufgabe 1 (Syntax und Semantik): 1. Was ist Syntax? Was ist Semantik? Erläutern Sie den Unterschied. 2.

Mehr

Inhalt Kapitel 5: Syntax

Inhalt Kapitel 5: Syntax Inhalt Kapitel 5: Syntax 1 Syntax und Semantik 2 Formale Sprachen 3 Backus-Naur Form 4 Chomsky Grammatik 5 Reguläre Ausdrücke 6 Endliche Automaten 180 Syntax und Semantik Syntax Syntax: Festlegung des

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 15.01.2015 INSTITUT FÜR THEORETISCHE 0 KIT 15.01.2015 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik

Mehr

1 Σ endliches Terminalalphabet, 2 V endliche Menge von Variablen (mit V Σ = ), 3 P (V (Σ ΣV )) {(S, ε)} endliche Menge von Regeln,

1 Σ endliches Terminalalphabet, 2 V endliche Menge von Variablen (mit V Σ = ), 3 P (V (Σ ΣV )) {(S, ε)} endliche Menge von Regeln, Theorie der Informatik 9. März 24 7. Reguläre Sprachen I Theorie der Informatik 7. Reguläre Sprachen I Malte Helmert Gabriele Röger Universität Basel 9. März 24 7. Reguläre Grammatiken 7.2 DFAs 7.3 NFAs

Mehr

Algorithmen und Datenstrukturen I - Exkurs Formale Sprachen -

Algorithmen und Datenstrukturen I - Exkurs Formale Sprachen - Algorithmen und Datenstrukturen I - Exkurs Formale Sprachen - Thies Pfeiffer Technische Fakultät tpfeiffe@techfak.uni-bielefeld.de Vorlesung, Universität Bielefeld, Winter 2012/2013 1 / 1 Exkurs: Formale

Mehr

Das Postsche Korrespondenzproblem

Das Postsche Korrespondenzproblem Das Postsche Korrespondenzproblem Eine Instanz des PKP ist eine Liste von Paaren aus Σ Σ : (v 1, w 1 ),..., (v n, w n ) Eine Lösung ist eine Folge i 1,..., i k von Indizes 1 i j n mit v i1... v ik = w

Mehr

Einführung in die Logik

Einführung in die Logik Einführung in die Logik Klaus Madlener und Roland Meyer 24. April 2013 Inhaltsverzeichnis 1 Aussagenlogik 1 1.1 Syntax................................. 1 1.2 Semantik............................... 3 1.3

Mehr

Lexikalische Programmanalyse der Scanner

Lexikalische Programmanalyse der Scanner Der Scanner führt die lexikalische Analyse des Programms durch Er sammelt (scanned) Zeichen für Zeichen und baut logisch zusammengehörige Zeichenketten (Tokens) aus diesen Zeichen Zur formalen Beschreibung

Mehr

Einführung in die Programmierung EBNF. Thomas R. Gross. Department Informatik ETH Zürich

Einführung in die Programmierung EBNF. Thomas R. Gross. Department Informatik ETH Zürich 252-0027 Einführung in die Programmierung EBNF Thomas R. Gross Department Informatik ETH Zürich Übersicht Es gibt vier elementare Ausdrucksmöglichkeiten in EBNF Sie lernen EBNF Beschreibungen zu lesen

Mehr

Abschnitt 2: Daten und Algorithmen

Abschnitt 2: Daten und Algorithmen Abschnitt 2: Daten und Algorithmen 2. Daten und Algorithmen 2.1 Zeichenreihen 2.2 Datendarstellung durch Zeichenreihen 2.3 Syntaxdefinitionen 2.4 Algorithmen 2 Daten und Algorithmen Einf. Progr. (WS 08/09)

Mehr

Formale Sprachen. Script, Kapitel 4. Grammatiken

Formale Sprachen. Script, Kapitel 4. Grammatiken Formale Sprachen Grammatiken Script, Kapitel 4 erzeugen Sprachen eingeführt von Chomsky zur Beschreibung natürlicher Sprache bedeutend für die Syntaxdefinition und -analyse von Programmiersprachen Automaten

Mehr

Java für Anfänger Teil 2: Java-Syntax. Programmierkurs Manfred Jackel

Java für Anfänger Teil 2: Java-Syntax. Programmierkurs Manfred Jackel Java für Anfänger Teil 2: Java-Syntax Programmierkurs 06.-10.10.2008 Manfred Jackel 1 Syntax für die Sprache Java public class Welcome { } Schlüsselworte Reservierte Worte Keywords Wortsymbol Syntax: griech.

Mehr

Algorithmen & Programmierung. Ausdrücke & Operatoren (1)

Algorithmen & Programmierung. Ausdrücke & Operatoren (1) Algorithmen & Programmierung Ausdrücke & Operatoren (1) Ausdrücke Was ist ein Ausdruck? Literal Variable Funktionsaufruf Ausdruck, der durch Anwendung eines einstelligen (unären) Operators auf einen Ausdruck

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik Grundlagen der Theoretischen Informatik Sommersemester 2016 20.04.2016 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Bis jetzt 1. Terminologie 2. Endliche Automaten und reguläre Sprachen

Mehr

Informatik 12 Kapitel 1 - Formale Sprachen

Informatik 12 Kapitel 1 - Formale Sprachen Fachschaft Informatik Informatik 12 Kapitel 1 - Formale Sprachen Michael Steinhuber König-Karlmann-Gymnasium Altötting 6. November 2016 Folie 1/55 Inhaltsverzeichnis 1 Aufbau von Sprachen 2 Grammatiken

Mehr

FORMALE SYSTEME. Sprachen beschreiben. Wiederholung. Wie kann man Sprachen beschreiben? 2. Vorlesung: Grammatiken und die Chomsky-Hierarchie

FORMALE SYSTEME. Sprachen beschreiben. Wiederholung. Wie kann man Sprachen beschreiben? 2. Vorlesung: Grammatiken und die Chomsky-Hierarchie Wiederholung FORMALE SYSTEME 2. Vorlesung: Grammatiken und die Chomsky-Hierarchie Markus Krötzsch Formale Sprachen sind in Praxis und Theorie sehr wichtig Ein Alphabet ist eine nichtleere, endliche Menge

Mehr

Parsing regulärer Ausdrücke. Karin Haenelt

Parsing regulärer Ausdrücke. Karin Haenelt Karin Haenelt 25.4.2009 1 Inhalt kontextfreie Grammatik für reguläre Ausdrücke Grundlagen Parsebaum: konkrete Syntax Syntaxbaum: abstrakte Syntax Algorithmus: rkennung Konstruktion des Syntaxbaumes 2 Grammatik

Mehr

Formale Sprachen. Grammatiken. Grammatiken und die Chomsky-Hierarchie. Rudolf FREUND, Marion OSWALD. Grammatiken: Ableitung

Formale Sprachen. Grammatiken. Grammatiken und die Chomsky-Hierarchie. Rudolf FREUND, Marion OSWALD. Grammatiken: Ableitung Formale Sprachen rammatiken und die Chomsky-Hierarchie Rudolf FREUND, Marion OSWALD rammatiken Das fundamentale Modell zur Beschreibung von formalen Sprachen durch Erzeugungsmechanismen sind rammatiken.

Mehr

Grundlagen der theoretischen Informatik

Grundlagen der theoretischen Informatik Grundlagen der theoretischen Informatik Kurt Sieber Fakultät IV, Department ETI Universität Siegen SS 2013 Vorlesung vom 09.04.2013 Inhalt der Vorlesung Teil I: Automaten und formale Sprachen (Kurt Sieber)

Mehr

1 Σ endliches Terminalalphabet, 2 V endliche Menge von Variablen (mit V Σ = ), 3 P (V (Σ ΣV )) {(S, ε)} endliche Menge von Regeln,

1 Σ endliches Terminalalphabet, 2 V endliche Menge von Variablen (mit V Σ = ), 3 P (V (Σ ΣV )) {(S, ε)} endliche Menge von Regeln, Theorie der Informatik 8. März 25 8. Reguläre Sprachen I Theorie der Informatik 8. Reguläre Sprachen I 8. Reguläre Grammatiken Malte Helmert Gabriele Röger 8.2 DFAs Universität Basel 8. März 25 8.3 NFAs

Mehr

Aussagenlogik. Motivation Syntax Semantik Erfüllbarkeit SAT-Solver Kompaktheit Beweiskalküle

Aussagenlogik. Motivation Syntax Semantik Erfüllbarkeit SAT-Solver Kompaktheit Beweiskalküle Aussagenlogik Motivation Syntax Semantik Erfüllbarkeit SAT-Solver Kompaktheit Beweiskalküle Theoretische Informatik: Logik, M. Lange, FB16, Uni Kassel: 3.1 Aussagenlogik Syntax 22 Einführendes Beispiel

Mehr

1 EINFÜHRUNG PROGRAMMIERSPRACHEN

1 EINFÜHRUNG PROGRAMMIERSPRACHEN 1 EINFÜHRUNG PROGRAMMIERSPRACHEN Leitidee: Von der Maschinensprache zur höheren Programmiersprache und zurück Von-Neumann-Maschine als abstraktes Computermodell Maschinensprache des hypothetischen Rechners

Mehr

Einführung in die Informatik Grammars & Parsers

Einführung in die Informatik Grammars & Parsers Einführung in die Informatik Grammars & Parsers Grammatiken, Parsen von Texten Wolfram Burgard Cyrill Stachniss 12.1 Einleitung Wir haben in den vorangehenden Kapiteln meistens vollständige Java- Programme

Mehr

2.1 Grundlagen: Kontextfreie Grammatiken

2.1 Grundlagen: Kontextfreie Grammatiken 2.1 Grundlagen: Kontextfreie Grammatiken Programme einer Programmiersprache können unbeschränkt viele Tokens enthalten, aber nur endlich viele Token-Klassen :-) Als endliches Terminal-Alphabet T wählen

Mehr

Syntax von Programmiersprachen

Syntax von Programmiersprachen Syntax von Programmiersprachen SEP 209 Programmiersprachen Sprache = Menge von Wörtern, typischerweise unendlich Programmiersprache: Wörter repräsentieren Programme Programm kann auf einem Computer evtl.

Mehr

Grammatiken und ANTLR

Grammatiken und ANTLR Grammatiken und ANTLR Zusatzfolien zu Algo Blatt 6 Author: Henry Schaefer http://www.majeeks.de/folien_blatt6.pdf Grammatik Definition: syntaktische Beschreibung einer Sprache (H.S.) Definiton Grammatik

Mehr

Einführung Grundbegriffe

Einführung Grundbegriffe Einführung Grundbegriffe 1.1 Der Modellbegriff Broy: Informatik 1, Springer 1998 (2) Die Modellbildung der Informatik zielt auf die Darstellung der unter dem Gesichtspunkt einer gegebenen Aufgabenstellung

Mehr