Programmieren I. Formale Sprachen. Institut für Angewandte Informatik

Save this PDF as:
 WORD  PNG  TXT  JPG

Größe: px
Ab Seite anzeigen:

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

Transkript

1 Programmieren I Formale Sprachen KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft

2 Formale Sprachen: Allgemeines Sprachen werden eingeteilt in: Natürliche Sprachen oder Umgangssprachen (werden gesprochen und dienen der Kommunikation) Künstliche oder Formale Sprachen (werden benutzt, um Sachverhalte möglichst genau aufzuschreiben, z.b. in der Mathematik, Logik und Informatik) Eine Formale Sprache ist eine Menge von Symbolanordnungen, die vorgegebenen Regeln entsprechen Formale Sprachen definieren formal welche Ausdrücke erlaubt sind (Syntax) aber i.d.r. nicht die Bedeutung (Semantik) von Ausdrücken 2 W. Geiger, W. Süß, T. Schlachter

3 Formale Sprachen: Beispiele Beispiele Datenaustausch: Sender und Empfänger müssen sich auf gemeinsames Format einigen Programmiersprachen 1 : Was sind korrekte Ausdrücke? class EinfacheKlasse {int datum;} ist ein korrekter Java-Ausdruck class EinfacheKlasse (int datum) ist kein korrekter Java-Ausdruck 1) Sender ist der Programmierer, Empfänger ist der Übersetzer (Compiler) 3 W. Geiger, W. Süß, T. Schlachter

4 Anwendung: Datenaustausch Sender Beispiele: Daten Austausch Dokumente im Internet: Datenaustauschformate HTML, XML, PDF Austausch zwischen betrieblichen Informationssystemen Empfänger Elektronischer Datenaustausch zwischen Unternehmen Zum elektronischen Datenaustausch müssen sich Sender und Empfänger auf ein Austauschformat einigen. Der Empfänger muss erkennen, Kunde ob Daten(format) korrekt sind/ist was sie bedeuten Rechnung Bestellung Lieferant 4 W. Geiger, W. Süß, T. Schlachter

5 Syntax, Semantik und Pragmatik einer Sprache Syntax (Sprachliche Form): Legt fest, welche Ausdrücke erlaubt sind Beispiel aus Java: Nach dem Wort class folgt ein Wort und anschließend eine in geschweifte Klammern eingeschlossene Zeichenfolge Semantik (Bedeutung): Legt die Bedeutung eines Ausdrucks der Sprache fest Java: das Schlüsselwort class leitet eine Klassendefinition ein; das Wort direkt nach class ist der Name der Klasse Deutsch: Der Baum blüht. und Der Baum spaziert. sind nach der gleichen Regel aufgebaute, syntaktisch korrekte Sätze mit unterschiedlicher (mehr oder weniger sinnvoller) Bedeutung. Pragmatik: Regelt die Einbettung der Bedeutung in den Kontext 5 W. Geiger, W. Süß, T. Schlachter

6 Beispiel für Syntax, Semantik und Pragmatik Frage: Wie spät ist es? Die Syntax regelt den grammatikalischen Aufbau der Frage. Wie spät ist es! wäre syntaktisch falsch. Die Semantik zeigt, dass eine Frage nach einer Uhrzeit zum Zeitpunkt des Aussprechens gemeint ist. Die Pragmatik zeigt, dass der Sprechende eine Aufforderung an den Hörer hat und dass eine Reaktion von diesem zu recht erwartet werden kann. Der Hörer steht mit der Annahme der Frage in der Pflicht der Frage bzw. Bitte um Antwort nachzukommen. Pragmatisch falsch wäre die Reaktion: Es ist nie zu spät, ein guter Mensch zu werden [I. Kant], obwohl dies inhaltlich (semantisch) sinnvoll wäre. 6 W. Geiger, W. Süß, T. Schlachter

7 Formale Sprachen Eine formale Sprache definiert, welche Ausdrücke erlaubt sind Zulässige Zeichen Regeln für die Zusammensetzung der Zeichen Sender und Empfänger befolgen die gleichen Regeln Syntax der Sprache ist eindeutig beschrieben Korrektheit eines Ausdrucks ist nachprüfbar Formale Sprachen haben folgende Eigenschaften Alle Zeichen sind explizit definiert Alle syntaktischen Regeln sind explizit definiert Alle semantischen Regeln sind explizit definiert oder vollständig weggelassen Es gibt keine Pragmatik 7 W. Geiger, W. Süß, T. Schlachter

