1 Formale Sprachen, reguläre und kontextfreie Grammatiken

Größe: px
Ab Seite anzeigen:

Download "1 Formale Sprachen, reguläre und kontextfreie Grammatiken"

Transkript

1 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 Sprache über dem Alphabet A ist die Menge der Worte, die aus Zeichen aus A bestehen. Das leere Wort bezeichnet man mit ε. Man kann die Worte identifizieren mit Folgen von Elementen aus A. Als Operation auf den Worten hat man: Zusammenhängen von zwei Worten s, t zu einem neuem Wort s.t, auch geschrieben als st. Die Länge eines Wortes t ist die Anzahl der Zeichen in t. Die Menge aller Worte über A wird auch mit A bezeichnet. Eine formale Sprache über A ist eine Teilmenge von A. 1.1 Reguläre formale Sprachen Eine Möglichkeit, formale Sprachen zu beschreiben, sind reguläre Ausdrücke über einem Alphabet A. Diese sind folgendermaßen definiert: Definition 1.1 Wir geben die Syntax für reguläre Ausdrücke an. 1. ε ist ein regulärer Ausdruck 2. a ist ein regulärer Ausdruck für a A. 3. Wenn r und s reguläre Ausdrücke sind, dann auch (r + s), (rs) und (r ). Wenn man formale Sprachen R und S über dem Alphabet A hat, dann bezeichnet RS die Menge aller Konkatenationen von Wörtern aus R und S, d.h. RS := {uv u R, v S}. Definiert man R n durch R 0 := {ε}, R 1 := R und R n := RR n 1, dann ist der (Kleene-)Abschluß definiert als R := {R n n 0}, der positive Abschluß ist definiert als R + := {R n n 1}. Jeder reguläre Ausdruck r über dem Alphabet A beschreibt eine formale Sprache I(r), wobei I die Interpretation ist, wenn man induktiv definiert: 1. I(ε) := {ε}. 2. I(a) := {a} für a A. 3. I((r + s)) := I(r) I(s). 4. I((rs)) := I(r)I(s). 5. I(r ) := (I(r)). Man erweitert diese Darstellung um r n wobei r ein regulärer Ausdruck ist, und n eine natürliche Zahl. Die Bedeutung ist r n = r }. {{.. r }. Eine weitere n Möglichkeit ist das optionale Auftreten: [r] bedeutet, dass r einmal oder keinmal auftreten kann und ist gleichbedeutend zu r + ε. 1.2

2 Praktische Informatik 1, WS 2001/02, reguläre Ausdrücke und kontextfreie Grammatiken 2 1. Die Menge {0, 1} ist die Menge der Binärziffern über dem Alphabet {0, 1}. Diese werden auch Bits genannt. 2. Die Menge {0, 1} 8 ist die Menge der Binärfolgen der Länge 8. Diese werden auch Bytes genannt. 3. Die Menge der Palindrome : {a 1... a n A a 1... a n = a n... a 1 } ist eine formale Sprache. 4. Die Menge {ε} ist eine formale Sprache. 5. {0, 1} ist die formale Sprache aller binären Strings. 6. {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} ist gerade die Sprache aller Bezeichnungen von natürlichen Zahlen (allerdings ist nicht garantiert, daß die erste Stelle 0 ist). 1.3 Mit Hilfe der regulären Ausdrücke können wir die Sprache der Binärdarstellung aller positiven ganzen Zahlen ohne führende ullen hinschreiben: (1((0 + 1) ) 1.4 Ein regulärer Ausdruck für dezimale Gleitkommazahlen ohne Exponent über dem Alphabet {0, 1, 2, 3, 4, 5, 6, 7, 8, 9,, } ist: {1, 2, 3, 4, 5, 6, 7, 8, 9}{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} + Definition 1.5 Eine formale Sprache L heißt regulär, wenn es einen regulären Ausdruck gibt, der L erzeugt. 1.2 Kontextfreie Grammatiken und erzeugte Sprachen Kontextfreie Grammatiken werden benutzt, um formale Sprachen (z.b. Syntax von Programmiersprachen, Zahldarstellungen, Syntax der Prädikatenlogik) zu definieren. Definition 1.6 Eine kontextfreie Grammatik (CFG, context free grammar) ist ein 4-Tupel G = (, T, P, σ) mit den Komponenten: 1. eine endlichen Menge von Hilfszeichen (onterminals) 2. eine endlichen Menge T von Terminalzeichen (Terminals), das eigentliche Alphabet, so daß T = 3. ein ausgezeichnetes Hilfszeichen (Startzeichen, Axiom) σ 4. eine endlichen Menge (Produktionensystem) P ( T ) 1.7 (A, w) P heißt Produktion oder Regel von G. Statt (A, w) P schreibt man auch A w. Die Grammatik heißt kontextfrei, da die Ersetzungen der ichtterminale unabhängig vom Kontext gemacht werden dürfen.

3 Praktische Informatik 1, WS 2001/02, reguläre Ausdrücke und kontextfreie Grammatiken Alle regulären Sprachen sind auch kontextfrei, da sich leicht eine kontextfreie Grammatik aus einem regulären Ausdruck gewinnen läßt, die die gleiche Sprache definiert. 1.9 Ein Teil der Syntax von Programmiersprachen (BF, siehe unten): Ausdruck ::= Atom Zahl ( Ausdrücke ) Ausdrücke ::= Ausdruck Ausdruck Ausdrücke Zahl ::= Ziffer Ziffer Zahl Ziffer ::= Bezeichner ::= Buchstabe Buchstabe Zeichenkette Zeichenkette ::= Zeichen Zeichen Zeichenkette Buchstabe ::= A B C D... Zeichen ::= Ziffer Buchstabe Definition 1.10 Gegeben eine kontextfreie Grammatik G = (, T, P, σ). Die Menge der Worte über dem Alphabet T, die durch Anwendung der Produktionen aus σ hergestellt werden können nennt man die von G erzeugte formale Sprache, auch L(G). Genauer: Sei eine (Reduktions-) Relation folgendermaßen definiert: Für Worte s, t, a, b sei sat G sbt, gdw. a b eine Produktion in G ist. Sei G die reflexiv-transitive Hülle von, d.h. die mehrmalige Anwendung (inklusive keine) Anwendung der Relation. Dann ist L(G) := {w T σ w}. Man sagt zu den Worten w L(G) auch, dass sie aus G herleitbar sind. Definition 1.11 Sei G = (, T, P, σ) eine CFG. Ein Ableitungsbaum B von w (derivation tree, parse tree) ist ein markierter Baum, so daß 1. jeder Knoten mit einem Element aus {ε} T markiert ist, 2. Die Wurzel mit s markiert ist, 3. innere Knoten mit Elementen aus markiert sind, 4. wenn ein Knoten die Markierung A hat und seine Söhne die Markierungen X 1,..., X k (in dieser Reihenfolge), so ist A X 1... X k eine Regel in P, 5. frontier(b) = w Ein Syntaxbaum ist meist ein verdichteter Ableitungsbaum, bei dem die Klammern und ähnliche Teile weggelassen werden, die nicht zur Bedeutung beitragen. Die genaue Form eines Syntaxbaumes hängt ab von der verwendeten Sprache Betrachte einen Teil der kontextfreien Grammatik der Aussagenlogik ({V, E}, {A, B, C,,, (, ), }, R, E), so daß R aus den folgenden Regeln besteht:

4 Praktische Informatik 1, WS 2001/02, reguläre Ausdrücke und kontextfreie Grammatiken 4 V A V B V C E V E (E E) E (E E) E ( E) Dann ist zum Beispiel (( A) A) aus E ableitbar: E = (E E) = (( E) E) = (( A) E) = (( A) A). Ein Syntaxbaum dazu (ohne die Klammern) ist: wo ooo o ooo o ooo o o E E A A 1.13 Ein Herleitungsbaum für eine Grammatik zu arithmetischen Ausdrücken über den Zahlen : E (E + E), E (E E), E Z, Z {0, 1,..., 9} für den Ausdruck ((1 + 2) 3) ist: jjjjjjjjjjjjjjjjjjjjj o o o ooo o ooo tj wo ooo E ( E E p pp p ppp p ppp xp ppp ( E = = = = = = = = ' + E ) Z ' ) Z Z 3 1 2

5 Praktische Informatik 1, WS 2001/02, reguläre Ausdrücke und kontextfreie Grammatiken 5 Ein sinnvoller Syntaxbaum dazu ist: Es gilt: ~ ~ ~~ ~ ~~ Sei G = (, T, P, σ) eine CFG. Ein Wort w ( T ) ist genau dann ableitbar, wenn es einen Ableitungsbaum für w gibt. Eine reguläre formale Sprache ist immer auch kontextfrei. Es gibt kontextfreie Sprachen, die nicht regulär sind. Es gibt auch formale Sprachen, die nicht kontextfrei sind. Die Backus-aur-Form (BF) ist eine weit verbreitete Methode, die kontextfreie Syntax höherer Programmiersprachen aufzuschreiben. Metasymbole (Symbole die nicht in der Sprache selbst benutzt werden), sind:,, ::= und, wobei zum Beispiel Zahl ein ichtterminalsymbol ist, das mittels ::= definiert wird. Das Zeichen trennt die verschiedenen Alternativen. Die Regel Ziffer ::= entspricht 10 verschiedenen Regeln einer CFG. Diese Schreibweise kennt auch Erweiterungen, um eine Syntax kompakter hinschreiben zu können, zum Beispiel, um rekursive Regeln wie Zahl ::= Ziffer Ziffer Zahl schreibt man manchmal auch Zahl ::= Ziffer +. Erweitert man die Metasyntax, so kann man mehrere Regeln zusammenfassen, wenn diese Regeln nur deshalb dupliziert worden sind, um optionale Strings auszudrücken, z.b. Zahl mit Vorzeichen ::= + Zahl Zahl Zahl schreibt man manchmal auch als Zahl mit Vorzeichen ::= [+ ] Zahl wobei [, ] Ausdrücke einklammern, die man auch weglassen kann. Es gibt noch andere Formen, diese Syntax zu beschreiben. z.b. die Syntaxdiagramme, wie sie zur Beschreibung von Pascal verwendet werden. Hier werden Regeln in Form von graphischen Darstellungen verwendet. z.b. repeat statement until expression ; Hier bedeutet repeat in ovalen Kästchen: Zeichenkette als Terminalsymbol, rechteckiges Kästchen: ichtterminalsymbol. Die Pfeile bezeichnen erlaubte

6 Praktische Informatik 1, WS 2001/02, reguläre Ausdrücke und kontextfreie Grammatiken 6 Durchlaufrichtungen. Die BF hierfür wäre z.b. repeat-expr ::= repeat statements until expression statements ::= statement statement ; statements Verwendung von CFG zur Beschreibung einer Programmiersprache Offensichtlich kann eine Programmiersprache mehrere verschiedene CFG s haben. Deshalb muß man vorsichtig sein, wenn man Eigenschaften der Sprachen mit Hilfe von Eigenschaften (einer) der Grammatik definiert. Hierzu gehört die Mehrdeutigkeit einer Grammatik. Diese ist gegeben, wenn es zu einem Wort w mehr als einen Ableitungsbaum gibt. Da die Semantik einer Programmiersprache meist auf dem Ableitungsbaum aufsetzt, ergäbe dies keine eindeutige Beschreibung eines Algorithmus mittels des Programmtextes. Eine kontextfreie Sprache L heißt mehrdeutig (inhärent mehrdeutig), falls für alle CFG G mit L(G) = L gilt, daß G mehrdeutig ist. Hier besteht ein Zusammenhang mit der Frage, ob (und wie) man die Bedeutung von Worten einer formalen Sprache anhand einer CFG eindeutig festlegen kann. Pragmatisch gilt, daß die zulässigen Programme realer Programmiersprachen zunächst durch eine CFG erzeugt werden. Danach wird durch bestimmte Bedingungen die Menge der zulässige Programme weiter eingeschränkt. D.h. die Menge der zulässigen Programme ist eine Untermenge der durch eine CFG erzeugten. Diese Bedingungen sind i.a. Kontextbedingungen. Z.B. müssen Deklarationen von Variablen oft vor der Benutzung von Variablen gemacht werden, oder Ausdrücke müssen getypt sein (in Haskell). D.h. die CFG ist i.a. nur ein erster Schritt in der Definition der zulässigen Programme Ein einfaches und zugleich in einer Programmiersprache aufgetretenes Problem ist die Zuordnung des else falls das if-then-else ein optionales else hat (d.h.: else kann man weglassen): if b1 then if b2 then c1 else c2 kann auf zwei Arten interpretiert werden: if b1 then {if b2 then c1 else c2} if b1 then {if b2 then c1} else c2 Diese Interpretationen entsprechen gerade den zwei möglichen Syntaxbäumen zu diesem Ausdruck Ein analoges Problem tritt auf, wenn man die Sprache der arithmetischen Ausdrücke definiertdurch: A ::= Zahl V ariable A + A A A... denn der Ausdruck hat dann zwei mögliche Interpretationen: (1 2) 3 oder 1 (2 3)

7 Praktische Informatik 1, WS 2001/02, reguläre Ausdrücke und kontextfreie Grammatiken 7 2 otationen von Ausdrücken, Terme In arithmetischen Ausdrücken, in logischen Aussagen, und in Programmiersprachen notiert man geschachtelte Ausdrücke ist ein arithmetischer Ausdruck mit dem Wert 1. (T F ) T ist ein logischer Ausdruck mit dem Wert T. ( ) ist ein Ausdruck in einer Programmiersprache (Lisp) mit dem Wert 24. Bei diesen Ausdrücken ist darauf zu achten, dass die Syntax so strukturiert ist, dass die Semantik von Ausdrücken eindeutig bleibt. Das wesentliche Ziel bei der Erfindung und Benutzung von otationen ist es, zu erreichen, daß ein Ausdruck einen eindeutigen Wert hat. Andere Kriterien und Zwecke, die eine wesentliche und teilweise konkurrierende Rolle spielen sind: die otation muß gut leserlich sein und sollte möglichst wenig überflüssige Symbole enthalten. Eine Forderung kann auch sein, daß sie gut von einem Rechner verarbeitet werden kann. Schwierigkeiten die dabei entstehen sind: i) teilweise werden verschiedene Operatoren gleich bezeichnet, z.b. das minus- Zeichen in 1 2, oder ii) ein Operator hat variable Stelligkeit: ( ), oder iii) Operatoren nehmen verschiedene Positionen zu ihren Argumenten ein: (+ 1 2) oder 1 + 2, oder (IF A THE B ELSE C) bzw. IFTHEELSE(A, B, C) Verschiedene otationen werden im allgemeinen dadurch eindeutig, daß man eine Abbildung der otation auf Terme angibt, und dann erst einen Wert berechnet. Z.B könnte man 1 2 eindeutig auf den Term SUBTRACT(EGATE(1), 2) abbilden. Definition 2.2 otationen 1. In der Standardnotation werden Terme in der Form f(t 1,..., t n ) notiert, wobei zu beachten ist, daß f ein Symbol sein muß (d.h. kein Ausdruck sein darf). 2. In der Präfixnotation wird statt f(t 1,..., t n ) das Wort (f t 1... t n ) verwendet. Ein Grund für diese Verwendung liegt darin, daß es auch erlaubt ist, Terme für Operatoren einzusetzen, Operatoren an Argumentstellen zu verwenden, und Operatoren variabler Stelligkeit zu benutzen, und somit eine gemischte otation nicht so ohne weiteres eindeutig wird. 3. Eine Abwandlung der Präfixnotation ist die polnische otation, (Lukasiewicz-otation, polnische Präfixnotation), bei der im Gegensatz zur normalen Präfixnotation einfach alle Klammern weggelassen werden. Diese ist nur dann eindeutig möglich, wenn alle Operatoren Symbole sind, die Operatorensymbole eindeutig sind, und eine feste Stelligkeit haben. 4. Die Standardpostfixnotation. Hier wird statt f(t 1,..., t n ) das Wort (t 1,..., t n )f verwendet.

