Anmerkung des Autor Diese Präsentation ist mit Powerpoint für MacOS erstellt. Leider ist sie nicht vollständig mit Powerpoint für Windows kompatibel.

Slides:



Advertisements
Ähnliche Präsentationen
Vorlesung Compilertechnik Sommersemester 2008
Advertisements

Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Frame-Logik Eine Einführung Andreas Glausch.
Institut für Informatik Abt. Intelligente Systeme
8. Formale Sprachen und Grammatiken
Puck eine visuelle Programmiersprache für die Schule
Imperative Programmierung
Einführung in Berechenbarkeit und Formale Sprachen
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Notationen A = ist eine endliche, nichtleere menge,
Einige entscheidbare bzw. rekursiv aufzählbare Sprachen
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Grammatiken beschreiben Sprachen L µ *, indem.
Programmiertechniken: Zustand fungiert als „endlicher Speicher“
Kapitel 4 Syntaktische Analyse: LR Parsing.
Parser generieren Yet Another Compiler – Compiler YACC.
FH-Hof Einbindung von JavaScript Anweisungen
FH-Hof Grammatiken Richard Göbel. FH-Hof Begriffe Eine Grammatik definiert die Struktur (Syntax) einer Zeichenkette Eine Grammatik definiert nicht die.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (12 – Kellerautomaten, PDA) Prof. Dr. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 4 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 2 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
M a r c – o l i v e r p a h l Informatik II – Kapitel 18 Übersetzung Zusammenfassung des Kapitel 18 Küchlin, Weber, Vorversion Einführung in die Informatik,
Agenda Motivation Formale Sprachen Compiler Compilerentwicklung
Ein Vortrag von Stefan Winter & Marc Ruppert
High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen.
Christian Schindelhauer
Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Wintersemester 2005/ Vorlesung Dominic Dumrauf.
A. Zündorf, SE Group Reverse Engineering K2 1 Ziele Heute Compilerbau Nachlese Ausnutzung von Laufzeittypinformation.
Arbeit und Energie präsentiert von
Excel Kurs Teil I Excel starten, Verknüpfungen auf dem Desktop anlegen. F. Bäumer.
Einführung in Visual C++
Von der Sprache zum Programm
Berechenbarkeit. Fragestellungen Können Computer alles ausrechnen? Kann man alles ausrechnen? Was kann man berechnen? Was nicht? Was heißt Berechenbarkeit?
Einführung in die Programmierung
Eignung von Grammatik-basiertem Layout für grafische Programmiersprachen Seminar Layout-Algorithmen für Graphen Institut für Informatik Christian-Albrechts.
Einführung in die Programmierung Wintersemester 2013/14 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Fachhochschule Wels Mechatronik Wirtschaft - MEWI  FH Campus Wels Einführung in die Informatik Fernlehre: Ingenieurtechnische Anwendungen der Tabellenkalkulation.
Übungsaufgaben für Microsoft Excel
Christian Schindelhauer Wintersemester 2006/07 8. Vorlesung
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2011/12 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2012/13 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut.
Hallo, ich mühe mich seit einer ganzen Weile mit einer neuen Präsentation für meine Chefin ab. Bin jetzt soweit fertig mit der Basis und möchte nun ein.
2.4 Rekursion Klassifikation und Beispiele
Grundlagen von Objekt-Pascal Erstellt von J. Rudolf überarbeitet von H.Brehm.
Was ist Powerpoint ... Anmerkungen:
Entwurf und Implementierung eines Scanner-Generatorsystems
Unterprogramme in JAVA
Algorithmen und Datenstrukturen Übungsmodul 8
Algorithmen und Datenstrukturen Übungsmodul 1
Städtisches Gymnasium Beverungen Friedel Berlage
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Christian Schindelhauer Wintersemester 2006/07 5. Vorlesung
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Informatik III Christian Schindelhauer Wintersemester 2006/07
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Mensch – Maschine - Kommunikation
Der Hund jagt die Katze. Theoretische Informatik Satz S P O
Powerpoint Grafische Oberfläche Folienmaster Folientypen
Das Java-Hamster-Modell
7. Formale Sprachen und Grammatiken
Inhalt Einordnung und Funktion der lexikalische Analyse Grundlagen
2 Grundlagen In diesem Abschnitt werden die Grundbegriffe und Methoden der Theorie der formalen Sprachen und der Automaten wiederholt, soweit diese ben.
Programmierungssprache PERL
Institut für Kartographie und Geoinformation Prof. Dr. L. Plümer, Dipl.-Ing. D. Dörschlag, Dr. G. Gröger Einführung in die Programmierung mit Java 13.
Wozu Maple? Symbolische Algebra Manche Sachen soll man besser nicht von Hand machen –kleine Rechnungs Fehler können mehrere Millionen werden – am besten.
Titel des Vortrags Tagungsbezeichnung Autor(en) Eigene Abb. Tagungs logo.
Sprachen und Programmiersprachen
 Am Ende der letzten Stunde hatten wir über die Grenzen unserer Automaten-Modell gesprochen. Dr. Lars Ettelt2  Tipp: Parkhaus.  Einfahrt erst wenn.
J. Nürnberger2007 / 081 Tabellenkalkulation (3) Arbeiten mit Formeln am Beispiel von OpenOffice.org Calc.
 Präsentation transkript:

Anmerkung des Autor Diese Präsentation ist mit Powerpoint für MacOS erstellt. Leider ist sie nicht vollständig mit Powerpoint für Windows kompatibel. Das hat zur Folge, dass die Animationen nicht korrekt abgearbeitet werden und erscheinende Elemente zum Teil nicht wieder verschwinden. Dirk Pape.

