Compiler, Übersetzer. Allgemeine Erklärung / Definition

Save this PDF as:
 WORD  PNG  TXT  JPG

Größe: px
Ab Seite anzeigen:

Download "Compiler, Übersetzer. Allgemeine Erklärung / Definition"

Transkript

1 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: Welche Semantik? Beispiele LaTex-File, wird in ps- oder pdf-datei übersetzt Word-File, wird nach HTML übersetzt XSLT für XML-Dokumente Programme einer Programmiersprache werden nach C übersetzt. P raktische Informatik 2, SS 2005, F olien Kap.4, 1, (8. Juni2005) Seite 1

2 Compiler für Programmiersprachen Ein Übersetzer (Compiler) ist ein Programm, das ein S 1 -Wort das Quellprogramm in ein S 2 -Wort umwandelt das Zielprogramm mit äquivalenter (operationaler) Semantik. Beispiele Programme einer Programmiersprache: ( Haskell, Java, Python, PASCAL, Assembler) Werden übersetzt nach C, Assembler, oder Maschinenkode Die Ausführung soll korrekt sein! P raktische Informatik 2, SS 2005, F olien Kap.4, 1, (8. Juni2005) Seite 2

3 Typische Anwendungsfälle für Compiler: Haskell-Programm C Programm Assembler Compiler: S 1 -Programme S 2 -Programme dann S 2 Assembler P raktische Informatik 2, SS 2005, F olien Kap.4, 1, (8. Juni2005) Seite 3

4 Interpreter Ein Ein Interpreter ist ein Programm, das den Text eines Programms einliest und dann ausführt, i.a. ohne ein Programm in einer anderen Sprache zu erzeugen. Die operationale Semantik einer Programmiersprache entspricht der Spezifikation eines Interpreters. D.h. Erhaltung der Semantik: entspricht: kompiliertes und interpretiertes Programm sind nicht unterscheidbar (bis auf Effizienz) P raktische Informatik 2, SS 2005, F olien Kap.4, 1, (8. Juni2005) Seite 4

5 T-Diagramme Zweck der T-Diagramme: übersichtliches Zusammenbauen eines Compilers/Interpreters aus anderen T-Diagramm: Programm der Sprache S 1 -Programm S 2 -Programm Übersetzer ist S 3 -Programm Intp : S 3-Programme kann man ausführen. S 1 S 2 S 1 S 2 S 3 S 3 S 3 Intp P raktische Informatik 2, SS 2005, F olien Kap.4, 1, (8. Juni2005) Seite 5

6 Beispiel: Benutzung der T-Diagramme (1) Zusammensetzen von Compilern Übersetzung von S 1 nach S 2 und dann von S 2 nach S 3 : im Extremfall werden zwei verschiedene Interpreter benötigt S1 S2 S2 S3 S 4 S 5 S4 Intp S5 Intp P raktische Informatik 2, SS 2005, F olien Kap.4, 1, (8. Juni2005) Seite 6

7 Beispiel: Benutzung der T-Diagramme (2) Zusammensetzen zweier Compiler Man hat Interpreter für S 5, S 6, einen S 4 -Übersetzer von S 1 nach S 2, einen S 6 -Übersetzer von S 4 nach S 5, keinen Interpreter für S 4. Konstruktion eines S 5 -Übersetzer von S 1 nach S 2 das rechteste T-Diagramm ist der resultierende Compiler S1 S2 S1 S2 S4 S4 S5 S5 S6 S5 Intp S6 Intp Die S i müssen nicht alle verschieden sein P raktische Informatik 2, SS 2005, F olien Kap.4, 1, (8. Juni2005) Seite 7

8 Beispiel: Benutzung der T-Diagramme: Bootstrapping Anwendung: Konstruktion einer (eigenen) Programmiersprache der zugehörige Compiler soll schon in dieser Programmiersprache P geschrieben sein Schritt 1: Schritt 2 Schritt 3 Interpreter/Compiler für einen möglichst kleinen Ausschnitt P CORE in einer gängigen Programmiersprache, Compiler (Transformation) von P L P CORE, geschrieben in P CORE Compiler (Transformation) von P XXL P L, geschrieben in P L (Bootstrapping: wie man sich selbst aus dem Sumpf zieht) P raktische Informatik 2, SS 2005, F olien Kap.4, 1, (8. Juni2005) Seite 8

