Download - Informatik I Tutorium - STUDWWW s_kehne/tutorium/tutorium03.pdf · PDF file 2 Übersicht Tutorium Übersicht heute • EBNF und Syntaxdiagramm • Bits & Bytes • Hello World

Transcript
Page 1: Informatik I Tutorium - STUDWWW s_kehne/tutorium/tutorium03.pdf · PDF file  2 Übersicht Tutorium Übersicht heute • EBNF und Syntaxdiagramm • Bits & Bytes • Hello World

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

Page 2: Informatik I Tutorium - STUDWWW s_kehne/tutorium/tutorium03.pdf · PDF file  2 Übersicht Tutorium Übersicht heute • EBNF und Syntaxdiagramm • Bits & Bytes • Hello World

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

2

Übersicht Tutorium

Übersicht heute

• EBNF und Syntaxdiagramm

• Bits & Bytes

• Hello World

Page 3: Informatik I Tutorium - STUDWWW s_kehne/tutorium/tutorium03.pdf · PDF file  2 Übersicht Tutorium Übersicht heute • EBNF und Syntaxdiagramm • Bits & Bytes • Hello World

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

3

EBNF & Syntaxdiagramm

Page 4: Informatik I Tutorium - STUDWWW s_kehne/tutorium/tutorium03.pdf · PDF file  2 Übersicht Tutorium Übersicht heute • EBNF und Syntaxdiagramm • Bits & Bytes • Hello World

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

4

Warum EBNF?

• Formale Sprachen Grundlage für jede

Programmiersprache

• „Klären“ die Frage wie Anweisungen geschrieben und

verschachtelt werden können

• Z.B.:

• y := x + z;

Page 5: Informatik I Tutorium - STUDWWW s_kehne/tutorium/tutorium03.pdf · PDF file  2 Übersicht Tutorium Übersicht heute • EBNF und Syntaxdiagramm • Bits & Bytes • Hello World

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 gehörenden Sätze festgelegt werden

= trennt linke und rechte Regelseite

. schließt 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, ....

Page 6: Informatik I Tutorium - STUDWWW s_kehne/tutorium/tutorium03.pdf · PDF file  2 Übersicht Tutorium Übersicht heute • EBNF und Syntaxdiagramm • Bits & Bytes • Hello World

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

Page 7: Informatik I Tutorium - STUDWWW s_kehne/tutorium/tutorium03.pdf · PDF file  2 Übersicht Tutorium Übersicht heute • EBNF und Syntaxdiagramm • Bits & Bytes • Hello World

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

Page 8: Informatik I Tutorium - STUDWWW s_kehne/tutorium/tutorium03.pdf · PDF file  2 Übersicht Tutorium Übersicht heute • EBNF und Syntaxdiagramm • Bits & Bytes • Hello World

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

8

EBNF-Grammatik

Gegeben sei folgendes Syntaxdiagramm.

Wie sieht die zugehörige 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“)

Page 9: Informatik I Tutorium - STUDWWW s_kehne/tutorium/tutorium03.pdf · PDF file  2 Übersicht Tutorium Übersicht heute • EBNF und Syntaxdiagramm • Bits & Bytes • Hello World

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

9

Fragen zur EBNF

Wie lassen sich folgende Bedingungen in EBNF ausdrücken:

• "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 häufiger als zwei Mal in Folge

auftreten

„a“„a“„b“

„a“„a“„a“{„a“}„b“

„a“„a“[(„a“|„a“„a“)]„b“

[(„a“|„a“„a“|„a“„a“„a“|„a“„a“„a“„a“)]„b“

{[(„a“|„a“„a“)]„b“}

Page 10: Informatik I Tutorium - STUDWWW s_kehne/tutorium/tutorium03.pdf · PDF file  2 Übersicht Tutorium Übersicht heute • EBNF und Syntaxdiagramm • Bits & Bytes • Hello World

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

10

EBNF-Grammatik für Dateinamen

• Wie sieht eine EBNF-Grammatik für 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}].

Page 11: Informatik I Tutorium - STUDWWW s_kehne/tutorium/tutorium03.pdf · PDF file  2 Übersicht Tutorium Übersicht heute • EBNF und Syntaxdiagramm • Bits & Bytes • Hello World

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

11

Syntaxdiagramm für Dateinamen

• Wie sieht ein Syntaxdiagramm für Dateinamen aus?

Zeichen

Zeichen

Zeichen

Zeichen

.

Page 12: Informatik I Tutorium - STUDWWW s_kehne/tutorium/tutorium03.pdf · PDF file  2 Übersicht Tutorium Übersicht heute • EBNF und Syntaxdiagramm • Bits & Bytes • Hello World

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 für dieses Beispiel, die benötigt 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.

Page 13: Informatik I Tutorium - STUDWWW s_kehne/tutorium/tutorium03.pdf · PDF file  2 Übersicht Tutorium Übersicht heute • EBNF und Syntaxdiagramm • Bits & Bytes • Hello World

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

13

Aufgabe 2.1: Syntaxdiagramme und Grammatik (19T)

Tag

