• Keine Ergebnisse gefunden

252-0027 Einführung in die Programmierung I 1.0 EBNF 2.0 Einfache Java Programme

N/A
N/A
Protected

Academic year: 2022

Aktie "252-0027 Einführung in die Programmierung I 1.0 EBNF 2.0 Einfache Java Programme"

Copied!
48
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

252-0027

Einführung in die Programmierung I 1.0 EBNF

2.0 Einfache Java Programme

Thomas R. Gross

Department Informatik ETH Zürich

(2)

Graphische Darstellung von EBNF Regeln

§ Syntax Graph: graphische Darstellung

§ Macht es leichter zu erkennen, welche Zeichen in einem Symbol (in welcher Reihenfolge) auftreten müssen

§ A B C D als Graph:

§ [ A ] als Graph: § { A } als Graph:

(3)

3

(4)

§ A | B | C | D als Graph

(5)

Pfad durch Graph: legales Symbol

§ Aufreihung: durch jedes Element in der Reihe

§ Auswahl: ein Element in der Leiter

§ Option: entweder obere Kante (mit Element) oder untere (ohne)

§ Wiederholung: wie Auswahl

§ Einzige Form die einen Pfeil von rechts nach links hat

7

(6)
(7)

Substitution

§ Können einen Syntax Graphen in einen

anderen einsetzen

§ “interne” Namen verschwinden

15

(8)
(9)

Was für Symbole sind legal?

1.

2.

17

3.

(10)
(11)

19

(12)

Was für Symbole sind legal?

§ ( und ) erlauben uns klare Darstellung A ( B|C ) vs. (AB) | C

C A

B

(13)

Control forms (zum Kombinieren)

§ Aufreihung

§ Auswahl (Entscheidung)

§ Option, Wiederholung

§ Rekursion

24

(14)

Rekursion

§ Eine rekursive Beschreibung manchmal nötig um komplizierte Symbole zu beschreiben

§ Rekursive Beschreibung enthält rekursive Regeln

§ Eine Regel ist direkt rekursiv wenn ihr Name in der Definition verwendet wird

§ Also LHS erscheint auch auf der RHS

§ r | A r

§ EBNF Description r (Folge von null oder mehr As)

(15)

27

(16)
(17)

32

(18)
(19)

Diskussion

§ Kann jede Rekursion durch Wiederholung(en) ausgedrückt werden?

§ Nein

§ Finden Sie eine Beschreibung für An Bn (n Zahl ≥ 0: also gleiche Anzahl A, B)

EBNF Description balance balance | A balance B

34

(20)
(21)

§ Direkte Rekursion

§ r A | A r

§ Indirekte Rekursion

§ Folge von Regeln N1 … Nk so dass N2 auf der RHS von N1, N3 auf der RHS von R2, … und N1 auf der RHS von Nk erscheint

§ name1 A name2

§ name2 B name1 | C

39

(22)

252-0027

Einführung in die Programmierung 2.0 Einfache Java Programme

Thomas R. Gross

(23)

2.0 Einfache Java Programme

§ Uebersicht

§ Struktur

§ Namen

§ Output

44

(24)

2.0 Einfache Java Programme

§ Sie sollten Uebung 0 gemacht haben

§ Oder sicher sein dass diese keine Schwierigkeiten macht

§ Ab Uebung 1 müssen Sie in “mystudies” registriert sein um Aufgaben abgeben zu können

§ Stellt sicher dass Sie Programmfragmente erhalten können und Lösungen abgeben können

§ Keine Gruppentreffen heute/morgen (wohl aber nächste Woche)

(25)

EBNF

§ Hält die Syntax Regeln von Java Programmen fest

§ Beispiel: Namen in Programmen

§ Bezeichner (“identifier”) müssen Anforderungen erfüllen

§ Bezeichner muss mindestens ein Zeichen lang sein

§ … muss mit Buchstaben anfangen (a-z, A-Z)

§ … kann Buchstaben oder Ziffern (0-9) enthalten

§ (Java erlaubt noch mehr) (Manchmal gibt es noch mehr

Einschränkungen) 46

(26)

Java Regeln (vereinfacht)