9 T-Diagramme zu Bootstrapping PL P COR PL P COR P COR C P COR P COR C C C C C Intp C Intp C Intp Resultat P L C C C Intp P raktische Informatik 2, SS 2005, F olien Kap.4, 1, (8. Juni2005) Seite 9

10 T-Diagramme zu Bootstrapping (2) Darauf aufbauend, kann man weiter konstruieren: P XXL P L P XXL P L P L C P L P L C C C C C Intp C Intp C Intp P raktische Informatik 2, SS 2005, F olien Kap.4, 1, (8. Juni2005) Seite 10

11 Formen einer Semantik operationale Semantik: Effekt der Anweisungen als Ausgabe oder im Hauptspeicher. denotationale Semantik: mathematische Bedeutung der Programmkonstrukte. axiomatische Semantik: Logischen Eigenschaften der Programmkonstrukte. Prädikatenlogik / axiomatische Beschreibung der operationalen Semantik (z.b. Axiome von Hoare und Dijkstra) transformationelle Semantik Transformationsregeln in andere Programmkonstrukte. P raktische Informatik 2, SS 2005, F olien Kap.4, 1, (8. Juni2005) Seite 11

12 Anwendungen des Übersetzens Compiler für höhere Programmiersprachen: Haskell, Java, Lisp, PASCAL, PROLOG, Python, C, Ada, Assemblersprache Maschinenkode operationale Semantik des Prozessors (der Maschinenbefehle) Prozessorspezifisch Da es eine operationale Semantik der Maschinenbefehle des Prozessors gibt, kann man einen Interpreter dazu auf einem anderen Prozessor implementieren, Emulation P raktische Informatik 2, SS 2005, F olien Kap.4, 1, (8. Juni2005) Seite 12

13 Weitere Anwendungen der Übersetzung Textverarbeitungssprachen, z.b. die Sprache von TeX bzw. LaTeX. Datenaustauschformaten, z.b. EDIF (Electronic Data Interchange Format) Hardwarebeschreibungssprachen, z.b. VHDL (Hardware Description Language) VHSIC: Very High-Speed Integrated Circuit Analysieren und Ausführen von Kommandosprachen usw. P raktische Informatik 2, SS 2005, F olien Kap.4, 1, (8. Juni2005) Seite 13

14 Phasen eines Compilers Lexikalische Analyse (Scanning): IF 13 == X1 THEN A wird zu: ( IF, 13, ==, X1, THEN, A ) Syntaxanalyse(parsing): IF 13 == X1 THEN A Semantische Analyse Typ-check, Kontextprüfung (z.b. Deklaration vor Verwendung) Zwischencode-Erzeugung: Code für abstrakte Maschine Codeoptimierung: Verbesserung des Zwischencodes. Code-Erzeugung: Programm (i.a. Assembler) für reale Maschine P raktische Informatik 2, SS 2005, F olien Kap.4, 1, (8. Juni2005) Seite 14

15 Weitere mögliche Komponenten/ Phasen Einleseroutine Zeichenbehandlung. Es gibt Standards der Zeichenkodierung Präprozessor Expansion / Modifikation des Quellprogramms Assembler übersetzt das Assemblerprogramm in Objektcode. Binder/Lader Umsetzung in ausführbaren Maschinenkode plus Hinzunahme von anderem Objektcode z.b aus Bibliothek P raktische Informatik 2, SS 2005, F olien Kap.4, 1, (8. Juni2005) Seite 15

16 Komponenten zu alle Phasen die Symboltabelle Datenstruktur: wesentlichen Attribute: Typ, Gültigkeitsbereich, Wert,... ) der Bezeichner eines Quellprogramms die Fehlerbehandlung Fehleranalyse, Fehlermeldung, Lokalisierung des Fehlers. Eventuelle automatische Reparatur und Fortsetzung der Übersetzung. P raktische Informatik 2, SS 2005, F olien Kap.4, 1, (8. Juni2005) Seite 16

17 Front-End / Back-End Zur Unterstützung der Portierbarkeit: Aufteilung in Front-End und Back-End: Front-End: maschinenunabhängiger Teil (z.b. Syntaxanalyse, lexikalische Analyse, Typüberprüfung, Zwischencode-Erzeugung, Zwischencode-Optimierung). Back-End: maschinenspezifischer Teil (z. B. I/O, Codegenerierung) P raktische Informatik 2, SS 2005, F olien Kap.4, 1, (8. Juni2005) Seite 17