8 Grundlage für formale Sprachen: Alphabet Gegeben sei A Dann ist Alphabet: eine Menge von Zeichen (auch Zeichenvorrat genannt) A* die Menge aller Zeichenketten, die man aus A bilden kann, einschließlich der leeren Kette "" Für die leere Kette schreiben wir auch den griechischen Buchstaben (sprich: Lambda ) A+ Die Menge aller Zeichenketten, die man aus A bilden kann, ohne die leere Kette Beispiele: A = {"a", "b", "c"} A* = {, "a", "b", "c", "aa", "ab", "ac", "ba", "bb", "bc", "ca", "cb", "cc", "aaa", "aab", "aac", "aba", "abb",...} 8 W. Geiger, W. Süß, T. Schlachter

9 Sprache Eine Teilmenge L A* nennt man Sprache über dem Alphabet A. Die Elemente von L heißen Wörter der Sprache L (oder auch Ketten der Sprache L). Beispiel: Gegeben sei das Alphabet A = {"a", "b", "c"}. L 1 sei die Sprache über A, in der alle Wörter mit "a" beginnen und aufhören. Dann sind folgende Ketten Wörter von L 1 "a", "aa", "aaa", "aba", "aca", "aaaa", "aaba", "accca",... Keine Wörter von L 1 sind dagegen: "", "b", "c", "ab", "ca", "bcc",... 9 W. Geiger, W. Süß, T. Schlachter

10 Grammatik (1) Grammatik: Lehre von der Wortbildung und -flexion (Morphologie) sowie von der Verwendung der Wörter im Satz (Syntax) Die meisten Sprachen haben unendlich viele Wörter, so dass man durch Aufzählung der Wörter die Sprache nicht definieren kann Eine Grammatik ist eine allgemeine, eindeutige Beschreibung der Syntax einer Sprache Sinn und Zweck einer Grammatik: sie soll eine endliche Beschreibung einer Sprache ermöglichen 10 W. Geiger, W. Süß, T. Schlachter

11 Grammatik (2) Eine Grammatik G=(T,N,P,S) besteht aus 4 Teilen: T N P S die Menge der Terminalsymbole, aus denen die Wörter der Sprache gebildet werden. Terminalsymbole sind Zeichen des zugrunde liegenden Alphabets. die Menge der Nichtterminalsymbole (Hilfssymbole); sie treten in der Sprache nicht auf, sondern müssen durch Terminalsymbole ersetzt werden. die Menge der Produktionen (auch Produktionsregeln oder Regeln genannt). Eine Regel X Y besagt, dass ein Teilwort X durch ein Teilwort Y ersetzt werden kann, wobei X und Y aus Terminal- und Nichtterminalsymbolen bestehen können. das Startsymbol (ein spezielles Element aus N), von dem ausgehend die Produktionen angewandt werden. 11 W. Geiger, W. Süß, T. Schlachter

12 Sprache einer Grammatik Die Sprache L einer Grammatik G ist die Menge aller Wörter, die durch die Grammatik abgeleitet werden können, d.h. die Menge der Wörter, die aus S durch Anwendung von Produktionsregeln erzeugt werden kann, wobei alle Nichtterminalsymbole durch Terminalsymbole ersetzt worden sind. Mathematische Definition: Sei G=(T,N,P,S) eine Grammatik. Dann heißt L(G) = {w T* S w} die von G erzeugte formale Sprache. Eine Sprache entsteht also als Menge von Zeichenketten durch Anwendung von Produktionen einer Grammatik. 12 W. Geiger, W. Süß, T. Schlachter

13 Kontextfreie Grammatiken Im Allgemeinen können rechte und linke Seite von Produktionen aus beliebigen Kombinationen von Terminalund Nichtterminalsymbolen bestehen Die für die Informatik wichtigste Kategorie von Grammatiken sind diejenigen, deren Mengen N, T, und P nicht leer und endlich sind und deren Produktionen auf der linken Seite aus genau einem Nichtterminalsymbol bestehen Diese Grammatiken heißen kontextfrei Die Anwendung von Produktionen einer kontextfreien Grammatik führt zu einer hierarchischen Verfeinerung Wörter einer kontextfreien Sprache können einfach generiert und erkannt werden 13 W. Geiger, W. Süß, T. Schlachter