EBNF Beschreibung bezeichner

lowercaseletter 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

uppercaseletter 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

letter lowercaseletter | uppercaseletter digit 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7| 8 | 9 bezeichner letter { letter | digit }

(27)

Java Programme

§ Erstellen

§ Ausführen

§ Modifizieren

§ Eclipse IDE

52

(28)
(29)

55

(30)
(31)

Java

§ Wir ignorieren fürs erste viele Aspekte die nicht absolut notwendig zum Verständnis sind

§ 1. Ziel: Programm lesen

§ 2. Ziel: Programm verstehen

§ 3. Ziel: Programm erstellen

§ Oft durch Modifikation eines Programmes

§ Wir können aber nicht alles ignorieren …

57

(32)

§ class : Java Programm (nur 1 class/Datei fürs erste)

§ Name des Programm gleich Namen der Datei

(33)

Java Programm

javaprogram public class bezeichner { method

}

61

(34)
(35)

Java Programm

javaprogram public class bezeichner { method

}

method public static void bezeichner ( String [ ] args ) { statementsequence

}

63

(36)

§ main: Java Methode (Java Code den wir ausführen können)

(37)

65

§ println: Java Methode (Funktion)

§ Gibt String aus (“druckt”)

§ String: Text zwischen “ (Anführungszeichen, “quotation mark”,

“double quote”) und “ (beide “ müssen oben sein)

(38)

Java Details

§ Wir werden einen Teil des Programmes (fürs erste) ignorieren

§ Aber wir können ihn nicht weglassen!

§ Sonst können wir das Java Programm nicht ”übersetzen”

§ Uebersetzen (kompilieren, “compile") heisst in eine Form bringen, die ausgeführt werden kann

§ Es gibt Fehlermeldungen wenn wir Teile weglassen oder falsch schreiben

(39)

68

(40)

Java

§ Nicht alle Rückmeldungen des Uebersetzers (“compilers”) sind so klar

(41)

71

(42)

Wir machen mal weiter ….

(43)

73

(44)

§ Leicht zu übersehen: die letzte } fehlt

(45)

75

(46)

Zusammenfassung

public class name {

public static void main(String[] args) { statement;

statement;

...

statement;

}

class: ein Programm mit Namen

statement: Anweisung die

method: Gruppe von

Anweisungen mit Namen main

(47)

§ Jedes (ausführbare) Java Programm besteht aus einer Klasse (class)

§ die eine Methode main enthält,

§ die eine Reihe von Anweisungen enthält

§ Später arbeiten wir mit Programmen mit mehreren Klassen

77

(48)

println(), println(“Hello”)

§ Gross/Kleinschreibung wird unterschiedlich behandelt

public class HelloWorld {

public static void main(String[] args) { System.out.println("Hello World!");

System.out.println();

System.out.println("Hello World!");

} Output:

Hello World!

Referenzen

ÄHNLICHE DOKUMENTE

§ Wenn wir eine Methode deklarieren dann geben wir an, dass diese Methode einen Parameter braucht. § Wenn wir die Method aufrufen, dann geben wir einen

§ Eine Methode die einen Rückgabewert deklariert muss eine (oder mehrere) return Anweisung(en)

§ Schiedsrichter entscheidet ob das Symbol legal ist oder nicht (für diese EBNF Beschreibung)2. § Symbol legal gemäss einer Regel: alle Buchstaben des Symbols stimmen mit den

Gibt an dass eine Methode einen Parameter braucht um ausgeführt werden zu können.. public static void methodName ( type name )

§ Eine Variable die in einer for Schleife deklariert wurde kann nur im Rumpf der Schleife verwendet werden. § Eine Variable die in einer Methode deklariert wurde existiert nur in

§ Sie lernen zu entscheiden ob ein Symbol legal ist (für eine EBNF Beschreibung)?. § Sie können entscheiden ob zwei EBNF Beschreibungen äquivalent

!  Schiedsrichter entscheidet ob das Symbol legal ist oder nicht (für diese EBNF Beschreibung).?. !  Genaue

§ class : Java Programm (nur 1 class/Datei fürs erste) Name des Programm gleich Namen der