8 Praktische Informatik 1, WS 2001/02, reguläre Ausdrücke und kontextfreie Grammatiken 8 5. Die Postfixnotation (polnische Postfixnotation, reverse polish). Hier werden in der Standardpostfixnotation einfach alle Klammern weggelassen. Es gelten die gleichen Bemerkungen wie zur Präfixnotation. Diese otation hat eine Bedeutung in der Informatik, denn der Auswertungsalgorithmus für Terme läßt sich direkt mittels eines Kellers implementieren. In der Mathematik wird diese otation beispielsweise für die Fakultätsfunktion verwendet 3! = Die Infixnotation. Diese wird im allgemeinen nur für zweistellige Operatoren verwendet. Der Operator wird dann zwischen die Argumente geschrieben. z.b. (1 + 2). Auch hier gilt, daß die Operatoren Symbole sein sollten, damit eine eindeutige Auswertung möglich ist. 7. Will man otationsformen mischen und/oder möglichst wenige Klammern benutzen, und die Ausdrücke eindeutig lassen, so braucht man Konventionen und Prioritäten von Operatoren. Zum Beispiel ist der Ausdruck ( !) äquivalent zum Term ((1 + (2 3)) + (4!)). Hier hat man für die Prioritäten:! +. Der Term ( ) wird als ((1 + 2) 3) interpretiert nach der Konvention links vor rechts. Es gibt noch andere otationsformen, die wir hier nicht betrachten, zum Beispiel graphische, wie m n, f A, oder ().

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

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

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

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

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. 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder Programmieren in PASCAL Bäume 1 1. Baumstrukturen Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder 1. die leere Struktur oder 2. ein Knoten vom Typ Element

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

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