14 Beispiel: Grammatik für Sprache L 1 Die folgende (kontextfreie) Grammatik beschreibt die Menge aller Wörter über dem Alphabet {"a", "b", "c"}, die mit "a" beginnen und enden: T = { "a", "b", "c"} N = { Wort, Buchstabe, Teilwort } P = { Wort "a" Teilwort "a", Wort "a", Teilwort Buchstabe Teilwort, Teilwort, Buchstabe "a", Buchstabe "b", Buchstabe "c" } S = Wort 14 W. Geiger, W. Süß, T. Schlachter

15 Beispiel: Herleitung eines Wortes Die Herleitung eines Wortes lässt sich als Baum darstellen Beispiel: "abca" ist ein Wort der Sprache L 1 : Wort (1) a Teilwort a (3) Buchstabe Teilwort (6) (3) b Buchstabe Teilwort (7) (4) c Die fett gedruckten Zeichen bilden das erzeugte Wort. 15 W. Geiger, W. Süß, T. Schlachter

16 Darstellung von Grammatiken Zur Beschreibung (Darstellung ) von kontextfreien Grammatiken wurden in der Informatik verschiedene Formalismen entwickelt. Die wichtigsten sind: Backus-Naur-Form (BNF) Syntaxdiagramme erkennende Automaten Im Folgenden wird auf die ersten beiden Formalismen eingegangen. 16 W. Geiger, W. Süß, T. Schlachter

17 Backus-Naur-Form (BNF) Die BNF wird vor allem für die Definition von Programmiersprachen verwendet Die linke Seite jeder Regel besteht aus genau einem Nichtterminalsymbol (die BNF ist eine Darstellung für kontextfreie Grammatiken) Die rechte Seite einer Regel besteht aus beliebig langen Ketten, die Terminal- und Nichtterminalsymbole enthalten kann die rechte Seite ist also ein Element aus (T N)* die leere rechte Seite ( ) ist erlaubt Linke und rechte Seite einer Regel werden durch das Zeichen ::= voneinander getrennt Schreibweise in dieser Vorlesung: Terminalsymbole sind fett gedruckt Nichtterminalsymbole sind kursiv gedruckt. Symbole der Metasprache sind in Standard-Schrift gedruckt. 17 W. Geiger, W. Süß, T. Schlachter

18 Beispiel: Grammatik für L 1 in BNF T = { a, b, c } N = { Wort, Buchstabe, Teilwort } P = { Wort a Teilwort a (1) Wort a (2) Teilwort Buchstabe Teilwort (3) Teilwort (4) Buchstabe a (5) Buchstabe b (6) Buchstabe c (7) } S = Wort 18 W. Geiger, W. Süß, T. Schlachter

19 Erweiterte Backus-Naur-Form (EBNF) Weil BNF-Grammatiken unübersichtlich werden können, wurde die BNF um einige Abkürzungsmöglichkeiten erweitert. Dies führt zur erweiterten Backus-Naur-Form (EBNF) Es gibt verschiedene Varianten der EBNF Eine gebräuchliche sieht folgende Abkürzungsmöglichkeiten vor: der senkrechte Strich trennt Alternativen [ ] eckige Klammern enthalten optionale Bestandteile { } geschweifte Klammern enthalten Bestandteile, die null, ein oder mehrfach wiederholt werden dürfen { }+ geschweifte Klammern mit + enthalten Elemente, die ein oder mehrfach wiederholt werden können ( ) Gruppierung mehrerer Bestandteile, z.b. mehrerer Alternativen 19 W. Geiger, W. Süß, T. Schlachter

20 Beispiel: Grammatik für L 1 in EBNF T = { a, b, c } N = { Wort, Buchstabe, Teilwort } P = { Wort a Teilwort a a (1+2) Teilwort Buchstabe Teilwort (3+4) Buchstabe a b c (5-7) } S = Wort 20 W. Geiger, W. Süß, T. Schlachter