18 Programmiersprache: Syntax Fragestellung: Mit welchem Mechanismus beschreibt man gültige S-Programme? Akzeptiertes (und erfolgreiches) Vorgehen der Informatik: gültige S-Programme (als Text) sind Worte einer formalen Sprache L S Beschreibung einer Obermenge L(G) der formalen Sprache L S mittels einer kontextfreien Grammatik (CFG) G Weitere Einschränkung von L(G) (durch Bedingungen) ergibt L S. P raktische Informatik 2, SS 2005, F olien Kap.4, 1, (8. Juni2005) Seite 18

19 Andere Möglichkeiten der Beschreibung formaler Sprachen reguläre Ausdrücke kontextfreie Grammatik Syntaxdiagramme kontextsensitive Grammatik Schreiben eines Programms, das alle Wörter erzeugt Schreiben eines Programms, das alle Wörter erkennt P raktische Informatik 2, SS 2005, F olien Kap.4, 1, (8. Juni2005) Seite 19

20 Kontextfreie Grammatik (CFG) 4-Tupel G = (N, T, P, σ) mit 1 N: endliche Menge von Hilfszeichen (Nonterminals) 2 T endliche Menge von Terminalzeichen (Terminals), wobei N T =. 3 P N (N T ) endliche Menge von Regeln (Produktionen) 4 σ N ist Startzeichen Regeln schreibt man auch A w oder A ::= w. Erzeugte Sprache L(G) = erreichbare Worte über T. P raktische Informatik 2, SS 2005, F olien Kap.4, 1, (8. Juni2005) Seite 20

21 Allgemeine Grammatiken erlauben beliebige Strings in (N T ) als linke Seite einer Regel. unbeschränkte Grammatik bzw. Semi-Thue-Systeme kontextsensitiv, wenn für alle Regeln: a w nur wenn a w P raktische Informatik 2, SS 2005, F olien Kap.4, 1, (8. Juni2005) Seite 21

22 Beispiel- CFG für Ausdruck Die Schreibweise ist eine EBNF (extended BNF). Beispiel: Die AZ-Grammatik A ::= A + Z A - Z Z Z ::= P raktische Informatik 2, SS 2005, F olien Kap.4, 1, (8. Juni2005) Seite 22

23 Herleitungen Definition Sei (G = N, T, P, σ) gegeben v v (direkt hergeleitet) gdw. v = αaβ und v = αwβ, und A ::= w eine Regel in G ist. v 1 v n (v n ist aus v 1 herleitbar) gdw. v 2,..., v n 1 (T N), so dass v 1 v 2... v n 1 v n P raktische Informatik 2, SS 2005, F olien Kap.4, 1, (8. Juni2005) Seite 23

24 Herleitungen; Sprache zu G Die erzeugte Sprache L(G) zur Grammatik G ist die Menge der Strings w aus Terminalsymbolen, die aus dem Startsymbol σ hergeleitet werden können: L(G) := {w T σ w} P raktische Informatik 2, SS 2005, F olien Kap.4, 1, (8. Juni2005) Seite 24

25 Beispiel: AZ-Grammatik zu Ausdruck A ::= A+Z A-Z Z Z ::= Startsymbol: A, Nichtterminalsymbole: A, Z Terminalsymbole: {0,..., 9, +, }. Eine Beispiel-Herleitung: A A+Z Z+Z 1+Z 1+2. Somit gilt: A 1+2 Also: 1+2 L(G) P raktische Informatik 2, SS 2005, F olien Kap.4, 1, (8. Juni2005) Seite 25

26 Rechts- und Linksherleitungen Linksherleitung: Rechtsherleitung: Ersetze stets das linkeste Nichtterminal Ersetze stets das rechteste Nichtterminal Die AA-Grammatik: A ::= A+A A ::= A - A A ::= Linksherleitung: A A+A 1+A 1+2 Rechtsherleitung: A A+A A P raktische Informatik 2, SS 2005, F olien Kap.4, 1, (8. Juni2005) Seite 26

27 Herleitungsbaum, Parse-Baum Definition Sei G = (N, T, P, σ) eine kontextfreie Grammatik. Ein Herleitungsbaum, (Parse-Baum) eines Wortes w ist ein markierter Baum, so dass folgendes gilt: 1 Jeder Knoten ist mit einem Element aus {ε} N T markiert. 2 Die Wurzel ist mit σ markiert. 3 Innere Knoten sind mit Nichtterminalen markiert. 4 Wenn ein Knoten die Markierung A (ein Nichtterminal) hat und seine Töchter die Markierungen X 1,..., X k (in dieser Reihenfolge), dann ist A ::= X 1... X k eine Regel in P. 5 frontier(b) = w. D.h. das an den Blättern von links nach rechts repräsentierte Wort ist genau w. P raktische Informatik 2, SS 2005, F olien Kap.4, 1, (8. Juni2005) Seite 27

