Upload
trinhquynh
View
236
Download
3
Embed Size (px)
Citation preview
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 für jede
Programmiersprache
• „Klären“ die Frage wie Anweisungen geschrieben und
verschachtelt werden können
• 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 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, ....
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 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“)
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“}
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}].
http://info1.informatik.uni-karlsruhe.de
11
Syntaxdiagramm für Dateinamen
• Wie sieht ein Syntaxdiagramm für 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 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.
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
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
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
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
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
• …
http://info1.informatik.uni-karlsruhe.de
18
TheorieUmrechnung Dezimal - Binärsystem
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 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
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://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)