21 Sprache - ein zweites Beispiel Gegeben sei das Alphabet A = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "+", "-", "*", "/", "(", ")"} Die Menge L A der arithmetischen Ausdrücke ist eine Sprache über A. Z.B. gehören folgenden Wörter zu L A : *(4+177/3-(11*(18+7))) 13 Die folgenden Wörter sollen nicht zu L A gehören: 28(18 ++/-5 21 W. Geiger, W. Süß, T. Schlachter

22 Beispiel: EBNF-Grammatik für die Sprache L A der arithmetischen Ausdrücke T = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, +, -, *, /, (, ) } N = { Ausdruck, Term, Faktor, Zahl, Ziffer } P = { Ausdruck ::= Term { ( + ) Term } Term ::= Faktor { ( * / ) Faktor } Faktor ::= Zahl ( Ausdruck ) Zahl ::= {Ziffer}+ Ziffer ::= } S = Ausdruck 22 W. Geiger, W. Süß, T. Schlachter

23 Beispiel: EBNF-Produktionen für Java (Ausschnitt)... statement_block ::= {{statement}} variable_declaration ::= {modifier} type variable_declarator {, variable_declarator}; variable_declarator ::= identifier {[ ]} [= variable_initializer] variable_initializer ::= expression ( {[ variable_initializer {, variable_initializer} ] } ) static_initializer ::= static statement_block parameter_list ::= parameter {, parameter} parameter ::= type identifier {[ ]} statement ::= variable_declaration (expression ;)... Quelle: (Notation angepasst) 23 W. Geiger, W. Süß, T. Schlachter

24 Übungsaufgaben Bestimmen Sie den Herleitungsbaum für den arithmetischen Ausdruck (1+2)*3 Beschreiben Sie in der erweiterten Backus-Naur-Form (EBNF) die Syntax von reellen Zahlen mit folgendem Aufbau: Die Zahlen haben - kein Vorzeichen oder das Vorzeichen + oder, - mindestens eine Vorpunktstelle (Vorkommastelle), - einen Punkt, - keine, eine oder mehrere Nachpunktstellen, - optional einen Exponentialteil (beginnend mit "e" oder "E"). Beispiele: 1.234, -17.3, +7., 3.4E W. Geiger, W. Süß, T. Schlachter

25 Syntaxdiagramme Syntaxdiagramme sind eine mit BNF eng verwandte Form von Grammatik, mit grafischer Darstellung der Regeln. Ein Syntaxdiagramm entspricht einer EBNF-Regel (bzw. mehreren BNF-Regeln, welche die gleiche linke Seite haben). Das Nichtterminalsymbol auf der linken Seite entspricht dem Titel des Diagramms. Nichtterminalsymbole der rechten Seite werden durch Rechtecke, Terminalsymbole durch Kreise dargestellt 25 W. Geiger, W. Süß, T. Schlachter

26 Beispiel: Syntaxdiagramme für die Sprache L A der arithmetischen Ausdrücke Ausdruck Term Term Faktor Term + Faktor * / Faktor Zahl Zahl Ziffer Ausdruck ( ) Ziffer W. Geiger, W. Süß, T. Schlachter

27 Metasprachen BNF und EBNF sind formale Sprachen, die dazu da sind, über formale Sprachen etwas zu sagen (nämlich ihre Syntax zu definieren) Eine Sprache, in der man über eine andere Sprache spricht, nennt man Metasprache Die Zeichen dieser Sprachen, die nicht Terminal- oder Nichtterminalsymbole sind, heißen Metasymbole In BNF ist ::= ein Metasymbol In EBNF sind ::=,, [, ], {, } und + Metasymbole 27 W. Geiger, W. Süß, T. Schlachter

28 Anwendungen von Grammatiken Es gibt viele Anwendungen für Grammatiken nicht nur in den Definitionen der Programmiersprachen, z.b. Aufbau von Kommandos (Shell, COMMAND.COM) Beschreibung von Protokollen (TCP, IP, HTTP, SOAP) Aufbau von Mustern von Zeichenketten (Pattern-Matching), z.b. für Shell oder Editoren (substitute-kommando) Reguläre Ausdrücke Aufbau von SQL-Kommandos für Datenbank-Abfragen Aufbau von URI/URL (Web-Adressen) Aufbau von Dokumenten (HTML, XML) 28 W. Geiger, W. Süß, T. Schlachter