28 Es gilt: Eigenschaften von Herleitungsbäumen zu jeder Herleitung eines Wortes gibt es einen zugehörigen Herleitungsbaum. Ein Herleitungsbaum fasst i.a. mehrere Herleitungen eines Wortes der Sprache aus dem Startsymbol zusammen. Jeder mögliche Durchlauf der Knoten, der Väter vor den Söhnen durchläuft, entspricht einer Herleitung. Zu jedem Herleitungsbaum gibt es genau eine Rechtsherleitung und genau eine Linksherleitung. Meist wird die Bedeutung (oder die Übersetzung) eines Programms anhand des Herleitungsbaumes festgelegt. P raktische Informatik 2, SS 2005, F olien Kap.4, 1, (8. Juni2005) Seite 28

29 Herleitungsbäume Beispiel zu AA-Grammatik A ::= A+A A ::= A - A A ::= Zwei verschiedene Herleitungsbäume für sind: A A - A 1 A + A 2 3 A A + A - A 1 2 A 3 P raktische Informatik 2, SS 2005, F olien Kap.4, 1, (8. Juni2005) Seite 29

30 Eindeutigkeit einer CFG Definition Eine kontextfreie Grammatik G heißt eindeutig, wenn für alle w L(G) genau ein Herleitungsbaum existiert. Andernfalls heißt die Grammatik mehrdeutig. In einer eindeutigen Grammatik gibt es für jedes Wort in L(G) genau eine Rechts-Herleitung und genau eine Links-Herleitung P raktische Informatik 2, SS 2005, F olien Kap.4, 1, (8. Juni2005) Seite 30

31 Beispiel zu äquivalenten Grammatiken Die AA-Grammatik ist äquivalent zur AZ-Grammatik Die Sprachen L(G AA ) = L(G AZ ) enthalten genau die Worte: z 1 op 1 z 2... op n z n+1 mit z i {1, 2, 3, 4, 5, 6, 7, 8, 9, 0} und op i {+, -} Aber: haben verschiedene Herleitungsbäume. P raktische Informatik 2, SS 2005, F olien Kap.4, 1, (8. Juni2005) Seite 31

32 A ::= A+Z A ::= A-Z A ::= Z Z ::= Eindeutige CFG zu A Der einzige (d.h eindeutige) Herleitungsbaum für ist: A A + Z A - Z 3 Z 2 1 P raktische Informatik 2, SS 2005, F olien Kap.4, 1, (8. Juni2005) Seite 32

33 Eindeutige CFG zu Ausdruck A A + Z A - Z 3 Z 2 1 Die (eindeutige) Links-Herleitung kann man am Syntaxbaum ablesen: A A+Z A-Z+Z Z-Z+Z 1-Z+Z 1-2+Z P raktische Informatik 2, SS 2005, F olien Kap.4, 1, (8. Juni2005) Seite 33

34 Syntaxbäume statt Herleitungsbäume Beispiele: IfThenElse IF a THEN b ELSE c a b c P raktische Informatik 2, SS 2005, F olien Kap.4, 1, (8. Juni2005) Seite 34

35 Semantikfestlegung Semantik eines Wortes wird festgelegt mittels Parsebaum / Syntaxbaum Mehrdeutige Grammatik entspricht i.a. mehrdeutiger (d.h. undefinierter) Semantik Reparatur: Erzeuge äquivalente eindeutige Grammatik Äquivalent bzgl L(.) reicht nicht aus für äquivalente Semantik P raktische Informatik 2, SS 2005, F olien Kap.4, 1, (8. Juni2005) Seite 35

36 Grammatiktransformation Seien G 1, G 2 eindeutige Grammatiken. Grammatiktransformation G 1 G 2 mit L(G 1 ) = L(G 2 ) I.a.: Parsebaum 1 (w) Parsebaum 2 (w) Erforderlich: Erhaltung der Semantik: Parsebaum 1 (w) G1 Interpreteraktion(w) Parsebaum 2 (w) G2 Interpreteraktion(w) Diese Semantiktransformation wird leider oft ad-hoc von Hand ausgeführt. P raktische Informatik 2, SS 2005, F olien Kap.4, 1, (8. Juni2005) Seite 36

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

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

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

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

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

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

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

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

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

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

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

