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

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

Transcript of Anmerkung des Autor Diese Präsentation ist mit Powerpoint für MacOS erstellt. Leider ist sie nicht...

Page 1: 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.

Anmerkung des AutorDiese 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.

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

Warum versteht mich mein Taschenrechner?

Von der Formel zum ErgebnisDr. Dirk Pape, Institut für Informatik, Freie Universität Berlin

http://www.inf.fu-berlin.de/~pape/zum 1. Berliner MNU-Kongress, Sept. 2002

Page 3: 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.

Der klassische Taschenrechnerreagiert auf Tastendrucke

3 0

sin

=

55

*

30

2.5

0.5

5.0

Page 4: 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.

Der Computerinterpretiert Formeln

5 * sin(30) =2.5

f(x) = 5 * sin(x)f(30) =2.5

speichert Formelnok.

formt Formeln um, etc.

Page 5: 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.

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

???

Page 6: 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.

Formeln interpretieren• Wörter (Symbole) erkennen

5, *, sin, (, 30, )• Sätze (Syntax) erkennen

• Bedeutung (Semantik) ermitteln=2.5

*

5 sin

30

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

Phasen des Interpretierens

Formel als Text5*sin(30)

*

5 sin

30

Formel in abstrakter Syntax

Berechne Formel=2,5

Analyse Synthese

Page 8: 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.

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

Page 9: 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.

Formeln rekursiv berechnenBerechne 11. Berechne 2

-> 5

2. Berechne 3Berechne 4

-> 30Berechne sin (30)

-> 0.5

3. Berechne 5 * 0.5-> 2.5

*

5 sin

30

1

2 3

4

Page 10: 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.

Berechnen – Beispielberechnen(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“]

Page 11: 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.

Formeln umformenForme x * (... + ...) um

2 * (4 + 5)-> 2 * 4 + 2 * 5*

x +

...

1

2 3

4...

5

*

x

+

...2 4 5

*

...x2

Page 12: 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.

Umformen – Beispielumformen(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

Page 13: 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.

Formeln interpretieren• Wörter (Symbole) erkennen

5, *, sin, (, 30, )• Sätze (Syntax) erkennen

• Bedeutung (Semantik) ermittelnBerechnen =2.5, Umformen, Speichern, ...

*

5 sin

30

Page 14: 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.

Wie versteht mich der Computer?Zeichen werden zu Wörtern

SO...S?So...nntag?So...ndermeldung?

... --- ...

Page 15: 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.

Wörter erkennen

start s on

s

SOS

pause

a

x

Page 16: 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.

Formelsymbole erkennen

start 2 3 5

4

c ots

cos

(

(

+

Var „cost“

Page 17: 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.

Tabellengesteuerter Automat( + ) c o s * t

1 19 137 58 2 . . . .

2 3

3 4

4 Cos1

5

5 Var1

Page 18: 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.

Informatiker sind erfindungsreichComputerprogramme erzeugen die

TabellenComputerprogramme erzeugen

Computerprogramme, die Formeln erkennen

Computerprogramme erzeugen Tabellen und Computerprogramme aus Formeln

Page 19: 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.

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

Page 20: 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.

„Scanner“ erkennen Symbole

5*sin(30)

Zahl 5MalSinKlammeraufZahl 30Klammerzu

Page 21: 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.

„Scanner“ erkennen Symbole

5*cost*30

Zahl 5MalVar costMalZahl 30

Page 22: 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.

„Scanner“ erkennen Symbole

5*sin)30(

Zahl 5MalSinKlammerzuZahl 30Klammerauf

Page 23: 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.

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

Page 24: 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.

Wie versteht mich der Computer?Wörter werden zu Sätzen

Zahl 5 *

5

Sinus Klammerauf Zahl 30 Klammerzu

30

sin

*

Page 25: 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.

Kellerautomat

+formel1

+formel1

( )+formel1

+formel1

formel2

+

+formel1

(

Page 26: 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.

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

Page 27: 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.

„Parser“ erkennen Sätze

5, *, Sinus, (, 30, )

Formel 1

*

(

...

*

5 sin

30

Page 28: 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.

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

Page 29: 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.

ÜbersetzerbauProgrammiersprachen

• sind Sprachen, mit denen der Computer programmiert wird (C, Java, Haskell, ...)

• haben eine GrammatikProgramme

• sind grammatikalisch korrekte Formeln in einer Programmiersprache

• werden mit Hilfe von Scannern und Parsern analysiert

• und in einfache Maschinenbefehle übersetzt (Synthese)

Page 30: 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.

Algorithmen im ÜbersetzerbauScannen und Parsen

• Endlicher Automat• Endlicher Kellerautomat• Rekursiver „Ad-hoc-Parser“

Scanner- und Parsergeneratoren• Anspruchsvolle Algorithmen

Synthese• Rekursive Funktionen und Prozeduren auf

baumartigen Datenstrukturenweitere „Highlights“, z. B. „bootstrapping“

Page 31: 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.

Ich wünsche noch viel Spaß

beim MNU-Kongress