29 Erkennen gültiger Ausdrücke einer Sprache Eine wichtige Anwendung einer Grammatik ist zu erkennen, ob eine Zeichenkette zu einer Sprache gehört Beispiel: Analysephase beim Compilieren Für die Erkennung (Analyse) von Zeichenketten werden die Regeln rückwärts angewendet Erkennung der Korrektheit von Ausdrücken Zuordnung von Ausdrücken zu semantischen Einheiten Dieser Vorgang heißt parsen (engl. to parse - analysieren) Parser sind Bestandteile von Compilern aber auch z.b. von WWW-Browsern (um HTML-Code zu erkennen) 29 W. Geiger, W. Süß, T. Schlachter

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: Motivation Sprachen werden

Mehr

Formale Sprachen Grundlagen und Anwendungen. Dr. Wolfgang Süß

Formale Sprachen Grundlagen und Anwendungen. Dr. Wolfgang Süß Formale Sprachen Grundlagen und Anwendungen Formale Sprachen: Motivation Sprachen werden eingeteilt in: Natürliche Sprachen oder Umgangssprachen Diese werden gesprochen und dienen der Kommunikation. Künstliche

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

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

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

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

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

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

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

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

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

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

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

Grundlagen der Informatik II. Teil I: Formale Modelle der Informatik

Grundlagen der Informatik II. Teil I: Formale Modelle der Informatik Grundlagen der Informatik II Teil I: Formale Modelle der Informatik 1 Einführung GdInfoII 1-2 Ziele/Fragestellungen der Theoretischen Informatik 1. Einführung abstrakter Modelle für informationsverarbeitende

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

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

Was ist ein Compiler?

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?

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

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Tutorium 4 26..25 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

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

Grundbegriffe der Informatik

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

Mehr

Theoretische Informatik I

Theoretische Informatik I Theoretische Informatik I Einheit 2.4 Grammatiken 1. Arbeitsweise 2. Klassifizierung 3. Beziehung zu Automaten Beschreibungsformen für Sprachen Mathematische Mengennotation Prädikate beschreiben Eigenschaften

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

Grundbegriffe der Informatik

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

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

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel.

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel. Kontextfreie Kontextfreie Motivation Formale rundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen Bisher hatten wir Automaten, die Wörter akzeptieren Frank Heitmann heitmann@informatik.uni-hamburg.de

Mehr

Syntax (= Satzgefüge), vgl. auch Grammatik

Syntax (= Satzgefüge), vgl. auch Grammatik 1 Natürliche Sprachen Natürliche Sprachen bezeichnen wie das Wort "Sprache" ausdrückt zunächst das Gesprochene. Das Schweizerdeutsch etwa ist eine typische natürliche Sprache. Mit der Erfindung der Aufzeichnung

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

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 15: Reguläre Ausdrücke und rechtslineare Grammatiken Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/25 Was kann man mit endlichen

Mehr

Grammatiken. Einführung

Grammatiken. Einführung Einführung Beispiel: Die arithmetischen Ausdrücke über der Variablen a und den Operationen + und können wie folgt definiert werden: a, a + a und a a sind arithmetische Ausdrücke Wenn A und B arithmetische

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

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren:

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren: 4. AUSSAGENLOGIK: SYNTAX 4.1 Objektsprache und Metasprache 4.2 Gebrauch und Erwähnung 4.3 Metavariablen: Verallgemeinerndes Sprechen über Ausdrücke von AL 4.4 Die Sprache der Aussagenlogik 4.5 Terminologie

Mehr

Theoretische Informatik I

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

Mehr

1 Syntax von Programmiersprachen

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

Mehr

Sprachbeschreibung und Erweiterung

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

Mehr

Formale Sprachen. Eine Einführung. Tim Lethen Düsseldorf Version II (04-06)

Formale Sprachen. Eine Einführung. Tim Lethen Düsseldorf Version II (04-06) Formale Sprachen - Eine Einführung Tim Lethen Düsseldorf Version II (04-06) INHALT 0 Einleitung... 3 1 Grundlegende Definitionen... 3 2 Grammatiken... 4 2.1 Definitionen... 4 2.2 Logische Grammatiken (DCGs)...

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

Multimedia Technologie II

