Grundlagen der Programmierung 2 (Comp-D)
|
|
|
- Stefanie Schulz
- vor 9 Jahren
- Abrufe
Transkript
1 Grundlagen der Programmierung 2 (Comp-D) Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 31. Mai 2007
2 Operationen auf Grammatiken Ziel: Normalisierungen, Vereinfachungen Elimination bestimmter Grammatik-Konstrukte Erzeugen eines Parsers Optimierung / Verbesserung des Parsers Transformation G 1 G 2 mit L(G 1 ) = L(G 2 ) Grundlagen der Programmierung 2 (Comp-D) - 1 -
3 Operationen auf Grammatiken Sei G 1 G 2 mit L(G 1 ) = L(G 2 ) Erhaltung der Semantik? I.a. Es soll gelten: Parsebaum 1 (w) Parsebaum 2 (w) opsemantik 1 (w) = opsemantik 2 (w) Das erfordert: Semantik-Abbildung von G 1 nach G 2 Grundlagen der Programmierung 2 (Comp-D) - 2 -
4 Elimination der Epsilon-Produktionen Epsilon-Elimination: G 1 G 2 Ziel: In G 2 sollen keine Regeln der Form A ::= ε vorkommen Eigenschaften: L(G 1 ) \ {ε} = L(G 2 ) Bottom-Up-Parsing kann effizienter werden Grammatik (Anzahl Regeln) kann exponentiell wachsen. Grundlagen der Programmierung 2 (Comp-D) - 3 -
5 Elimination von Links-Rekursionen Bei rekursiv absteigenden Parsern: Linksrekursion in der Grammatik bewirkt eine Endlosschleife Bespiel für direkte Links-Rekursion: A ::= Aw Parserfunktion: parsea ein = parsea ein... parsew rest Grundlagen der Programmierung 2 (Comp-D) - 4 -
6 Links-Rekursionen Beispielgrammatik Expr ::= Expr + Term Term Term ::= Der rekursiv absteigende Parser dazu terminiert nicht Abhilfe: Umbau der Grammatik bei gleicher erzeugter Sprache Grundlagen der Programmierung 2 (Comp-D) - 5 -
7 Links-Rekursionen Definition Eine Grammatik G ist linksrekursiv, wenn es eine Folge von Nichtterminalen A 1,..., A n gibt und eine Folge von Regeln der Grammatik der Form A 1 ::= A 2 w 1, A 2 ::= A 3 w 2,..., A n ::= A 1 w n. Bei linksrekursiven G. terminiert der rekursive absteigende Parser für manche Eingaben nicht (Links-)Rekursion ist durchaus sinnvoll, aber inkompatibel mit der Methode des rekursiven Abstiegs. Grundlagen der Programmierung 2 (Comp-D) - 6 -
8 Elimination der Links-Rekursionen Beispiel A ::= Aα β sind die Regeln zu Nichtterminal A, β startet nicht mit A, und αβ ε. Grammatiktransformation: Erzeuge neues Nichtterminal B Ersetze obige Regeln durch: A ::= β βb B ::= α αb In der neuen Grammatik sind A, B nicht linksrekursiv. Grundlagen der Programmierung 2 (Comp-D) - 7 -
9 Elimination von Linksrekursion Begründung für die Korrektheit die formale Sprache zu A bleibt erhalten: Vorher: A ::= Aα β die formale Sprache zu A entspricht β(α). Nachher: A ::= β βb B ::= α αb formale Sprache zu B: entspricht (α) +. formale Sprache zu A: entspricht β(α). Grundlagen der Programmierung 2 (Comp-D) - 8 -
10 Elimination von Linksrekursion: Syntaxbäume Beispiel Syntaxbäume vorher und nachher: β R R α α β RA α RB RB α ε Grundlagen der Programmierung 2 (Comp-D) - 9 -
11 L.R.- Elimination Semantik-Transformation? Möglichkeit A: Parsebaum 2 Parsebaum 1 Rücktransformation der Parsebäume Möglichkeit B: Beobachtung: Regel entspricht assoziativem Operator mit neutralem Element: : erlaube Umklammerung und betrachte ε als neutrales Element (β α) α β (α (α ε)) Grundlagen der Programmierung 2 (Comp-D)
12 Beispiel: L.R.-Elimination Expr ::= Expr Term Term Term ::= Nach Elimination der Linksrekursion: Expr ::= Term ExprB Term ExprB ::= Term Term ExprB Term ::= Vorher: wird als ((1 2) 3) geklammert Nachher: als (1 (2 3)). Falsch! Abhilfe: interpretiere als 1 + ( 2) + ( 3) Grundlagen der Programmierung 2 (Comp-D)
13 Beispiel: L.R.-Elimination indirekte Links-Rekursion: A ::= Sa b S ::= Bc Ad e B ::= f rekursiver absteigender Parser: Schleife bei bd Erkennung bei fc Grundlagen der Programmierung 2 (Comp-D)
14 Linksrekusion: Zuammenfassung Es gilt: Ein Grammatik ist links-rekursiv, wenn es für ein Nichtterminal A und einen String α eine Herleitung A + Aα gibt. Jede Linksrekursivität kann durch Transformation der Grammatik beseitigt werden unter Beibehaltung der erzeugten formalen Sprache. Aber: andere Herleitungsbäume, Änderungen der Semantik-Funktion Grundlagen der Programmierung 2 (Comp-D)
15 Beseitigung von Mehrdeutigkeiten Klassisches Beispiel: dangling else Stmt ::= if Expr then Stmt else Stmt if Expr then Stmt other Diese Grammatik ist mehrdeutig: if E 1 then if E 2 then S 1 else S 2 hat zwei Parsebäume ifthenelse ifthen ifthen E 1 S 2 E 1 ifthenelse E 2 S 1 E 2 S 1 S 2 Grundlagen der Programmierung 2 (Comp-D)
16 Beseitigung von Mehrdeutigkeiten Diese Mehrdeutigkeiten kann man als Fehler beim Hinschreiben der Grammatik ansehen. Abhilfen: Ändere die Grammatik: gleiche erzeugte Sprache, aber keine Mehrdeutigkeit mehr Aber: nicht automatisch: Eingriff notwendig Bevorzuge bestimmte Parsebäume Keine Änderung der Grammatik Aber: Grammatik und Parser passen nicht mehr zusammen Grundlagen der Programmierung 2 (Comp-D)
17 dangling else Semantik: (Prinzip): else gehört jeweils zum letzten freien then Neue Grammatik: Halbes-IF, Ganzes-IF S ::= HIF GIF HIF ::= if Expr then S GIF ::= if Expr then GIF else S other Grundlagen der Programmierung 2 (Comp-D)
18 Links-Faktorisierung Problematik bei rekursiv absteigenden Parsern: Gleiche Anfänge von rechten Seiten von Regeln Optimierung: Zusammenfassen der Anfänge der Regelalternativen A ::= αβ 1 αβ 2 wird umgewandelt in: A ::= αb B ::= β 1 β 2 Kann exponentielle Verbesserung der Effizienz bedeuten. Grundlagen der Programmierung 2 (Comp-D)
19 Linksfaktorisierung: Beispiel H ::= if Expr then H if Expr then G else H kann man umwandeln in Ifethen ::= if Expr then H2 ::= H G else H H ::= Ifethen H2 Grundlagen der Programmierung 2 (Comp-D)
20 Linksfaktorisierung: Bemerkungen optimiert rekursiv-absteigende Parser, da unnötiges Zurücksetzen verhindert wird. Semantik: kann leicht angepasst werden, Parsebäumen sind struktur-ähnlich Sinnvoll: Zusammenfassen gleicher Anfänge rechter Seiten von Regeln. Ausklammern auch über mehrere Regeln Grundlagen der Programmierung 2 (Comp-D)
21 Linksfaktorisierung: Beispiel S ::= HIF GIF HIF ::= if Expr then S GIF ::= if Expr then GIF else S wird zu: S ::= IET IET ::= if Expr then IET2 IET2 ::= HIF2 GIF2 HIF2 ::= S GIF2 ::= GIF else S GIF ::= if Expr then GIF else S Die formalen Sprachen dazu sind gleich Anzahl der Nichtterminale hat sich etwa verdoppelt. Grundlagen der Programmierung 2 (Comp-D)
Äquivalente Grammatiken / attributierte Grammatik
Äquivalente Grammatiken / attributierte Grammatik Linksfaktorisierung Elimination von Linksrekursion Umwandlung von EBNF in BNF Attributierte Grammatik Semantikfunktionen und Übersetzungsschema Synthetisierte,
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,
Syntaktische Analyse (Parsen)
Syntaktische Analyse (Parsen) Gegeben: eine kontextfreie Grammatik G und ein String w. Fragen: Vorgehen: gehört w zu L(G)? Welche Bedeutung hat w? Konstruiere Herleitungsbaum zu w P raktische Informatik
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
2.4 Kontextsensitive und Typ 0-Sprachen
Definition 2.43 Eine Typ 1 Grammatik ist in Kuroda Normalform, falls alle Regeln eine der folgenden 4 Formen haben: Dabei: A, B, C, D V und a Σ. Satz 2.44 A a, A B, A BC, AB CD. Für jede Typ 1 Grammatik
Compiler. Kapitel. Syntaktische Analyse. Kapitel 4. Folie: 1. Syntaktische Analyse. Autor: Aho et al.
Folie: 1 Kapitel 4 Übersicht Übersicht Syntax: Definition 4 syn-tax: the way in which words are put together to form phrases, clauses, or sentences. Webster's Dictionary Die Syntax (griechisch σύνταξις
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
Syntaxanalyse Ausgangspunkt und Ziel
Syntaxanalyse Ausgangspunkt und Ziel Ausgangspunkt: Kontextfreie Grammatik Im Normalfall BNF, manchmal EBNF BNF = Backus-Naur-Form = Produktionsregeln EBNF = erweiterte BNF (+ reguläre Ausdrücke) Prüfung
Compiler, Übersetzer. Allgemeine Erklärung / Definition
Compiler, Übersetzer Allgemeine Erklärung / Definition Ein Übersetzer ist ein Programm, das ein S 1 -Wort den Quelltext in ein S 2 -Wort umwandelt den Zieltext wobei die Semantik erhalten bleibt. Frage:
Automaten und Formale Sprachen
Automaten und Formale Sprachen Prof. Dr. Dietrich Kuske FG Theoretische Informatik, TU Ilmenau Wintersemester 2011/12 WS 11/12 1 Organisatorisches zur Vorlesung Informationen, aktuelle Version der Folien
Satz 90 Sei A = (Q, Σ, δ, q 0, F ) ein DFA. Der Zeitaufwand des obigen Minimalisierungsalgorithmus ist O( Q 2 Σ ).
Satz 90 Sei A = (Q, Σ, δ, q 0, F ) ein DFA. Der Zeitaufwand des obigen Minimalisierungsalgorithmus ist O( Q 2 Σ ). Beweis: Für jedes a Σ muss jede Position in der Tabelle nur konstant oft besucht werden.
Ein Satz der deutschen Sprache besitzt ein Subjekt, ein Prädikat und ein Objekt (SPO).
1 Grammatiken Autor: Tilman Blumenbach Letzte Änderung: 28. Juni 2012 18:15 Ziel von Grammatiken Wollen die Struktur von Sprachen modellieren und charakterisieren. Beispiel Ein Satz der deutschen Sprache
Suche nach einem solchen Kreis. Endlichkeitstest. Vereinigung und Durchschnitt. Abschlusseigenschaften
Endlichkeitstest Eingabe: DFA/NFA M. Frage: Ist die von M akzeptierte Sprache endlich? Nahe liegende Beobachtung: In einem DFA/NFA, der eine unendliche Sprache akzeptiert, muss es einen Kreis geben, der
Definition von domänenspezifischen Sprachen mit Xtext: Einführung. 19. November 2014
Definition von domänenspezifischen Sprachen mit Xtext: Einführung 19. November 2014 Überblick Was ist zu tun, wenn wir selbst einen Ansatz für modellgetriebenen Entwicklung definieren wollen? Anforderungserfassung
4.2 Die Chomsky Normalform
4.2 Die Chomsky Normalform Für algorithmische Problemstellungen (z.b. das Wortproblem) aber auch für den Nachweis von Eigenschaften kontextfreier Sprachen ist es angenehm, von CFG in Normalformen auszugehen.
Teil V. Weiterführende Themen, Teil 1: Kontextsensitive Sprachen und die Chomsky-Hierarchie
Teil V Weiterführende Themen, Teil 1: Kontextsensitive Sprachen und die Chomsky-Hierarchie Zwei Sorten von Grammatiken Kontextsensitive Grammatik (CSG) (Σ, V, P, S), Regeln der Form αaβ αγβ α, β (Σ V ),
Patrick Simianer Visualisierung regulärer Ausdrücke
Patrick Simianer Visualisierung regulärer Ausdrücke Patrick Simianer 2010-06-28 Endliche Automaten HS bei Dr. Karin Haenelt Universitiät Heidelberg im Sommersemester 2010 1 Einleitung Überlegungen Protoypisches
Algorithmen mit konstantem Platzbedarf: Die Klasse REG
Algorithmen mit konstantem Platzbedarf: Die Klasse REG Sommerakademie Rot an der Rot AG 1 Wieviel Platz brauchen Algorithmen wirklich? Daniel Alm Institut für Numerische Simulation Universität Bonn August
Zwischencodeerzeugung Compiler II
Zwishenodeerzeugung Compiler II Prof. Dr. Ursula Goltz 14.09.2012 Einleitung Front-End... Parser Sem. Analys Zwishenodegenerator Bak-End Codegenerator... Zwishendarstellung (Zwishenode) evtl. mashinennunabh.
ARBEITSBLATT ZU FORMALEN SPRACHEN
ARBEITSBLATT ZU FORMALEN SPRACHEN Aufgabe 1: Gegeben ist die folgende Formale Sprache L(G) mit G = (T, N, P, S). Die Produktionen lauten ZUWEISUNG ::= name zuweisungsoperator AUSDRUCK semikolon AUSDRUCK
ist ein regulärer Ausdruck.
Dr. Sebastian Bab WiSe 12/13 Theoretische Grlagen der Informatik für TI Termin: VL 11 vom 22.11.2012 Reguläre Ausdrücke Reguläre Ausdrücke sind eine lesbarere Notation für Sprachen Denition 1 (Regulärer
Kontextsensitive Sprachen
Kontextsensitive Sprachen Standardbeispiel: {anbncn} S a b c S a A b B c c B A B b c B b b A A b a A a a Im Bereich der natürlichen Sprachen gibt es zahlreiche kontextsensitive Phänomene in der Semantik
1 Syntax von Programmiersprachen
1 Syntax von Programmiersprachen Syntax ( Lehre vom Satzbau ): formale Beschreibung des Aufbaus der Worte und Sätze, die zu einer Sprache gehören; im Falle einer Programmier-Sprache Festlegung, wie Programme
Einführung in die Informatik 1
Einführung in die Informatik 1 Algorithmen und algorithmische Sprachkonzepte Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 [email protected] Sprechstunde: Freitag,
Seminar Informatik: Syntaxanalyse von DKFG mittels Yacc
Fachhochschule Köln Cologne University of Applied Sciences Seminar Informatik: Syntaxanalyse von DKFG mittels Yacc Jan Bollenbacher 11087107 Studiengang: Master Technische Informatik 15.06.2012 Prof. Dr.
Informatik I WS 07/08 Tutorium 24
Info I Tutorium 24 Informatik I WS 07/08 Tutorium 24 20.12.07 Bastian Molkenthin E-Mail: [email protected] Web: http://infotut.sunshine2k.de Rückblick Semi-Thue-Systeme Ein Semi-Thue-System besteht
4. 4. Algorithmen und Datenstrukturen in deskriptiven Programmiersprachen
Kapitel Kapitel 4 Deskriptive Programmierung SS 2008 4. 4. Algorithmen und Datenstrukturen in in deskriptiven Programmiersprachen Deskriptive Programmierung 1 Sprachverarbeitung in in Prolog Prolog Prolog
Erwin Grüner 09.02.2006
FB Psychologie Uni Marburg 09.02.2006 Themenübersicht Folgende Befehle stehen in R zur Verfügung: {}: Anweisungsblock if: Bedingte Anweisung switch: Fallunterscheidung repeat-schleife while-schleife for-schleife
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
Beispiel einer Übersetzung
Beispiel einer Übersetzung Ausdruck in C aktuelle_zeit = Startzeit + vergangene_minuten*60 + vergangene_sekunden; Ausdruck im Instruktionssatz des R10000 LW r1,minuten LW r1,sekunden ADDI r2,r0,60 ADD
Programmierkurs Python II
Programmierkurs Python II Michaela Regneri & tefan Thater FR 4.7 Allgemeine Linguistik (Computerlinguistik) Universität des aarlandes ommersemester 2010 (Charniak, 1997) the dog biscuits N V N V the dog
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
Programmiertechnik II
Analyse von Algorithmen Algorithmenentwurf Algorithmen sind oft Teil einer größeren Anwendung operieren auf Daten der Anwendung, sollen aber unabhängig von konkreten Typen sein Darstellung der Algorithmen
Komplexitätsklassen. (Lauf-)Zeit-Klassen. (Lauf-)Zeit-Klassen. Charakteristische Problemgrößen beim Parsing
Komplexitätsklassen Charakteristische Problemgrößen beim Parsing O(1) konstant O(log n) logarithmisch O(n) linear O(n k ) polynomial (k [2,4]) O(n k ) polynomial (k > 4) O(k n ) exponentiell n ist die
Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen 19
Inhalt 1 inführung 2 Automatentheorie und ormale prachen Grammatiken Reguläre prachen und endliche Automaten Kontextfreie prachen und Kellerautomaten Kontextsensitive und yp 0-prachen 3 Berechenbarkeitstheorie
Theoretische Informatik für Wirtschaftsinformatik und Lehramt
Theoretische Informatik für Wirtschaftsinformatik und Lehramt Reguläre Sprachen Priv.-Doz. Dr. Stefan Milius [email protected] Theoretische Informatik Friedrich-Alexander Universität Erlangen-Nürnberg
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
Theoretische Informatik. Reguläre Sprachen und Automaten
Theoretische Informatik Reguläre Sprachen und Automaten Reguläre Sprachen Reguläre Ausdrücke und Sprachen Gleichungen Syntaxdiagramme Erweiterungen Anwendungen Reguläre Ausdrücke über Σ Syntax: Konstante
Grammatiken in Prolog
12. Grammatiken in Prolog 12-1 Grammatiken in Prolog Allgemeines: Gedacht zur Verarbeitung natürlicher Sprache. Dort braucht man kompliziertere Grammatiken als etwa im Compilerbau, andererseits sind die
14. Rot-Schwarz-Bäume
Bislang: Wörterbuchoperationen bei binären Suchbäume effizient durchführbar, falls Höhe des Baums klein. Rot-Schwarz-Bäume spezielle Suchbäume. Rot-Schwarz-Baum mit n Knoten hat Höhe höchstens 2 log(n+1).
Informatik IV Compilerbau
Informatik IV Compilerbau Prof. Dr. R. Laue Wintersemester 1991/92 Erstellt von Helmut Hahn und Walter Dörwald Grafiken von Helmut Hahn und Walter Dörwald Inhalt: 1. Übersicht..................................
Funktionale Programmierung. Funktionale Programmierung: Vorlesungsüberblick. Eigenschaften rein funktionaler Programmierung
Funktionale Programmierung 1 Funktionale Programmierung: Vorlesungsüberblick 1. Funktionale Programmierung Prinzipien funktionaler Programmierung Funktionale Programmierung in prozeduralen Sprachen Rekursive
Einleitung Projektion Selektion Join Mengenop. Vollst.keit. Einleitung Projektion. Selektion Join. Vollst.keit. Einleitung Projektion Selektion Join
Parsen der Anfrage (SQL) Transformation in eine Standardform (Relationenalgebra) Logische Optimierung Transformation in alternative Zugriffspläne, Physische Optimierung Ausführung des gewählten Zugriffsplans
Theoretische Informatik I
Theoretische nformatik inheit 3 Kontextfreie Sprachen 1. Kontextfreie Grammatiken 2. Pushdown Automaten 3. igenschaften kontextfreier Sprachen Theoretische nformatik inheit 3.1 Kontextfreie Grammatiken
Grundlagen der Programmierung (Vorlesung 15)
Grundlagen der Programmierung (Vorlesung 15) Ralf Möller, FH-Wedel Vorige Vorlesung Blöcke, Funktionen Auswertestrategien Inhalt dieser Vorlesung Prozeduren Rekursion Lernziele Grundlagen der systematischen
1 Rechnen mit 2 2 Matrizen
1 Rechnen mit 2 2 Matrizen 11 Produkt Wir berechnen das allgemeine Produkt von A = Für das Produkt gilt AB = a11 a 12 a 21 a 22 a11 b 11 + a 12 b 21 a 11 b 12 + a 12 b 22 a 21 b 11 + a 22 b 21 a 21 b 12
9 Compilerbau-Werkzeuge
9.1 Überblick In der Praxis des Compilerbaus werden heute vielfach Werkzeuge eingesetzt, die Routineaufgaben erleichtern sollen. In erster Linie ist dabei an die Punkte Generierung eines Scanners Generierung
Rekursiv aufzählbare Sprachen
Kapitel 4 Rekursiv aufzählbare Sprachen 4.1 Grammatiken und die Chomsky-Hierarchie Durch Zulassung komplexer Ableitungsregeln können mit Grammatiken größere Klassen als die kontextfreien Sprachen beschrieben
Entwurf von Algorithmen - Kontrollstrukturen
Entwurf von Algorithmen - Kontrollstrukturen Eine wichtige Phase in der Entwicklung von Computerprogrammen ist der Entwurf von Algorithmen. Dieser Arbeitsschritt vor dem Schreiben des Programmes in einer
Formale Methoden 1. Gerhard Jäger 16. Januar Uni Bielefeld, WS 2007/2008 1/19
1/19 Formale Methoden 1 Gerhard Jäger [email protected] Uni Bielefeld, WS 2007/2008 16. Januar 2008 2/19 Reguläre Ausdrücke vierte Art (neben Typ-3-Grammatiken, deterministischen und nicht-deterministischen
Algorithmen und Datenstrukturen Laufzeitabschätzung
Algorithmen und Datenstrukturen Laufzeitabschätzung Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Lernziele der Vorlesung Algorithmen Sortieren, Suchen,
Notation um Grammatik G hervorzuheben: Eine kontextfreie Grammatik erzeugt eine kontextfreie Sprache. Informatik I -1- WS 2005/2006
Die Sprache einer Grammatik Definition: Sei G = (V, T, P, S) eine kontextfreie Grammatik. Dann umfasst die Sprache L(G) alle Zeichenketten aus Terminalsymbolen, die sich vom Startsymbol ableiten lassen.
Pass by Value Pass by Reference Defaults, Overloading, variable Parameteranzahl
Funktionen Zusammenfassung von Befehlssequenzen als aufrufbare/wiederverwendbare Funktionen in einem Programmblock mit festgelegter Schnittstelle (Signatur) Derartige prozedurale Programmierung erlaubt
Einfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie [email protected]
Inhalt SWP Funktionale Programme (2. Teil) Einfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie [email protected] Interpreter für funktionale Sprache
Was ist ein Compiler?
Was ist ein Compiler? Was ist ein Compiler und worum geht es? Wie ist ein Compiler aufgebaut? Warum beschäftigen wir uns mit Compilerbau? Wie ist die Veranstaltung organisiert? Was interessiert Sie besonders?
Kapitel 5: Abstrakte Algorithmen und Sprachkonzepte. Elementare Schritte
Elementare Schritte Ein elementarer Berechnungsschritt eines Algorithmus ändert im Allgemeinen den Wert von Variablen Zuweisungsoperation von fundamentaler Bedeutung Zuweisungsoperator In Pascal := In
Grundlagen und Basisalgorithmus
Grundlagen und Basisalgorithmus Proseminar -Genetische Programmierung- Dezember 2001 David König Quelle: Kinnebrock W.: Optimierung mit genetischen und selektiven Algorithmen. München, Wien: Oldenbourg
Formale Sprachen. Der Unterschied zwischen Grammatiken und Sprachen. Rudolf Freund, Marian Kogler
Formale Sprachen Der Unterschied zwischen Grammatiken und Sprachen Rudolf Freund, Marian Kogler Es gibt reguläre Sprachen, die nicht von einer nichtregulären kontextfreien Grammatik erzeugt werden können.
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
Wortproblem für kontextfreie Grammatiken
Wortproblem für kontextfreie Grammatiken G kontextfreie Grammatik. w Σ w L(G)? Wortproblem ist primitiv rekursiv entscheidbar. (schlechte obere Schranke!) Kellerautomat der L(G) akzeptiert Ist dieser effizient?
Programmierung und Modellierung
Programmierung und Modellierung Terme, Suchbäume und Pattern Matching Martin Wirsing in Zusammenarbeit mit Moritz Hammer SS 2009 2 Inhalt Kap. 7 Benutzerdefinierte Datentypen 7. Binärer Suchbaum 8. Anwendung:
Theoretische Informatik 2
Theoretische Informatik 2 Johannes Köbler Institut für Informatik Humboldt-Universität zu Berlin WS 2009/10 Die Chomsky-Hierarchie Definition Sei G = (V, Σ, P, S) eine Grammatik. 1 G heißt vom Typ 3 oder
Grundlagen der Programmierung 2. Bäume
Grundlagen der Programmierung 2 Bäume Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 24. Mai 2006 Graphen Graph: Menge von Knoten undzugehörige (gerichtete oder ungerichtete)
Funktionale Programmierung mit Haskell
Funktionale Programmierung mit Haskell Prof. Dr. Hans J. Schneider Lehrstuhl für Programmiersprachen und Programmiermethodik Friedrich-Alexander-Universität Erlangen-Nürnberg Sommersemester 2011 I. Die
11.1 Kontextsensitive und allgemeine Grammatiken
Theorie der Informatik 7. April 2014 11. Kontextsensitive und Typ-0-Sprachen Theorie der Informatik 11. Kontextsensitive und Typ-0-Sprachen 11.1 Kontextsensitive und allgemeine Grammatiken Malte Helmert
Programmierung 2. Übersetzer: Code-Erzeugung. Sebastian Hack. Klaas Boesche. Sommersemester 2012. [email protected]. [email protected].
1 Programmierung 2 Übersetzer: Code-Erzeugung Sebastian Hack [email protected] Klaas Boesche [email protected] Sommersemester 2012 Bytecodes Der Java Übersetzer erzeugt keine Maschinensprache
Endliche Sprachen. Folgerung: Alle endlichen Sprachen sind regulär. Beweis: Sei L={w 1,,w n } Σ*. Dann ist w 1 +L+w n ein regulärer Ausdruck für
Endliche Sprachen Folgerung: Alle endlichen Sprachen sind regulär. Beweis: Sei L={w 1,,w n } Σ*. Dann ist w 1 +L+w n ein regulärer Ausdruck für L. 447 Zusammenfassung Beschreibungsformen für reguläre Sprachen:
Vorlesung Theoretische Informatik
Vorlesung Theoretische Informatik Automaten und Formale Sprachen Hochschule Reutlingen Fakultät für Informatik Masterstudiengang Wirtschaftsinformatik überarbeitet von F. Laux (Stand: 09.06.2010) Sommersemester
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
Haskell, Typen, und Typberechnung. Grundlagen der Programmierung 3 A. Einige andere Programmiersprachen. Typisierung in Haskell
Haskell, Typen, und Typberechnung Grundlagen der Programmierung 3 A Typen, Typberechnung und Typcheck Prof. Dr. Manfred Schmidt-Schauß Ziele: Haskells Typisierung Typisierungs-Regeln Typ-Berechnung Milners
Kapitel 8. Rekursionsgleichungen. Landau-Symbole. Lösen von Rekursionsgleichungen Allgemeines Iterationsmethode Spezialfälle Erzeugende Funktionen
Rekursionsgleichungen Landau-Symbole Kapitel 8 Lösen von Rekursionsgleichungen Allgemeines Iterationsmethode Spezialfälle Erzeugende Funktionen Kapitel 8 Rekursionsgleichungen p./42 Landau-Symbole () Modellierung
Ein Ausflug in den Compilerbau
Ein Ausflug in den Compilerbau Syntaktische Analyse und Berechnung arithmetischer Ausdrücke von Torsten Brandes Der Compilerbau ist ein (aufgrund der komplexen Materie) in der Schule vernachlässigtes Teilgebiet
Sprachbeschreibung und Erweiterung
Sprachbeschreibung und Erweiterung Worte, Sprachen, reguläre Ausdrücke, Automaten, BNF, Grammatik, Syntax- Diagramme, Spracherweiterungen do, for, break, switch Formale Beschreibung von Programmiersprachen
Diskrete Strukturen und Logik WiSe 2007/08 in Trier. Henning Fernau Universität Trier [email protected]
Diskrete Strukturen und Logik WiSe 2007/08 in Trier Henning Fernau Universität Trier [email protected] 1 Diskrete Strukturen und Logik Gesamtübersicht Organisatorisches Einführung Logik & Mengenlehre
Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2013
Automaten und Formale Sprachen alias Theoretische Informatik Sommersemester 2013 Dr. Sander Bruggink Übungsleitung: Jan Stückrath Sander Bruggink Automaten und Formale Sprachen 1 Deterministische Kellerautomaten
Luis Kornblueh. May 22, 2014
Einführung in die Bash Luis Kornblueh KlosterCluster Team 2013/2014, Klosterschule May 22, 2014 1 / 17 Inhaltsverzeichnis Einführung in das Scripting Einfache Beispiele Kommandos ersetzen Bedingungen Tests
2.11 Kontextfreie Grammatiken und Parsebäume
2.11 Kontextfreie Grammatiken und Parsebäume Beispiel: Beispiel (Teil 3): Beweis für L(G) L: Alle Strings aus L der Länge 0 und 2 sind auch in L(G). Als Induktionsannahme gehen wir davon aus, dass alle
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
Theoretische Informatik Testvorbereitung Moritz Resl
Theoretische Informatik Testvorbereitung Moritz Resl Bestandteile einer Programmiersprache: a) Syntax (Form): durch kontextfreie Grammatik beschrieben b) Semantik (Bedeutung) 1.) Kontextfreie Sprachen
Einführung Computerlinguistik. Konstituentensyntax II
Einführung Computerlinguistik Konstituentensyntax II Hinrich Schütze & Robert Zangenfeind Centrum für Informations- und Sprachverarbeitung, LMU München 2013-11-18 Schütze & Zangenfeind: Konstituentensyntax
2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik
Stefan Lucks Diskrete Strukturen (WS 2009/10) 57 2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Uhr: Stunden mod 24, Minuten mod 60, Sekunden mod 60,... Rechnerarithmetik: mod 2 w, w {8, 16, 32,
Datentypen. Agenda für heute, 4. März, 2010. Pascal ist eine streng typisierte Programmiersprache
Agenda für heute, 4. März, 2010 Zusammengesetzte if-then-else-anweisungen Datentypen Pascal ist eine streng typisierte Programmiersprache Für jeden Speicherplatz muss ein Datentyp t (Datenformat) t) definiert
Grundbegriffe der Informatik
Grundbegriffe der Informatik Einheit 8: kontextfreie Grammatiken Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2009/2010 1/37 Überblick Kontextfreie Grammatiken
26 Hierarchisch strukturierte Daten
Algorithmik II Peter Wilke Sommersemester 2005 Teil III Funktionale Programmierung 26 Hierarchisch strukturierte Daten Peter Wilke Algorithmik II Sommersemester 2005 1 Peter Wilke Algorithmik II Sommersemester
Übung zu Grundbegriffe der Informatik. Simon Wacker. 15. November 2013
Übung zu Grundbegriffe der Informatik Simon Wacker 15. November 2013 Vollständige Induktion über die Wortlänge Es sei B ein Alphabet. Dann ist B = n N 0 B n. Für jedes Wort w B sei A w eine Aussage, die
Kontrollstrukturen, Pseudocode und Modulo-Rechnung
Kontrollstrukturen, Pseudocode und Modulo-Rechnung CoMa-Übung III TU Berlin 29.10.2012 CoMa-Übung III (TU Berlin) Kontrollstrukturen, Pseudocode und Modulo-Rechnung 29.10.2012 1 / 1 Themen der Übung 1
Grundbegriffe der Informatik
Grundbegriffe der Informatik Tutorium 27 29..24 FAKULTÄT FÜR INFORMATIK KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Definition
Programmierkurs Java
Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen
Der λ-kalkül. Frank Huch. Sommersemester 2015
Der λ-kalkül Frank Huch Sommersemester 2015 In diesem Skript werden die Grundlagen der Funktionalen Programmierung, insbesondere der λ-kalkül eingeführt. Der hier präsentierte Stoff stellt einen teil der
Compilerbau II Skript
Universität Siegen Fachbereich 12, Angewandte Informatik und Elektrotechnik Dozent: Dr. Kurt Sieber; Compilerbau II Skript Christian Uhrhan 18. März 2011 Inhaltsverzeichnis 1 Syntaxgerichtete Übersetzung
Formelsammlung zur Informatik
Formelsammlung zur Informatik Jan Krieger 24. September 2006 . The time has come, the Walrus said, To talk of many things: Of shoes and ships and sealingwax Of cabbages and kings And why the sea is boiling
15ab 21bc 9b = 3b 5a 7c 3
4 4.1 Einführung Haben alle Summanden einer algebraischen Summe einen gemeinsamen Faktor, so kann man diesen gemeinsamen Faktor ausklammern. Die Summe wird dadurch in ein Produkt umgewandelt. Tipp: Kontrolle