Syntaktische Analyse (Parsen)

Syntaktische Analyse (Parsen) Syntaktische Analyse (Parsen) Gegeben: eine kontextfreie Grammatik G und ein String w. Fragen: Vorgehen: gehört w zu L(G)? Welche Bedeutung hat w? Konstruiere Herleitungsbaum zu w P raktische Informatik

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

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

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

Struktur und Implementierung von Programmiersprachen I. (Compilerbau) SS 2006

Struktur und Implementierung von Programmiersprachen I. (Compilerbau) SS 2006 Struktur und Implementierung von Programmiersprachen I (Compilerbau) SS 2006 http://infosun.fmi.uni-passau.de /cl/passau/sips2006/index.html Vorlesung und Übung: Dr. Christoph Herrmann 1/1 Einordnung im

Mehr

Modellierung und Programmierung 1

Modellierung und Programmierung 1 Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 21. Oktober 2015 Automat versus Computer Ein Automat ist eine Maschine,

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

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 Systemprogrammierung

Einführung in die Systemprogrammierung Einführung in die Systemprogrammierung Sprachen und Übersetzer Prof. Dr. Christoph Reichenbach Fachbereich 12 / Institut für Informatik 4. Juni 2015 Sprachen vs. Übersetzer Sprache C11 Übersetzer GNU C

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

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

Übersetzergenerierung mit lex und yacc

Übersetzergenerierung mit lex und yacc Übersetzergenerierung mit lex und yacc 0. Überblick und Organisatorisches Jan Bredereke SoSe 2004, Universität Bremen otivation Übersetzer: Grundlegende Werkzeuge welche Fehler kann er finden? Konstrukt

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

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

Semantik von Programmiersprachen

Semantik von Programmiersprachen Semantik von Programmiersprachen 1. Einführung Werner Struckmann Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Sommersemester 2013 1. Einführung 1.1 Sprachen und

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 5 Compilerbau 5.1 Einführung Ein Compiler (Übersetzer) ist ein Computerprogramm, das ein in einer Quellsprache geschriebenes Programm (Quellprogramm)

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

4 Ausklang. ALP 2, Hannes Federrath, Sommersemester 2001

4 Ausklang. ALP 2, Hannes Federrath, Sommersemester 2001 ALP 2, Hannes Federrath, Sommersemester 2001 4 Ausklang Inhalt des Kapitels im Überblick: In diesem Kapitel sollen zum Ausklang der Vorlesung folgende Schwerpunkte behandelt werden: Software-Entwicklungsprozess

Mehr

Einleitung und Begriffliches. Einleitung. Programmiersprachen. Software-Komplexität ist inhärent und hat vor allem folgende Ursachen

Einleitung und Begriffliches. Einleitung. Programmiersprachen. Software-Komplexität ist inhärent und hat vor allem folgende Ursachen Einleitung Einleitung und Begriffliches Software-Komplexität ist inhärent und hat vor allem folgende Ursachen Komplexität des gegebenen Problems Schwierigkeiten beim Management des Entwicklungsprozesses

Mehr

Programmieren für Fortgeschrittene

Programmieren für Fortgeschrittene Programmieren für Fortgeschrittene 1. Einführung Werner Struckmann Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Wintersemester 2013/2014 1. Einführung 1.1 Sprachen

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

Grundlagen der Informatik III Wintersemester 2010/2011 22. Vorlesung Dr.-Ing. Wolfgang Heenes

Grundlagen der Informatik III Wintersemester 2010/2011 22. Vorlesung Dr.-Ing. Wolfgang Heenes Grundlagen der Informatik III Wintersemester 2010/2011 22. Vorlesung Dr.-Ing. Wolfgang Heenes int main() { printf("hello, world!"); return 0; } msg: main:.data.asciiz "Hello, world!".text.globl main la

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

Compiler und Codegenerierung. Hw-Sw-Co-Design

Compiler und Codegenerierung. Hw-Sw-Co-Design Compiler und Codegenerierung Hw-Sw-Co-Design Wo sind wir? System Verhalten Modul Architektur Block SW HW Logik Struktur Compiler und Codegenerierung Compiler - Aufbau Codegenerierung Codeoptimierung Codegenerierung

Mehr

2 Grundlagen der Programmierung