Übung zur Vorlesung Einführung in die Computerlinguistik und Sprachtechnologie

Übung zur Vorlesung Einführung in die Computerlinguistik und Sprachtechnologie Übung zur Vorlesung Einführung in die Computerlinguistik und Sprachtechnologie Wintersemester 2009/10, Prof. Dr. Udo Hahn, Erik Fäßler Übungsblatt 3 vom 19.11.2009 Abgabe bis 26.11.2009, 14:30 Uhr; per

Mehr

Terme stehen für Namen von Objekten des Diskursbereichs (Subjekte, Objekte des natürlichsprachlichen Satzes)

Terme stehen für Namen von Objekten des Diskursbereichs (Subjekte, Objekte des natürlichsprachlichen Satzes) Prädikatenlogik Man kann den natürlichsprachlichen Satz Die Sonne scheint. in der Prädikatenlogik beispielsweise als logisches Atom scheint(sonne) darstellen. In der Sprache der Prädikatenlogik werden

Mehr

Programmiersprachen und ihre Übersetzer. Syntaxorientierte Übersetzung

Programmiersprachen und ihre Übersetzer. Syntaxorientierte Übersetzung Folien zur Vorlesung Programmiersprachen und ihre Übersetzer Kapitel 3 Syntaxorientierte Übersetzung Faculty of Technology robert@techfak.uni-bielefeld.de May 27, 2013 Aufbau von Programmiersprachen Programmiersprachen

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

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