Multimedia Technologie II Vorlesung / Übungen Multimedia Technologie II Prof. Dr. Michael Frank / Prof. Dr. Klaus Hering Sommersemester 2004 HTWK Leipzig, FB IMN Für die externe Vorhaltung der DTD werden sämtliche zwischen den

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

Mathematische Grundlagen der Informatik 2

Mathematische Grundlagen der Informatik 2 Zusammenfassung Math2I Mathematische Grundlagen der Informatik 2 Emanuel Duss emanuel.duss@gmail.com 12. April 2013 1 Zusammenfassung Math2I Mathematische Grundlagen der Informatik 2 Dieses Dokument basiert

Mehr

Informatik IV Theoretische Informatik: Formale Sprachen und Automaten, Berechenbarkeit und NP-Vollständigkeit

Informatik IV Theoretische Informatik: Formale Sprachen und Automaten, Berechenbarkeit und NP-Vollständigkeit Informatik IV Theoretische Informatik: Formale Sprachen und Automaten, Berechenbarkeit und NP-Vollständigkeit Sommersemester 2011 Dozent: Prof. Dr. J. Rothe, Prof. Dr. M. Leuschel J. Rothe (HHU Düsseldorf)

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

syntax.tex Eine Übersicht

syntax.tex Eine Übersicht syntax.tex Eine Übersicht Bernd Worsch 7. Juli 1997 Inhaltsverzeichnis 1 Einleitung 1 2 Bevor es funktioniert... 1 3 Grundelemente von syntax.tex 1 4 Strukturelemente von syntax.tex 3 5 Setzen von Syntaxdiagrammen

Mehr

Theoretische Grundlagen der Informatik

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

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

Kapitel 2: Formale Sprachen Kontextfreie Sprachen. reguläre Grammatiken/Sprachen. kontextfreie Grammatiken/Sprachen

Kapitel 2: Formale Sprachen Kontextfreie Sprachen. reguläre Grammatiken/Sprachen. kontextfreie Grammatiken/Sprachen reguläre Grammatiken/prachen Beschreibung für Bezeichner in Programmiersprachen Beschreibung für wild cards in kriptsprachen (/* reguläre Ausdrücke */)?; [a-z]; * kontextfreie Grammatiken/prachen Beschreibung

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

Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen 19

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

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE3-Syntaxdiagramme (Stand 05.11.2010) Aufgabe 1: Entwickeln Sie Regeln zur Übersetzung von EBNF in Syntaxdiagramme. Aufgabe 2: Eine Zahl ist entweder

Mehr

Formalismen für REG. Formale Grundlagen der Informatik 1 Kapitel 7 Kontextfreie Sprachen. Das Pumping Lemma. Abschlusseigenschaften

Formalismen für REG. Formale Grundlagen der Informatik 1 Kapitel 7 Kontextfreie Sprachen. Das Pumping Lemma. Abschlusseigenschaften Formalismen für RE Formale rundlagen der Informatik 1 Kapitel 7 Kontextfreie Sprachen Frank Heitmann heitmann@informatik.uni-hamburg.de Satz Zu jeder regulären Sprache L gibt es einen DFA A mit L(A) =

Mehr

Informatik I Tutorium WS 07/08

Informatik I Tutorium WS 07/08 Informatik I Tutorium WS 07/08 Vorlesung: Prof. Dr. F. Bellosa Übungsleitung: Dipl.-Inform. A. Merkel Tutorium: 12 Tutor: Jens Kehne Tutorium 3: Dienstag 13. November 2007 Übersicht Tutorium Übersicht

Mehr

Vorlesung Theoretische Informatik

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

Mehr

Informatik I WS 07/08 Tutorium 24

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: infotut@sunshine2k.de Web: http://infotut.sunshine2k.de Rückblick Semi-Thue-Systeme Ein Semi-Thue-System besteht

Mehr

Einführung in die Programmiertechnik

Einführung in die Programmiertechnik Einführung in die Programmiertechnik Formale Beschreibung von Programmiersprachen Lexikalische Regeln Definition von Wörtern (Lexem, Token) Gruppierung von Zeichen Lexikalische Kategorien: Klassen ähnlicher

Mehr

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

Mehr

IT-Basics 2. DI Gerhard Fließ