2 Grundlagen der Programmierung 2 Grundlagen der Programmierung In diesem Kapitel bereiten wir die Grundlagen für ein systematisches Programmieren. Wichtigstes Ziel ist dabei die Herausarbeitung der fundamentalen Konzepte von Programmiersprache.

Mehr

Kode-Erzeugung, Abstrakte Maschinen, Rechnerarchitekturen

Kode-Erzeugung, Abstrakte Maschinen, Rechnerarchitekturen Kode-Erzeugung, Abstrakte Maschinen, Rechnerarchitekturen Kode-Erzeugung: Syntaxbaum Ausgabeprogramm Starte mit Syntaxbaum: Darstellung des eingegebenen Programms Wähle Zielarchitektur Wähle abstrakte

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

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

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

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

den Einsatz von generierenden Werkzeugen und Theorien und von Software-Engineering-Methoden

den Einsatz von generierenden Werkzeugen und Theorien und von Software-Engineering-Methoden U- Übersetzer Vorlesung WS /8 Uwe Kastens Ziele: grundlegende Verfahren der Sprachimplementierung erlernen den Einsatz von generierenden Werkzeugen und von Standardverfahren kennen und schätzen lernen

Mehr

2. Syntax. Themen dieses Kapitels:

2. Syntax. Themen dieses Kapitels: 2. Syntax GPS-2-1 Themen dieses Kapitels: 2.1 Grundsymbole 2.2 Kontext-freie Grammatiken Schema für Ausdrucksgrammatiken Erweiterte Notationen für kontext-freie Grammatiken Entwurf einfacher Grammatiken

Mehr

Formale Sprachen. Der Unterschied zwischen Grammatiken und Sprachen. Rudolf Freund, Marian Kogler

Formale Sprachen. Der Unterschied zwischen Grammatiken und Sprachen. Rudolf Freund, Marian Kogler Formale Sprachen Der Unterschied zwischen Grammatiken und Sprachen Rudolf Freund, Marian Kogler Es gibt reguläre Sprachen, die nicht von einer nichtregulären kontextfreien Grammatik erzeugt werden können.

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

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

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 1. Einführung und Grundbegriffe

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 1. Einführung und Grundbegriffe 1 Kapitel 1 2 Ziele Begriffsbildungen: Informatik, Algorithmus, Programm, Compiler, Einordnung von Java Ein einfaches Java-Programm erstellen, übersetzen und ausführen Java-Programme dokumentieren 3 Informatik

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

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

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

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

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

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

3. Grundregeln für die Java-Programmierung

3. Grundregeln für die Java-Programmierung 3. Grundregeln für die Java-Programmierung Sprachaufbau von Java Programmen Stilistische Konventionen JavaDoc Allgemeine Informatik 2 SS09 Folie 2.1 Allgemeine Vorbemerkung Bei Programmiersprachen sind

Mehr

1. Einführung Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi

1. Einführung Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi 1. Einführung Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Einführung in

Mehr

Programmiertechnik. Prof. Dr. Oliver Haase Raum G124 haase@htwg-konstanz.de Tel: 07531/206-150. Oliver Haase Hochschule Konstanz 1

Programmiertechnik. Prof. Dr. Oliver Haase Raum G124 haase@htwg-konstanz.de Tel: 07531/206-150. Oliver Haase Hochschule Konstanz 1 Programmiertechnik Prof. Dr. Oliver Haase Raum G124 haase@htwg-konstanz.de Tel: 07531/206-150 Oliver Haase Hochschule Konstanz 1 Organisatorisches Vorlesung: montags, 8:00 9:30h, Raum C-109 freitags, 8:00

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

Mehr

Beispiel einer Übersetzung

Beispiel einer Übersetzung Beispiel einer Übersetzung Ausdruck in C aktuelle_zeit = Startzeit + vergangene_minuten*60 + vergangene_sekunden; Ausdruck im Instruktionssatz des R10000 LW r1,minuten LW r1,sekunden ADDI r2,r0,60 ADD

Mehr

Compilerbau. Vorlesungsskript. Prof. Dr. Ursula Goltz Dr. Thomas Gehrke Dipl.-Inform. Malte Lochau. 11. Mai 2010

Compilerbau. Vorlesungsskript. Prof. Dr. Ursula Goltz Dr. Thomas Gehrke Dipl.-Inform. Malte Lochau. 11. Mai 2010 TECHNISCHE UNIVERSITÄT CAROLO-WILHELMINA ZU BRAUNSCHWEIG Vorlesungsskript Compilerbau Prof. Dr. Ursula Goltz Dr. Thomas Gehrke Dipl.-Inform. Malte Lochau 11. Mai 2010 Institut für Programmierung und Reaktive