Compiler. Kapitel. Syntaktische Analyse. Kapitel 4. Folie: 1. Syntaktische Analyse. Autor: Aho et al.

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 σύνταξις

Mehr

Grammatiken in Prolog

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

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

Programmierung und Modellierung

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:

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

Binäre Suchbäume (binary search trees, kurz: bst)

Binäre Suchbäume (binary search trees, kurz: bst) Binäre Suchbäume (binary search trees, kurz: bst) Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer: Binärbaum T mit n := M Knoten Jeder Knoten v von T ist mit einer Zahl m v M markiert.

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

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

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

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

Ausarbeitung des Interpreter Referats

Ausarbeitung des Interpreter Referats Ausarbeitung des Interpreter Referats Gliederung 1. Programmiersprache 1.2. Syntax 1.2.1. Konkrete Syntax 1.2.2. Abstrakter Syntax Baum (Abstrakte Syntax) 2. Parser 2.1. Syntaktische Struktur einer Sprache

Mehr

Theoretische Informatik

Theoretische Informatik Theoretische Informatik - das Quiz zur Vorlesung Teil I - Grundzüge der Logik In der Logik geht es um... (A) die Formen korrekten Folgerns (B) die Unterscheidung von wahr und falsch (C) das Finden von

Mehr

5 Logische Programmierung