Warum versteht mich mein Taschenrechner? Von der Formel zum Ergebnis Dr. Dirk Pape, Institut für Informatik, Freie Universität Berlin zum 1. Berliner MNU-Kongress, Sept. 2002

Der klassische Taschenrechner reagiert auf Tastendrucke 30 sin = 55 *

Der Computer interpretiert Formeln 5 * sin(30) =2.5 f(x) = 5 * sin(x) f(30) speichert Formeln ok. formt Formeln um, etc.

Was bedeutet „interpretieren“? Wörter (Symbole) erkennen Z.B. Pferd, das oder Satzzeichen Sätze (Syntax) erkennen Z.B. Das Pferd hält schwarz Bedeutung (Semantik) ermitteln ???

Formeln interpretieren Wörter (Symbole) erkennen 5, *, sin, (, 30, ) Sätze (Syntax) erkennen Bedeutung (Semantik) ermitteln =2.5 * 5sin 30

Phasen des Interpretierens Formel als Text 5*sin(30) * 5sin 30 Formel in abstrakter Syntax Berechne Formel =2,5 AnalyseSynthese

Abstrakte Syntax – Beispiel: eine Datenstruktur für Formeln data Formel = ZAHL Int | PLUS Formel Formel | MAL Formel Formel | SIN Formel | COS Formel | VAR String

Formeln rekursiv berechnen Berechne 1 1. Berechne 2 -> 5 2. Berechne 3 Berechne 4 -> 30 Berechne sin (30) -> Berechne 5 * 0.5 -> 2.5 * 5sin

Berechnen – Beispiel berechnen(f) = case f of ZAHL n -> n PLUS f1 f2 -> berechnen(f1) + berechnen(f2) MAL f1 f2 -> berechnen(f1) * berechnen(f2) SIN f -> sin (berechnen(f)) COS f -> cos (berechnen(f)) VAR v -> [„auslesen von Variable v“]

Formeln umformen Forme x * ( ) um 2 * (4 + 5) -> 2 * * 5 * x * x * x 2

Umformen – Beispiel umformen(f) = case f of ZAHL n -> ZAHL n PLUS f1 f2 -> PLUS (umformen(f1)) (umformen(f2)) MAL f1 (PLUS f2 f3) -> PLUS (umformen(MAL f1 f2)) (umformen(MAL f1 f3)) MAL f1 f2 -> MAL (umformen(f1)) (umformen(f2)) SIN f -> SIN (umformen(f)) COS f -> COS (umformen(f)) VAR v -> VAR v

Formeln interpretieren Wörter (Symbole) erkennen 5, *, sin, (, 30, ) Sätze (Syntax) erkennen Bedeutung (Semantik) ermitteln Berechnen =2.5, Umformen, Speichern,... * 5sin 30

Wie versteht mich der Computer? Zeichen werden zu Wörtern SO...S? So...nntag? So...ndermeldung?

Wörter erkennen start so n s SOS pause a x

Formelsymbole erkennen start235 4 co t s cos ( ( + Var „cost“

Tabellengesteuerter Automat (+)cos*t Cos Var 1

Informatiker sind erfindungsreich Computerprogramme erzeugen die Tabellen Computerprogramme erzeugen Computerprogramme, die Formeln erkennen Computerprogramme erzeugen Tabellen und Computerprogramme aus Formeln

„Scanner“ erkennen Symbole bs= [a-z] zf= [0-9] cos= cos var= bs+ zahl= -?zf+...

„Scanner“ erkennen Symbole 5*sin(30) Zahl 5 Mal Sin Klammerauf Zahl 30 Klammerzu

„Scanner“ erkennen Symbole 5*cost*30 Zahl 5 Mal Var cost Mal Zahl 30

„Scanner“ erkennen Symbole 5*sin)30( Zahl 5 Mal Sin Klammerzu Zahl 30 Klammerauf

Scanner-Generatoren Lex für C, C++, Java,... Flex für C, C++, Java,... Alex für Haskell...

Wie versteht mich der Computer? Wörter werden zu Sätzen Zahl 5* 5 SinusKlammeraufZahl 30Klammerzu 30 sin*

Kellerautomat + formel1 + ( ) + + formel2 + + formel1 (

Eine Grammatik für Formeln formel : Zahl | formel Plus formel | formel Mal formel | Sinus Klammerauf formel Klammerzu | Cosinus Klammerauf formel Klammerzu | Variable | Klammerauf formel Klammerzu

„Parser“ erkennen Sätze 5, *, Sinus, (, 30, ) Formel 1 * (... * 5sin 30

Parser-Generatoren Yacc für C, C++, Java,... Bison für C, C++, Java,... Happy für Haskell...

Übersetzerbau Programmiersprachen sind Sprachen, mit denen der Computer programmiert wird (C, Java, Haskell,...) haben eine Grammatik Programme sind grammatikalisch korrekte Formeln in einer Programmiersprache werden mit Hilfe von Scannern und Parsern analysiert und in einfache Maschinenbefehle übersetzt (Synthese)

Algorithmen im Übersetzerbau Scannen und Parsen Endlicher Automat Endlicher Kellerautomat Rekursiver „Ad-hoc-Parser“ Scanner- und Parsergeneratoren Anspruchsvolle Algorithmen Synthese Rekursive Funktionen und Prozeduren auf baumartigen Datenstrukturen weitere „Highlights“, z. B. „bootstrapping“

Ich wünsche noch viel Spaß beim MNU-Kongress