IT-Basics 2. DI Gerhard Fließ IT-Basics 2 DI Gerhard Fließ Wer bin ich? DI Gerhard Fließ Telematik Studium an der TU Graz Softwareentwickler XiTrust www.xitrust.com www.tugraz.at Worum geht es? Objektorientierte Programmierung Konzepte

Mehr

Einführung in die Computerlinguistik

Einführung in die Computerlinguistik Einführung in die Computerlinguistik Syntax II WS 2008/2009 Manfred Pinkal Morphologie und Syntax Gegenstand der Morphologie ist die Struktur des Wortes: der Aufbau von Wörtern aus Morphemen, den kleinsten

Mehr

ARBEITSBLATT ZU FORMALEN SPRACHEN

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

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

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 11.-15.10.2010 Manfred Jackel 1 Syntax für die Sprache Java public class Welcome { } Schlüsselworte Reservierte Worte Keywords Wortsymbol Syntax: griech.

Mehr

Parsing-EinfŸhrung Ð 1

Parsing-EinfŸhrung Ð 1 Parsing-EinfŸhrung bersicht Falsifizierbarkeit, oder: Sind Grammatiken wissenschaftlich? Grammatik, Formalismus Kontextfreie Grammatiken Ableitungen Ziel Verstehen der linguistischen Motivation Intuitives

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

2.11 Kontextfreie Grammatiken und Parsebäume

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

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

Zusammenfassung. 1 Wir betrachten die folgende Signatur F = {+,,, 0, 1} sodass. 3 Wir betrachten die Gleichungen E. 4 Dann gilt E 1 + x 1

Zusammenfassung. 1 Wir betrachten die folgende Signatur F = {+,,, 0, 1} sodass. 3 Wir betrachten die Gleichungen E. 4 Dann gilt E 1 + x 1 Zusammenfassung Zusammenfassung der letzten LV Einführung in die Theoretische Informatik Woche 7 Harald Zankl Institut für Informatik @ UIBK Wintersemester 2014/2015 1 Wir betrachten die folgende Signatur

Mehr

Compiler, Übersetzer. Allgemeine Erklärung / Definition

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:

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

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

Grundbegriffe der Informatik Tutorium 7

Grundbegriffe der Informatik Tutorium 7 Grundbegriffe der Informatik Tutorium 7 Tutorium Nr. 16 Philipp Oppermann 16. Dezember 2014 KARLSRUHER INSTITUT FÜR TECHNOLOGIE KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum

Mehr

Grafische Interaktionssysteme/ dynamische Visualisierung des endlichen Automaten

Grafische Interaktionssysteme/ dynamische Visualisierung des endlichen Automaten Sprachliche Informationsverarbeitung 29.01.2007 HS Intelligente Systeme Prof. Dr. J. Rolshoven (WS 06/07) Grafische Interaktionssysteme/ dynamische Visualisierung des endlichen Automaten Referentin: Melinda

Mehr

Funktionale Programmierung mit Haskell

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

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 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

Mehr

I.5. Kontextfreie Sprachen

I.5. Kontextfreie Sprachen I.5. Kontextfreie prachen Zieht man in Betracht, dass BNF-yteme gerade so beschaffen sind, dass auf der linken eite immer genau ein Nichtterminal steht, so sind das also gerade die Ableitungsregeln einer

Mehr

SWE1 / Übung 2 (19.10.2011)

SWE1 / Übung 2 (19.10.2011) SWE1 / Übung 2 (19.1.211) Simulation von Algorithmen Testen, Testplan Beispiel arithmetische Ausdrücke Handsimulation von Algorithmen Man versteht einen Algorithmus (insbesonders einen "Fremden"), wenn

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

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r ) Definition B : Menge der binären Bäume, rekursiv definiert durch die Regeln: ist ein binärer Baum sind t l, t r binäre Bäume, so ist auch t =, t l, t r ein binärer Baum nur das, was durch die beiden vorigen

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

Grundbegriffe der Informatik Tutorium 12

Grundbegriffe der Informatik Tutorium 12 Grundbegriffe der Informatik Tutorium 12 Tutorium Nr. 16 Philipp Oppermann 28. Januar 2015 KARLSRUHER INSTITUT FÜR TECHNOLOGIE KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum

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

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

Kapitel 0: Grundbegriffe Gliederung