5 Logische Programmierung 5 Logische Programmierung Logik wird als Programmiersprache benutzt Der logische Ansatz zu Programmierung ist (sowie der funktionale) deklarativ; Programme können mit Hilfe zweier abstrakten, maschinen-unabhängigen

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 15.11.07 Bastian Molkenthin E-Mail: infotut@sunshine2k.de Web: http://infotut.sunshine2k.de Review / Organisatorisches o Probleme bei Foliendownload?

Mehr

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik Einführung in die Theoretische Informatik Woche 10 Harald Zankl Institut für Informatik @ UIBK Wintersemester 2014/2015 Zusammenfassung Zusammenfassung der letzten LV Satz Sei G = (V, Σ, R, S) eine kontextfreie

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

Formale Sprachen. Anwendungen formaler Sprachen Adressen, Kaffeeautomaten, Programmiersprachen. Rudolf Freund, Marian Kogler

Formale Sprachen. Anwendungen formaler Sprachen Adressen, Kaffeeautomaten, Programmiersprachen. Rudolf Freund, Marian Kogler Formale Sprachen Anwendungen formaler Sprachen Adressen, Kaffeeautomaten, Programmiersprachen Rudolf Freund, Marian Kogler (http://xkcd.com/208) Gültige Adressen: Favoritenstraße 9, 1040 Wien Reumannplatz

Mehr

Erwin Grüner 09.02.2006

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

Mehr

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können.

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können. 6. Bäume Lernziele 6. Bäume Lernziele: Definition und Eigenschaften binärer Bäume kennen, Traversierungsalgorithmen für binäre Bäume implementieren können, die Bedeutung von Suchbäumen für die effiziente

Mehr

4.2.4 Reguläre Grammatiken

4.2.4 Reguläre Grammatiken 4.2.4 Reguläre Grammatiken Eine reguläre Grammatik ist eine kontextfreie Grammatik, deren Produktionsregeln weiter eingeschränkt sind Linksreguläre Grammatik: A w P gilt: w = ε oder w = Ba mit a T und

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

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

Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen / Kontextfreie Sprachen und Kellerautomaten Inhalt 1 Einführung 2 Automatentheorie und Formale Sprachen Grammatiken Reguläre Sprachen und endliche Automaten Kontextfreie Sprachen und Kellerautomaten Kontextsensitive und Typ 0-Sprachen 3 Berechenbarkeitstheorie

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik Grundlagen der Theoretischen Informatik 3. Endliche Automaten (V) 21.05.2015 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Bis jetzt Determinierte endliche Automaten (DEAs) Indeterminierte

Mehr

Binäre Bäume Darstellung und Traversierung

Binäre Bäume Darstellung und Traversierung Binäre Bäume Darstellung und Traversierung Name Frank Bollwig Matrikel-Nr. 2770085 E-Mail fb641378@inf.tu-dresden.de Datum 15. November 2001 0. Vorbemerkungen... 3 1. Terminologie binärer Bäume... 4 2.

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

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 11: Wiederholung und Zusammenfassung

Kapitel 11: Wiederholung und Zusammenfassung Wiederholung und Zusammenfassung 1: Begriff und Grundprobleme der Informatik Begriff Informatik Computer als universelle Rechenmaschine Grenzen der Berechenbarkeit Digitalisierung Problem der Komplexität

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

floatchart Flußdiagramme in TEX/L A TEX

floatchart Flußdiagramme in TEX/L A TEX floatchart Flußdiagramme in TEX/L A TEX M. Schollmeyer 9. Februar 2006 floatchart sind eine Sammlung von Definitionen, die das Erstellen von Struktogrammen in TEX/L A TEX ermöglichen. Wenn man an L A TEX

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

368 4 Algorithmen und Datenstrukturen

368 4 Algorithmen und Datenstrukturen Kap04.fm Seite 368 Dienstag, 7. September 2010 1:51 13 368 4 Algorithmen und Datenstrukturen Java-Klassen Die ist die Klasse Object, ein Pfeil von Klasse A nach Klasse B bedeutet Bextends A, d.h. B ist

Mehr

Technische Informatik - Eine Einführung

Technische Informatik - Eine Einführung Martin-Luther-Universität Halle-Wittenberg Fachbereich Mathematik und Informatik Lehrstuhl für Technische Informatik Prof. P. Molitor Ausgabe: 2005-02-21 Abgabe: 2005-02-21 Technische Informatik - Eine

Mehr

Fakultät Wirtschaftswissenschaft

Fakultät Wirtschaftswissenschaft Fakultät Wirtschaftswissenschaft Matrikelnr. Name Vorname KLAUSUR: Entwurf und Implementierung von Informationssystemen (32561) TERMIN: 11.09.2013, 14.00 16.00 Uhr PRÜFER: Univ.-Prof. Dr. Stefan Strecker

Mehr

Kapitel 2: Formale Sprachen Gliederung

Kapitel 2: Formale Sprachen Gliederung Gliederung 0. Einleitung und Grundbegriffe 1. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie 2.1. Chomsky-Grammatiken 2.2. Reguläre Sprachen 2.3. Kontextfreie Sprachen

Mehr

Grundlagen und Basisalgorithmus

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

Mehr

Informatik II Bäume. Beispiele. G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de. Stammbaum. Stammbaum. Stammbaum

Informatik II Bäume. Beispiele. G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de. Stammbaum. Stammbaum. Stammbaum lausthal Beispiele Stammbaum Informatik II. Zachmann lausthal University, ermany zach@in.tu-clausthal.de. Zachmann Informatik - SS 06 Stammbaum Stammbaum / Parse tree, Rekursionsbaum Parse tree, Rekursionsbaum

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 3: Alphabete (und Relationen, Funktionen, Aussagenlogik) Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Oktober 2008 1/18 Überblick Alphabete ASCII Unicode

Mehr

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Inhalt dieser Einheit Variablen (Sinn und Aufgabe) Bezeichner Datentypen, Deklaration und Operationen Typenumwandlung (implizit/explizit) 2 Variablen

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

2. Lernen von Entscheidungsbäumen

2. Lernen von Entscheidungsbäumen 2. Lernen von Entscheidungsbäumen Entscheidungsbäume 2. Lernen von Entscheidungsbäumen Gegeben sei eine Menge von Objekten, die durch Attribut/Wert- Paare beschrieben sind. Jedes Objekt kann einer Klasse

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Datenstrukturen und Algorithmen VO 708.031 Bäume robert.legenstein@igi.tugraz.at 1 Inhalt der Vorlesung 1. Motivation, Einführung, Grundlagen 2. Algorithmische Grundprinzipien 3. Sortierverfahren 4. Halden

Mehr

Formale Sprachen und deren Grammatiken. Zusammenhang mit der Automatentheorie.

Formale Sprachen und deren Grammatiken. Zusammenhang mit der Automatentheorie. Formale Sprachen Formale Sprachen und deren Grammatiken. Zusammenhang mit der Automatentheorie. Inhaltsübersicht und Literatur Formale Sprachen: Definition und Darstellungen Grammatiken für formale Sprachen

Mehr

Aufgabentypen die in der Klausur vorkommen

Aufgabentypen die in der Klausur vorkommen Aufgabentypen die in der Klausur vorkommen können 1. Nennen Sie fünf wichtige Anwendungsgebiete der Computerlinguistik. 2. Für welches der drei Anwendungsgebiete Maschinelle Übersetzung, Rechtschreibkorrektur

Mehr

1. LPC - Lehmanns Programmier Contest - Lehmanns Logo

1. LPC - Lehmanns Programmier Contest - Lehmanns Logo Aufgabe ist die Entwicklung einer vereinfachten Variante der beliebten Programmiersprache Logo. Die Aufgabe ist in drei Stufen zu erledigen, von der wir zunächst nur die erste Stufe bekannt geben. Die

Mehr

Entwurf von Algorithmen - Kontrollstrukturen

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

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

Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer:

Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer: Binäre Suchbäume (binary search trees, kurz: bst) Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer: Binärbaum T mit n := M Knoten Jeder Knoten v von T ist mit einer Zahl m v M markiert.

Mehr

TEIL III: FORMALE SPRACHEN

TEIL III: FORMALE SPRACHEN EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK Prof. Dr. Klaus Ambos-Spies Sommersemester 2011 TEIL III: FORMALE SPRACHEN 16. TERMERSETZUNGSSYSTEME UND CHOMSKY-GRAMMATIKEN Theoretische Informatik (SoSe 2011)

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

Kapitel 5: Applikative Programmierung

Kapitel 5: Applikative Programmierung Kapitel 5: Applikative Programmierung In der applikativen Programmierung wird ein Programm als eine mathematische Funktion von Eingabe-in Ausgabewerte betrachtet. Das Ausführen eines Programms besteht

Mehr

Zahlensysteme: Oktal- und Hexadezimalsystem

Zahlensysteme: Oktal- und Hexadezimalsystem 20 Brückenkurs Die gebräuchlichste Bitfolge umfasst 8 Bits, sie deckt also 2 8 =256 Möglichkeiten ab, und wird ein Byte genannt. Zwei Bytes, also 16 Bits, bilden ein Wort, und 4 Bytes, also 32 Bits, formen

Mehr

Repräsentation von Daten Binärcodierung von rationalen Zahlen und Zeichen

Repräsentation von Daten Binärcodierung von rationalen Zahlen und Zeichen Kapitel 4: Repräsentation von Daten Binärcodierung von rationalen Zahlen und Zeichen Einführung in die Informatik Wintersemester 2007/08 Prof. Bernhard Jung Übersicht Codierung von rationalen Zahlen Konvertierung

Mehr

Zum Einsatz von Operatoren im Informatikunterricht

Zum Einsatz von Operatoren im Informatikunterricht Friedrich-Schiller-Universität Jena Fakultät für Mathematik und Informatik Professur für Didaktik der Informatik/Mathematik Claudia Strödter E-Mail: claudia.stroedter@uni-jena.de Zum Einsatz von Operatoren

Mehr

Compiler. Die unsichtbaren Diener Der Compiler und seine Artgenossen. Laszlo Böszörmenyi Compiler 1/ 22

Compiler. Die unsichtbaren Diener Der Compiler und seine Artgenossen. Laszlo Böszörmenyi Compiler 1/ 22 Compiler Die unsichtbaren Diener Der Compiler und seine Artgenossen Laszlo Böszörmenyi Compiler 1/ 22 Wozu Compiler? Eine der ältesten und grundlegendsten Technologien Compilertechnologie hat viele Anwendungsgebiete

Mehr

Ein erstes Java-Programm

Ein erstes Java-Programm Ein erstes Java-Programm public class Rechnung { public static void main (String [] arguments) { int x, y; x = 10; y = -1 + 23 * 33 + 3 * 7 * (5 + 6); System.out.print ("Das Resultat ist "); System.out.println

Mehr

VisualBasic - Variablen

VisualBasic - Variablen Typisch für alle Basic-Dialekte ist die Eigenschaft, dass Variablen eigentlich nicht deklariert werden müssen. Sobald Sie einen Bezeichner schreiben, der bisher nicht bekannt war, wird er automatisch angelegt

Mehr

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Zahlensysteme und Datendarstellung

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Zahlensysteme und Datendarstellung Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik Zahlensysteme und Datendarstellung Zahlensysteme Problem: Wie stellt man (große) Zahlen einfach, platzsparend und rechnergeeignet

Mehr

2. Kapitel LEXIKALISCHE ANALYSE. Compilerbau Prof. Dr. Wolfgang Schramm

2. Kapitel LEXIKALISCHE ANALYSE. Compilerbau Prof. Dr. Wolfgang Schramm 2. Kapitel LEXIKALISCHE ANALYSE Compilerbau Prof. Dr. Wolfgang Schramm Lexikalische Analyse (Scanner) 1/2 1 Aufgabe Erkennen von lexikalischen Elementen. Erstellung einer internen Darstellung für lexikalische

Mehr

Informatik A ( Frank Hoffmann)

Informatik A ( Frank Hoffmann) Teillösungen zum 1. Aufgabenblatt zur Vorlesung Informatik A ( Frank Hoffmann) 1. Improvisieren Stellen Sie die Zahl 6 dar durch einen Ausdruck, der genau dreimal die Ziffer i enthält und ansonsten neben

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

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

2 Einfache Rechnungen

2 Einfache Rechnungen 2 Einfache Rechnungen 2.1 Zahlen Computer, auch bekannt als Rechner, sind sinnvoller eingesetzt, wenn sie nicht nur feste Texte ausgeben, sondern eben auch rechnen. Um das Rechnen mit Zahlen zu verstehen,

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

Parser4Kids interaktive Lernumgebung

Parser4Kids interaktive Lernumgebung Parser4Kids interaktive Lernumgebung Parser4Kids vermittelt die grundlegende Funktionsweise eines Parsers auf eine intuitive und spielerische Art anhand des vereinfachten Modells eines Fertigbauhauses.

Mehr

Lehrstuhl Informatik VI Grundzüge der Informatik * WS 2008/2009 Prof. Dr. Joachim Biskup

Lehrstuhl Informatik VI Grundzüge der Informatik * WS 2008/2009 Prof. Dr. Joachim Biskup Universität Dortmund Lehrstuhl Informatik VI Grundzüge der Informatik * WS 28/29 Prof. Dr. Joachim Biskup Leitung der Übungen: Arno Pasternak Lösungs-Ideen Übungsblatt 6 A: Grammatiken, Syntaxdiagramme

Mehr

Noch für heute: primitive Datentypen in JAVA. Primitive Datentypen. Pseudocode. Dezimal-, Binär- und Hexadezimalsystem. der logische Typ boolean

Noch für heute: primitive Datentypen in JAVA. Primitive Datentypen. Pseudocode. Dezimal-, Binär- und Hexadezimalsystem. der logische Typ boolean 01.11.05 1 Noch für heute: 01.11.05 3 primitie Datentypen in JAVA Primitie Datentypen Pseudocode Name Speichergröße Wertgrenzen boolean 1 Byte false true char 2 Byte 0 65535 byte 1 Byte 128 127 short 2

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

Äquivalente Grammatiken / attributierte Grammatik

Äquivalente Grammatiken / attributierte Grammatik Äquivalente Grammatiken / attributierte Grammatik Linksfaktorisierung Elimination von Linksrekursion Umwandlung von EBNF in BNF Attributierte Grammatik Semantikfunktionen und Übersetzungsschema Synthetisierte,

Mehr

620.900 Propädeutikum zur Programmierung

620.900 Propädeutikum zur Programmierung 620.900 Propädeutikum zur Programmierung Andreas Bollin Institute für Informatik Systeme Universität Klagenfurt Andreas.Bollin@uni-klu.ac.at Tel: 0463 / 2700-3516 Lösung der Aufgaben (1/2) Lösung Aufgabe

Mehr