Mehr

Definition von domänenspezifischen Sprachen mit Xtext: Einführung. 19. November 2014

Definition von domänenspezifischen Sprachen mit Xtext: Einführung. 19. November 2014 Definition von domänenspezifischen Sprachen mit Xtext: Einführung 19. November 2014 Überblick Was ist zu tun, wenn wir selbst einen Ansatz für modellgetriebenen Entwicklung definieren wollen? Anforderungserfassung

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

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

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

ABITURPRÜFUNG 2009 LEISTUNGSFACH INFORMATIK

ABITURPRÜFUNG 2009 LEISTUNGSFACH INFORMATIK ABITURPRÜFUNG 2009 LEISTUNGSFACH INFORMATIK (HAUPTTERMIN) Bearbeitungszeit: 270 Minuten Hilfsmittel: Wörterbuch zur deutschen Rechtschreibung Taschenrechner (nicht programmierbar, nicht grafikfähig) (Schüler,

Mehr

EIN VERFAHREN ZUR STRUKTUR- UND VERHALTENSANALYSE VON UML-MODELLEN DURCH ATTRIBUTE

EIN VERFAHREN ZUR STRUKTUR- UND VERHALTENSANALYSE VON UML-MODELLEN DURCH ATTRIBUTE EIN VERFAHREN ZUR STRUKTUR- UND VERHALTENSANALYSE VON UML-MODELLEN DURCH ATTRIBUTE Christian Saad TR 2008-17 (basierend auf der Diplomarbeit von Christian Saad) August 2008 Universität Augsburg Institut

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

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

Literale und Spezialsymbole

Literale und Spezialsymbole 2. Syntax GPS-2-1 Themen dieses Kapitels: 2.1 Grundsymbole 2.2 Kontext-freie Grammatiken Schema für Ausdrucksgrammatiken Erweiterte Notationen für kontext-freie Grammatiken Entwurf einfacher Grammatiken

Mehr

Fachseminar WS 2008/09

Fachseminar WS 2008/09 Fachseminar WS 2008/09 Fachgebiet: Compilerbau Thema: Lexikalische Analyse (Scanner) Referent: Ali Sediq Betreuer: Prof. Dr. Helmut Weber 1 Inhaltsverzeichnis Lexikalische Analyse 1.0 Grundprobleme der

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

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

Programmierung 2. Übersetzer: Code-Erzeugung. Sebastian Hack. Klaas Boesche. Sommersemester 2012. hack@cs.uni-saarland.de. boesche@cs.uni-saarland.

Programmierung 2. Übersetzer: Code-Erzeugung. Sebastian Hack. Klaas Boesche. Sommersemester 2012. hack@cs.uni-saarland.de. boesche@cs.uni-saarland. 1 Programmierung 2 Übersetzer: Code-Erzeugung Sebastian Hack hack@cs.uni-saarland.de Klaas Boesche boesche@cs.uni-saarland.de Sommersemester 2012 Bytecodes Der Java Übersetzer erzeugt keine Maschinensprache

Mehr

Grammatiken und die Chomsky-Hierarchie

Grammatiken und die Chomsky-Hierarchie Grammatiken und die Chomsky-Hierarchie Def.: Eine Grammatik G=(Σ,V,S,R) besteht aus endlichem Alphabet Σ endlicher Variablenmenge V mit V Σ= Startsymbol SєV endlicher Menge R с (V Σ) + x(v Σ)* von Ableitungsregeln

Mehr

Der Computer von Neumann

Der Computer von Neumann 1. Einführung Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)!Aufbau eines Computers!Systemumgebung!Vorgang des Programmierens!Editor, Debugger, Linker!Programmiersprachen - Geschichte Copyright:

Mehr

Beispiele: (Funktionen auf Listen) (3) Bemerkungen: Die Datenstrukturen der Paare (2) Die Datenstrukturen der Paare

Beispiele: (Funktionen auf Listen) (3) Bemerkungen: Die Datenstrukturen der Paare (2) Die Datenstrukturen der Paare Beispiele: (Funktionen auf Listen) (3) Bemerkungen: 5. Zusammenhängen der Elemente einer Liste von Listen: concat :: [[a]] -> [a] concat xl = if null xl then [] else append (head xl) ( concat (tail xl))

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

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

Einführung ins Programmieren