Kapitel 0: Grundbegriffe Gliederung Gliederung 0. Grundbegriffe 1. Endliche Automaten 2. Formale Sprachen 3. Berechenbarkeitstheorie 4. Komplexitätstheorie 5. Kryptographie 0/2, Folie 1 2009 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

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

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

Theoretische Informatik Mitschrift

Theoretische Informatik Mitschrift Theoretische Informatik Mitschrift 2. Grammatiken und die Chomsky-Hierarchie Beispiel: Syntaxdefinition in BNF :=

Mehr

6 Modellierung von Strukturen 6.1 Kontextfreie Grammatiken

6 Modellierung von Strukturen 6.1 Kontextfreie Grammatiken 6 Modellierung von Strukturen 6.1 Kontextfreie Grammatiken Mod-6.1 Kontextfreie Grammatik (KFG): formaler Kalkül, Ersetzungssystem; definiert Sprache als Menge von Sätzen; jeder Satz ist eine Folge von

Mehr

Einführung in die Computerlinguistik

Einführung in die Computerlinguistik Einführung in die Computerlinguistik Syntax WS 2006/2007 Manfred Pinkal Einführung in die Computerlinguistik 2006/2007 M. Pinkal UdS 1 Morphologie und Syntax Gegenstand der Morphologie ist die Struktur

Mehr

Programmieren Formulierung eines Algorithmus in einer Programmiersprache

Programmieren Formulierung eines Algorithmus in einer Programmiersprache Zum Titel der Vorlesung: Programmieren Formulierung eines in einer Programmiersprache Beschreibung einer Vorgehensweise, wie man zu jedem aus einer Klasse gleichartiger Probleme eine Lösung findet Beispiel:

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

Sprachen/Grammatiken eine Wiederholung

Sprachen/Grammatiken eine Wiederholung Sprachen/Grammatiken eine Wiederholung Was sind reguläre Sprachen? Eigenschaften regulärer Sprachen Sprachen Begriffe Symbol: unzerlegbare Grundzeichen Alphabet: endliche Menge von Symbolen Zeichenreihe:

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

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

Grundlagen Theoretischer Informatik I SoSe 2011 in Trier. Henning Fernau Universität Trier fernau@uni-trier.de

Grundlagen Theoretischer Informatik I SoSe 2011 in Trier. Henning Fernau Universität Trier fernau@uni-trier.de Grundlagen Theoretischer Informatik I SoSe 2011 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 1 Grundlagen Theoretischer Informatik I Gesamtübersicht Organisatorisches; Einführung Logik

Mehr

(Prüfungs-)Aufgaben zu formale Sprachen

(Prüfungs-)Aufgaben zu formale Sprachen (Prüfungs-)Aufgaben zu formale Sprachen (siehe auch bei den Aufgaben zu endlichen Automaten) 1) Eine Grammatik G sei gegeben durch: N = {S, A}, T = {a, b, c, d}, P = { (S, Sa), (S, ba), (A, ba), (A, c),

Mehr

Computeranwendung und Programmierung (CuP)

Computeranwendung und Programmierung (CuP) Computeranwendung und Programmierung (CuP) VO: Peter Auer (Informationstechnologie) UE: Norbert Seifter (Angewandet Mathematik) Organisatorisches (Vorlesung) Vorlesungszeiten Montag 11:15 12:45 Freitag

Mehr

Pragmatik von Programmiersprachen

Pragmatik von Programmiersprachen Pragmatik von Programmiersprachen Im Kontext der Notation von Quelltexten Mike Becker, 11. Dezember 2014 Szenario: IT Dienstleister Unternehmen: Produkte: Kunden: IT Dienstleistung Beratung und Software

Mehr

Notation um Grammatik G hervorzuheben: Eine kontextfreie Grammatik erzeugt eine kontextfreie Sprache. Informatik I -1- WS 2005/2006

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.

Mehr

4. 4. Algorithmen und Datenstrukturen in deskriptiven Programmiersprachen

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

Mehr

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2013

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

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

Informatik IC2. Balazs Simon 2005.03.26.

Informatik IC2. Balazs Simon 2005.03.26. Informatik IC2 Balazs Simon 2005.03.26. Inhaltsverzeichnis 1 Reguläre Sprachen 3 1.1 Reguläre Sprachen und endliche Automaten...................... 3 1.2 Determinisieren.....................................

Mehr