Informatik I Tutorium - STUDWWW s_kehne/tutorium/ 2 bersicht Tutorium bersicht heute...

download Informatik I Tutorium - STUDWWW s_kehne/tutorium/   2 bersicht Tutorium bersicht heute • EBNF und Syntaxdiagramm • Bits  Bytes • Hello World

of 26

  • date post

    06-Feb-2018
  • Category

    Documents

  • view

    216
  • download

    3

Embed Size (px)

Transcript of Informatik I Tutorium - STUDWWW s_kehne/tutorium/ 2 bersicht Tutorium bersicht heute...

  • Vorlesung:

    Prof. Dr. F. Bellosa

    bungsleitung:

    Dipl.-Inform. A. Merkel

    Tutorium:

    Tutor:

    Informatik I TutoriumWS 07/08

    Tutorium 3: Dienstag 13. November 2007

    12

    Jens Kehne

  • http://info1.informatik.uni-karlsruhe.de

    2

    bersicht Tutorium

    bersicht heute

    EBNF und Syntaxdiagramm

    Bits & Bytes

    Hello World

  • http://info1.informatik.uni-karlsruhe.de

    3

    EBNF & Syntaxdiagramm

  • http://info1.informatik.uni-karlsruhe.de

    4

    Warum EBNF?

    Formale Sprachen Grundlage fr jede

    Programmiersprache

    Klren die Frage wie Anweisungen geschrieben und

    verschachtelt werden knnen

    Z.B.:

    y := x + z;

  • http://info1.informatik.uni-karlsruhe.de

    5

    Metazeichen der Erweiterten Backus-Naur-Form (EBNF)

    Metazeichen dienen zur Beschreibung der Grammatikregeln, durch die die zu einer Sprache gehrenden Stze festgelegt werden

    = trennt linke und rechte Regelseite

    . schliet Regel ab

    | trennt Alternativen Beispiel: x | y beschreibt: x, y

    () klammert Alternativen Beispiel: (x | y) z beschreibt: xz, yz

    [] wahlweises Vorkommen Beispiel: [x] y beschreibt: xy, y

    {} 0-maliges bis n-maliges Vorkommen Beispiel: {x} y beschreibt: y, xy, xxy, xxxxy, ....

  • http://info1.informatik.uni-karlsruhe.de

    6

    Darstellung von EBNF-Metazeichen als Syntaxdiagramm

    Ein Syntaxdiagramm ist eine graphische

    Darstellungsform einer Grammatik

    Jedes EBNF-Metazeichen wird hierzu in Form einer

    graphischen Darstellung umgesetzt

    x | y

    [x] y

    x

    y (x | y) z

    {x} y

    x

    y

    z

    y

    x

    y

    x

  • http://info1.informatik.uni-karlsruhe.de

    7

    Terminal-Symbole bei Syntaxdiagramm und Grammatik

    Unterscheidung von so genannten Terminal-Symbolen und

    Nichtterminal-Symbolen "0" ... "9" Terminal-Symbole

    Zahl, Ziffer Nichtterminal-Symbole

    Unterscheidung der beiden Symbolarten in

    Syntaxdiagrammen

    Terminale in Kreis-Symbolen

    Nichtterminale in Rechteck-Symbolen

  • http://info1.informatik.uni-karlsruhe.de

    8

    EBNF-Grammatik

    Gegeben sei folgendes Syntaxdiagramm.

    Wie sieht die zugehrige EBNF-Grammatik aus?

    a

    b

    c

    ,

    a

    b

    c

    ,

    c

    a

    b

    a

    b

    c

    (a|b|c),{(a|b|c)},{(c|a|b{b})}(a|b|c)

  • http://info1.informatik.uni-karlsruhe.de

    9

    Fragen zur EBNF

    Wie lassen sich folgende Bedingungen in EBNF ausdrcken:

    "a" soll zwei Mal nacheinander auftreten und danach "b"

    "a" soll mindestens drei Mal nacheinander auftreten und danach "b"

    "a" soll zwischen zwei und vier Mal auftreten und danach "b"

    "a" soll nicht mehr als vier Mal in Folge auftreten und danach "b"

    "a" soll im gesamten Wort nicht hufiger als zwei Mal in Folge

    auftreten

    aab

    aaa{a}b

    aa[(a|aa)]b

    [(a|aa|aaa|aaaa)]b

    {[(a|aa)]b}

  • http://info1.informatik.uni-karlsruhe.de

    10

    EBNF-Grammatik fr Dateinamen

    Wie sieht eine EBNF-Grammatik fr Dateinamen aus?

    Randbedingung:

    Nur Buchstaben, Ziffern und Unterstriche erlaubt

    Nichtterminalsymbol Buchstabe gegeben

    Buchstabe =

    ("a"|"b"|"c"|"d"|"e"|"f"|"g"|"h"|"i"|"j"|"k"|"l"|"m"|"n"|"o"|"p"|"q"|

    |"r"|"s"|"t" |"u"|"v"|"w"|"x"|"y"|"z").

    Ziffer = (0|1|2|3|4|5|6|7|8|9)

    Zeichen = (Buchstabe|Ziffer|_).

    Zeichen{Zeichen}[.Zeichen{Zeichen}].

  • http://info1.informatik.uni-karlsruhe.de

    11

    Syntaxdiagramm fr Dateinamen

    Wie sieht ein Syntaxdiagramm fr Dateinamen aus?

    Zeichen

    Zeichen

    Zeichen

    Zeichen

    .

  • http://info1.informatik.uni-karlsruhe.de

    12

    Aufgabe 2.1: Syntaxdiagramme und Grammatik (19T)

    Gegeben seien folgende Datumsformate:

    1. November 2004

    1. 11. 04

    1. 11. 2004

    2004-11-01

    04-11-01

    Geben Sie:

    a) ein Syntaxdiagramm (8T) und

    b) eine EBNF-Grammatik (8T)

    an, die diese Datumsformate beschreiben.

    c) Nennen sie drei Nebenbedingungen fr dieses Beispiel, die bentigt werden,

    um neben der syntaktischen auch die semantische Korrektheit

    sicherzustellen? (3T)

    Hinweise zur Aufgabe:

    Bei dieser Aufgabe kann das Nichtterminalsymbol Ziffer aus der Vorlesung verwendet werden.

    Zu weiteren verwendeten Nichtterminalsymbolen muss der Aufbau im Aufgabenteil a) mit einem

    Syntaxdiagramm im Aufgabenteil b) mit Regeln der EBNF-Grammatik festgelegt werden.

  • http://info1.informatik.uni-karlsruhe.de

    13

    Aufgabe 2.1: Syntaxdiagramme und Grammatik (19T)

    Tag

    Jahr Monat

    .

    -

    Jahr

    Monat

    Monatsname

    .

    - Tag

    Lsung a): Syntaxdiagramm 1. November 2004

    1. 11. 04

    1. 11. 2004

    2004-11-01

    04-11-01

  • http://info1.informatik.uni-karlsruhe.de

    14

    Aufgabe 2.1: Syntaxdiagramme und Grammatik (19T)

    Ziffer ZifferTag

    Monat Ziffer Ziffer

    Jahr Ziffer Ziffer Ziffer Ziffer

    Lsung a): Syntaxdiagramm 1. November 2004

    1. 11. 04

    1. 11. 2004

    2004-11-01

    04-11-01

  • http://info1.informatik.uni-karlsruhe.de

    15

    Aufgabe 2.1: Syntaxdiagramme und Grammatik (19T)

    Monatsnamen

    Januar

    Februar

    Mrz

    April

    Mai

    Juni

    Juli

    August

    September

    Oktober

    November

    Dezember

    Lsung a):

    Syntaxdiagramm

    1. November

    2004

    1. 11. 04

    1. 11. 2004

    2004-11-01

    04-11-01

  • http://info1.informatik.uni-karlsruhe.de

    16

    Aufgabe 2.1: Syntaxdiagramme und Grammatik (19T)

    Lsung b): EBNF Grammatik

    Datum = Tag "." (Monat "." | Monatsname ) Jahr | Jahr "-" Monat "-" Tag.

    Tag = Ziffer [Ziffer].

    Monat = Ziffer [Ziffer].

    Monatsname = "Januar" | "Februar" | "Mrz" | "April" | "Mai" | "Juni" | "Juli" | "August" |

    "September" | "Oktober" | "November" | "Dezember".

    Jahr = Ziffer Ziffer [Ziffer Ziffer].

    1. November

    2004

    1. 11. 04

    1. 11. 2004

    2004-11-01

    04-11-01

    Tag

    Jahr Monat

    .

    -

    Jahr

    Monat

    Monatsname

    .

    - Tag

  • http://info1.informatik.uni-karlsruhe.de

    17

    Aufgabe 2.1: Syntaxdiagramme und Grammatik (19T)

    Gegeben seien folgende Datumsformate:

    1. November 2004

    1. 11. 04

    1. 11. 2004

    2004-11-01

    04-11-01

    Geben Sie:

    c) Nennen sie drei Nebenbedingungen fr dieses Beispiel, die bentigt werden,

    um neben der syntaktischen auch die semantische Korrektheit

    sicherzustellen? (3T)

    Lsung c):

    Eine Tagesangabe muss zwischen 1 und 31 liegen.

    Eine Monatsangabe muss zwischen 1 und 12 liegen.

    Wenn Monat aus {4,6,9,11} dann gilt Tag zwischen 1 und 30

  • http://info1.informatik.uni-karlsruhe.de

    18

    TheorieUmrechnung Dezimal - Binrsystem

  • http://info1.informatik.uni-karlsruhe.de

    19

    Bits & Bytes Umrechnen von Dual in Dezimal

    Zahlen besitzen generell Stellenwertigkeiten:

    123 = 1 * 100 + 2 *10 + 3 * 1 = 1*102 + 2*101 + 3 * 100

    Dezimal Zahlen besitzen Basis 10

    Dual Zahlen besitzen Basis 2

    Beispiel

    1011002 in Dezimal

    0 * 20 + 0 * 21 + 1*22 + 1*23 + 0 *24 +1 *25 = 44

  • http://info1.informatik.uni-karlsruhe.de

    20

    Bits & Bytes Dezimal in Dual

    Die Zahl 44 in Dual:

    44 : 2 = 22 R 0

    22 : 2 = 11 R 0

    11 : 2 = 5 R 1

    5 : 2 = 2 R 1

    2 : 2 = 1 R 0

    1 : 2 = 0 R 1

    101100

  • http://info1.informatik.uni-karlsruhe.de

    21

    Java

  • http://info1.informatik.uni-karlsruhe.de

    22

    Java

    Java-Installationsanleitung auf der Informatik 1 Homepage verfgbar

    In den Poolrumen ist Java bereits installiert

    Wichtig

    In/Out-Klassen von der Informatik 1 Homepage nutzen

    In das gleiche Verzeichnis wie der Quell-Code

    Aufruf von javac zum bersetzen

    Mehr kann ich euch nicht verraten sonst msste ich die Aufgabe machen

  • http://info1.informatik.uni-karlsruhe.de

    23

    Java

    Editor ist euch freigestellt

    Texteditor reicht eigentlich

    Ich empfehle:

    http://lernen.bildung.hessen.de/informatik/javaeditor/inde

    x.htm

    Dort gibt es das Programm + Installationsanleitung

    Am besten die Java-Dokumentation dazu installieren und in der

    Konfiguration unter Programme angeben

    Am besten Finger weg von Eclipse

    http://lernen.bildung.hessen.de/informatik/javaeditor/index.htmhttp://lernen.bildung.hessen.de/informatik/javaeditor/index.htm

  • http://info1.informatik.uni-karlsruhe.de

    24

    Fragen? Questions?

    Fragen? Questions?

    Fragen? Questions?

    Fragen? Questions?

    Fragen? Questions?Fragen? Questions?

    Fragen? Questions?

    Fragen? Questions?

    Fragen? Questions? Fragen? Questions?

    Fragen? Questions? Fragen? Questions?

    Fragen? Questions?

    Questions?

    Fragen?

  • http://info1.informatik.uni-karlsruhe.de

    25

    Bis bald

  • http://info1.informatik.uni-karlsruhe.de

    26

    Credits

    Erstellung und Zusammenstellung des Materials:

    Christian Maier (Zusammenstellung)

    Stephan Kessler (berarbeitung und Erweiterung)