Einführung ins Programmieren Einführung ins Programmieren Prof. Dr. Markus Gross Informatik I für D-MAVT (FS 2015) Aufbau eines Computers Systemumgebung Vorgang des Programmierens Editor, Debugger, Linker Programmiersprachen - Geschichte

Mehr

Kapitel 4. Einführung in den Scannergenerator Flex. Einführung in den Scannergenerator Flex Wintersemester 2008/09 1 / 9

Kapitel 4. Einführung in den Scannergenerator Flex. Einführung in den Scannergenerator Flex Wintersemester 2008/09 1 / 9 Kapitel 4 Einführung in den Scannergenerator Flex Einführung in den Scannergenerator Flex Wintersemester 2008/09 1 / 9 Generatoren für die lexikalische Analyse Scannergeneratoren werden eingesetzt um die

Mehr

Programmiersprachen und ihre Übersetzer

Programmiersprachen und ihre Übersetzer Folien zur Vorlesung Programmiersprachen und ihre Übersetzer Kapitel 1 Faculty of Technology robert@techfak.uni-bielefeld.de April 8, 2014 Ziele der Vorlesung Die Vorlesung will einen Einblick geben in

Mehr

Einführung in den Compilerbau

Einführung in den Compilerbau Einführung in den Compilerbau Überblick und Einleitung Dr. Armin Wolf 1. Vorlesung SoSe 2010, Universität Potsdam 1 Organisatorisches Ablage von Unterlagen (Folien,Literatur etc.) unter der URL http://www.constraint-programming.de/compilerbaupotsdamsose2010/

Mehr

1 ÜBERSETZER. Compilerbau 1

1 ÜBERSETZER. Compilerbau 1 1 ÜBERSETZER 1 A.V.Aho, J.D.Ullmann: Principles of Compiler Design, Addison Wesley (1977) J.Amsterdam: Building a computer in Software, BYTE (Okt. 1985) Programming Project: A SIMPL Compiler, BYTE (Dez.

Mehr

Programmierkurs Python I

Programmierkurs Python I Programmierkurs Python I Michaela Regneri 2009-10-30 (Folien basieren auf dem gemeinsamen Kurs mit Stefan Thater, der für diese Vorlesung auf Alexander Kollers Java-Kurs basierte) Organisatorisches Wöchentliche

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

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

Handout zur Vorlesung DBSP PHP I Unit 4 DBSP. Unit PHP I. Programmierparadigma Grundlegende Elemente eines PHP Programms (I)

Handout zur Vorlesung DBSP PHP I Unit 4 DBSP. Unit PHP I. Programmierparadigma Grundlegende Elemente eines PHP Programms (I) Handout zur Vorlesung Vorlesung DBSP Unit PHP I Programmierparadigma Grundlegende Elemente eines PHP Programms (I) 1 Prof. Dr. rer. nat. Nane Kratzke Praktische Informatik und betriebliche Informationssysteme

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

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

VBA-Programmierung: Zusammenfassung

VBA-Programmierung: Zusammenfassung VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung

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

Einführung in die Programmierung WS 2014/15. 2. Algorithmus, Berechenbarkeit und Programmiersprachen 2-1

Einführung in die Programmierung WS 2014/15. 2. Algorithmus, Berechenbarkeit und Programmiersprachen 2-1 Einführung in die Programmierung WS 2014/15 2. Algorithmus, Berechenbarkeit und Programmiersprachen 2-1 2. Alg., Ber. & PS Inhalt 1. Algorithmen 2. Programmiersprachen Algorithmus und Programm(iersprache)

Mehr

Einführung in die Programmierung mit Java

Einführung in die Programmierung mit Java Einführung in die Programmierung mit Martin Wirsing 2 Ziele Begriffsbildungen: Informatik, Algorithmus, Programm... Warum als Programmiersprache verwenden? Ein einfaches -Programm erstellen, übersetzen

Mehr

Programmierung in Python

Programmierung in Python Programmierung in Python imperativ, objekt-orientiert dynamische Typisierung rapid prototyping Script-Sprache Funktionales und rekursives Programmieren P raktische Informatik 1, W S 2004/05, F olien P

Mehr

2. Vorlesung. Slide 40

2. Vorlesung. Slide 40 2. Vorlesung Slide 40 Knobelaufgabe Was tut dieses Programm? Informell Formal Wie stellt man dies sicher? knobel(a,b) { Wenn a = 0 dann return b sonst { solange b 0 wenn a > b dann { a := a - b sonst b

Mehr