Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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.

Ähnliche Präsentationen


Präsentation zum Thema: "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."—  Präsentation transkript:

1

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

3 Warum versteht mich mein Taschenrechner? Von der Formel zum Ergebnis Dr. Dirk Pape, Institut für Informatik, Freie Universität Berlin http://www.inf.fu-berlin.de/~pape/ zum 1. Berliner MNU-Kongress, Sept. 2002

4 Der klassische Taschenrechner reagiert auf Tastendrucke 30 sin = 55 * 30 2.5 0.5 5.0

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

6 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 ???

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

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

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

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

11 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“]

12 Formeln umformen Forme x * (... +...) um 2 * (4 + 5) -> 2 * 4 + 2 * 5 * x +... 1 2 3 4 5 * x + 2 4 5 * x 2

13 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

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

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

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

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

18 Tabellengesteuerter Automat (+)cos*t 11913 7 582.... 23 34 4 Cos 1 5 5 Var 1

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

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

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

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

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

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

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

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

27 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

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

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

30 Ü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)

31 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“

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


Herunterladen ppt "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."

Ähnliche Präsentationen


Google-Anzeigen