Jahr Monat

.

-

Jahr

Monat

Monatsname

.

- Tag

Lösung a): Syntaxdiagramm 1. November

2004

1. 11. 04

1. 11. 2004

2004-11-01

04-11-01

Page 14: Informatik I Tutorium - STUDWWW s_kehne/tutorium/tutorium03.pdf · PDF file  2 Übersicht Tutorium Übersicht heute • EBNF und Syntaxdiagramm • Bits & Bytes • Hello World

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

14

Aufgabe 2.1: Syntaxdiagramme und Grammatik (19T)

Ziffer ZifferTag

Monat Ziffer Ziffer

Jahr Ziffer Ziffer Ziffer Ziffer

Lösung a): Syntaxdiagramm 1. November

2004

1. 11. 04

1. 11. 2004

2004-11-01

04-11-01

Page 15: Informatik I Tutorium - STUDWWW s_kehne/tutorium/tutorium03.pdf · PDF file  2 Übersicht Tutorium Übersicht heute • EBNF und Syntaxdiagramm • Bits & Bytes • Hello World

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

15

Aufgabe 2.1: Syntaxdiagramme und Grammatik (19T)

Monatsnamen

Januar

Februar

März

April

Mai

Juni

Juli

August

September

Oktober

November

Dezember

Lösung a):

Syntaxdiagramm

1. November

2004

1. 11. 04

1. 11. 2004

2004-11-01

04-11-01

Page 16: Informatik I Tutorium - STUDWWW s_kehne/tutorium/tutorium03.pdf · PDF file  2 Übersicht Tutorium Übersicht heute • EBNF und Syntaxdiagramm • Bits & Bytes • Hello World

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

16

Aufgabe 2.1: Syntaxdiagramme und Grammatik (19T)

Lösung b): EBNF Grammatik

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

Tag = Ziffer [Ziffer].

Monat = Ziffer [Ziffer].

Monatsname = "Januar" | "Februar" | "März" | "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

Page 17: Informatik I Tutorium - STUDWWW s_kehne/tutorium/tutorium03.pdf · PDF file  2 Übersicht Tutorium Übersicht heute • EBNF und Syntaxdiagramm • Bits & Bytes • Hello World

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 für dieses Beispiel, die benötigt werden,

um neben der syntaktischen auch die semantische Korrektheit

sicherzustellen? (3T)

Lösung 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

• …

Page 18: Informatik I Tutorium - STUDWWW s_kehne/tutorium/tutorium03.pdf · PDF file  2 Übersicht Tutorium Übersicht heute • EBNF und Syntaxdiagramm • Bits & Bytes • Hello World

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

18

TheorieUmrechnung Dezimal - Binärsystem

Page 19: Informatik I Tutorium - STUDWWW s_kehne/tutorium/tutorium03.pdf · PDF file  2 Übersicht Tutorium Übersicht heute • EBNF und Syntaxdiagramm • Bits & Bytes • Hello World

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

Page 20: Informatik I Tutorium - STUDWWW s_kehne/tutorium/tutorium03.pdf · PDF file  2 Übersicht Tutorium Übersicht heute • EBNF und Syntaxdiagramm • Bits & Bytes • Hello World

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

Page 21: Informatik I Tutorium - STUDWWW s_kehne/tutorium/tutorium03.pdf · PDF file  2 Übersicht Tutorium Übersicht heute • EBNF und Syntaxdiagramm • Bits & Bytes • Hello World

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

21

Java

Page 22: Informatik I Tutorium - STUDWWW s_kehne/tutorium/tutorium03.pdf · PDF file  2 Übersicht Tutorium Übersicht heute • EBNF und Syntaxdiagramm • Bits & Bytes • Hello World

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

22

Java

• Java-Installationsanleitung auf der Informatik 1 Homepage verfügbar

• In den Poolräumen 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 müsste ich die Aufgabe machen

Page 23: Informatik I Tutorium - STUDWWW s_kehne/tutorium/tutorium03.pdf · PDF file  2 Übersicht Tutorium Übersicht heute • EBNF und Syntaxdiagramm • Bits & Bytes • Hello World

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

Page 24: Informatik I Tutorium - STUDWWW s_kehne/tutorium/tutorium03.pdf · PDF file  2 Übersicht Tutorium Übersicht heute • EBNF und Syntaxdiagramm • Bits & Bytes • Hello World

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?

Page 25: Informatik I Tutorium - STUDWWW s_kehne/tutorium/tutorium03.pdf · PDF file  2 Übersicht Tutorium Übersicht heute • EBNF und Syntaxdiagramm • Bits & Bytes • Hello World

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

25

Bis bald …

Page 26: Informatik I Tutorium - STUDWWW s_kehne/tutorium/tutorium03.pdf · PDF file  2 Übersicht Tutorium Übersicht heute • EBNF und Syntaxdiagramm • Bits & Bytes • Hello World

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

26

Credits

• Erstellung und Zusammenstellung des Materials:

• Christian Maier (Zusammenstellung)

• Stephan Kessler (Überarbeitung und Erweiterung)