Java für Anfänger Teil 2: Java-Syntax. Programmierkurs Manfred Jackel

Ähnliche Dokumente
Java für Anfänger Teil 2: Java-Syntax. Programmierkurs Manfred Jackel

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Einführung in die Programmierung I. 2.0 Einfache Java Programme. Thomas R. Gross. Department Informatik ETH Zürich

5 Grundlagen der Java-Syntax

Grundlagen der Modellierung und Programmierung, Übung

Java Lexikalische Struktur

Wo sind wir? Übersicht lexikale Struktur von Java

Java-Schulung Grundlagen

Teil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen

Java für Anfänger Teil 4: Anweisungen. Programmierkurs Manfred Jackel

3. Java - Sprachkonstrukte I

Grammatik, Bezeichner, Datentypen, Entwicklungszyklus

Einführung in die Programmierung für NF. Übung

MiniJava-Sprachbericht Version 3.1

3. Java - Sprachkonstrukte I

Programmierung. Grundlagen. Tina Wegener, Ralph Steyer. 2. Ausgabe, 1. Aktualisierung, April 2014

3. Java - Sprachkonstrukte I

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 29

Java - Programmierung - Prozedurale Programmierung 1

Einführung in die Informatik

Sprachen sind durch folgenden Aufbau gekennzeichnet:

Kapitel 2. Methoden zur Beschreibung von Syntax

7. Syntax: Grammatiken, EBNF

Grammatik, Bezeichner, Datentypen, Entwicklungszyklus

Einführung in die Programmiertechnik

Einführung in die Programmierung Wintersemester 2008/09

2.2 Syntax, Semantik und Simulation

Elementare Konzepte von

Programmieren und Problemlösen Java-Sprachkonstrukte. Java-Sprachkonstrukte. Übung Altersberechner. Namen und Bezeichner. Namen und Bezeichner

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Programmierkurs Java

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

1. Der Einstieg in Java. Was heißt Programmieren?

Kapitel 2. Methoden zur Beschreibung von Syntax

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Empfehlenswerte Literatur

Formale Sprachen. Inhaltsverzeichnis. M. Jakob. 10. Dezember Allgemeine Einführung. Aufbau formaler Sprachen

SE2-6. Übung Johannes Bürdek

Einführung in die Informatik. Programming Languages

Tagesprogramm

Anhang I: C++ Syntax. Angewandte Informatik: Algorithmen und Programmiertechniken A1 1

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

II.4.2 Abstrakte Klassen und Interfaces - 1 -

Gedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff.

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke

Syntax von Programmiersprachen

Grundsymbole. Kapitel 2: Einfache Programme. Liste aller Java-Schlüsselwörter. Schlüsselwörter und Struktursymbole. Lexikalische Einheiten

Syntax von Programmiersprachen

3.1 Reservierte Wörter

3 Die Programmiersprache Java

Alphabet, formale Sprache

3 Syntax von Programmiersprachen

Java: Syntax-Grundlagen III

Ausdrücke in Scala. Funktionale Programmierung. Christoph Knabe FB VI

Einführung in die Informatik. Programming Languages

Grundelemente objektorientierter Sprachen (1)

Vorkurs Informatik WiSe 16/17

Java Zusammenfassung. Basisdatentypen ganzzahlig: Byte, Short, Integer, Long Fließkomma: Float, Double Zeichen: Character Wahrheitswerte: Boolean

Kapitel 2: Grundelemente der Programmierung

Grundelemente objektorientierter Sprachen (1)

Fortgeschrittene Programmierungsmethoden

Syntax von Programmiersprachen

Einführung in die Programmierung für NF. Rückgabewerte, EBNF, Fallunterscheidung, Schleifen

Kapitel 2: Methoden zur Beschreibung von Syntax

! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete. II.4.2 Abstrakte Klassen und Interfaces - 1 -

Grundelemente objektorientierter Sprachen (1)

Einführung in die Programmierung. 2.1 Methoden. Thomas R. Gross. Department Informatik ETH Zürich

Einführung in die Programmierung mit BlueJ

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1

Grundelemente von C++

Vorkurs Informatik WiSe 17/18

3 Objektorientierte Konzepte in Java

3 Syntax von Programmiersprachen

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Anweisungen zur Ablaufsteuerung

Sprachkonstrukte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Übersicht. Vorstellung des OO-Paradigmas

Einstieg in die Informatik mit Java

Zuerst wird die Bedingung ausgewertet. Ist sie erfüllt, wird der Rumpf des while-statements ausgeführt. Nach Ausführung des Rumpfs wird das gesamte

1. Der Einstieg in Java

Smalltalk vs. Java c Chris Burkert Smalltalk versus Java

Syntax von Programmiersprachen

Einfache Datentypen in JAVA

Lexikalische Programmanalyse der Scanner

Programmieren I + II Regeln der Code-Formatierung

Einführung in C. Alexander Batoulis. 5. Mai Fakutltät IV Technische Universität Berlin

Programmieren I + II Regeln der Code-Formatierung

Transkript:

Java für Anfänger Teil 2: Java-Syntax Programmierkurs 11.-15.10.2010 Manfred Jackel 1

Syntax für die Sprache Java public class Welcome { } Schlüsselworte Reservierte Worte Keywords Wortsymbol Syntax: griech. Zusammenstellung Lehre vom Satzbau (wie Wörter zu Phrasen (Teilsätzen) und Sätzen zusammengefügt werden Griechisch: gramma, das Geschriebene, Buchstabe Lateinisch: ars grammatica Kunst des Lesens und Schreibens Linguistisch: Grammatik, systematische Sprachbeschreibung Informatisch: Grammatik als formale Sprachbeschreibung, endliche Viele Regeln

Reservierte Worte in Java abstract do import public try boolean double instanceof return void break else int short volatile byte extends interface static while case final long super catch finally native switch char float new synchronized class for null this const goto package throw continue if private throws default implements protected transient 3

Zeichensymbole public class Welcome { } Schlüsselworte Reservierte Worte Keywords Wortsymbol Zeichensymbol { } [ ] ( ) // /* */ ;, + - * / ^!? ++ -- = == < > <= >=!=

Bezeichner public class Welcome { } Schlüsselworte BezeichnerZeichensymbol Reservierte WorteName Keywords Wortsymbol Regeln für die Bildung von Bezeichnern in Java 1. Das 1. Zeichen muss ein Buchstabe sein 2. Dahinter wahlweise eine beliebig lange Folge aus Buchstaben oder Ziffern 3. _ Unterstrich und $ sind Buchstaben, sollen vermieden werden. 4. Groß- Kleinschreibung wird unterschieden

Syntax für Bezeichner Das 1. Zeichen muss ein Buchstabe sein Dahinter wahlweise eine beliebig lange Folgeaus Buchstaben und/oder Ziffern _ Unterstrich und $ sind Buchstaben, sollen vermieden werden. Groß- Kleinschreibung wird unterschieden 6

Syntax für Bezeichner N n Das 1. Zeichen muss ein Buchstabe sein N1 quadratwurzel A_1 Dahinter wahlweise eine beliebig lange Folgeaus Buchstaben und/oder Ziffern _ Unterstrich und $ sind Buchstaben, sollen vermieden werden. Groß- Kleinschreibung wird unterschieden Richtig: 7

Syntax für Bezeichner Das 1. Zeichen muss ein Buchstabe sein Falsch: 1 1a else nr eins Dahinter wahlweise eine beliebig lange Folgeaus Buchstaben und/oder Ziffern _ Unterstrich und $ sind Buchstaben, sollen vermieden werden. Groß- Kleinschreibung wird unterschieden 8

Syntaxregeln für Identifier = Bezeichner Backus-Naur-Notation (Metasprache) Regel, Definition LETTER ::= a b z' 'A' 'B' 'Z _ $ DIGIT ::= '0' '1' '2' '3' '4' '5' '6' '7' '8' '9' Identifiername ::= LETTER Identifiername ::= Identifiername LETTER Identifiername ::= Identifiername DIGIT Identifier ::= Identifiername aber kein reserviertes Wort

Syntax für Bezeichner Backus-Naur-Notation (Metasprache) wird definiert durch Variable Nonterminal LETTER ::= a' 'b' 'c' 'A' 'B' 'Z' oder, DIGIT ::= '0' '1' '2' '3' '4' '5' '6' '7' '8' '9' alternativ Identifiername ::= LETTER Identifiername ::= Identifiername LETTER Identifiername ::= Identifiername DIGIT Identifiername ::= Identifiername LETTER Identifier ::= Identifiername aber kein reserviertes Wort

Beispiel: H2O ist identifiername Identifiername ::= Identifiername LETTER LETTER ::= 'O' anwenden Identifiername ::= Identifiername 'O' Identifiername ::= Identifiername DIGIT anwenden Identifiername ::= Identifiername DIGIT 'O' DIGIT ::= '2' anwenden Identifiername ::= Identifiername '2O' Identifiername ::= LETTER anwenden Identifiername ::= LETTER '2O' LETTER ::= 'H' anwenden Identifiername ::= 'H2O' H2O' lässt sich aus dem Nonterminal Identifiername ableiten und ist kein reserviertes Wort, ist also ein gültiger Bezeichner in Java

Syntaxregel für public class ClassDeclaration::= { ClassModifier } 'class' Identifier [ 'extends' TypeName ] [ 'implements' TypeName { ',' TypeName } ] ( ClassBody ';' ) Information hiding Vererbung, später ClassModifier::= 'public' 'protected' 'private' 'abstract' 'static' 'final' 'strictfp' ClassBody::= '{' { ClassBodyDeclaration } '}'

Syntaxregel für public class ClassDeclaration::= { ClassModifier } 'class' Identifier public class Welcome ClassBody { {ClassBodyDeclaration} public static void main }

Backus-Naur-Form BNF Eine einfache und effektive Methode, Syntaxregeln zu notieren Erfunden von John Backus und Peter Naur im Zusammenhang mit Algol 60 John Warner Backus, 1924-2007, ab 1959 bei IBM, Mitentwickler von Fortran (die erste höhere Programmiersprache, 3GL), ab 1959 BNF Peter Naur, geb. 1928, Dänemark, Mitentwickler von Algol 60 14

Definition EBNF (N,T,P,S) N = endliche Menge von Nonterminals Nonterminals sind Grammatikbegriffe T = endliche Menge Terminalsymbole (Zeichen) Die durch EBNF definierte Sprache besteht aus aneinandergereihten Terminalsymbolen (Worte aus den Terminalzeichen) P = endliche Menge von Produktionen der Form A ::= EBNF-Ausdruck A N ist Nonterminal EBNF-Ausdruck besteht aus Nonterminals, Terminals und Meta-Zeichen {}[]() Ein Startsymbol S N Die definierte Sprache besteht aus allen Worten aus Zeichen aus T, die mit Regeln aus P aus dem Startsymbol hergeleitet werdeb können. 15

EBNF-Grundausdrücke Aneinanderreihung A ::= BCD A ist Nonterminal = Metasymbol B,C,D sidn bel. EBNF- Ausdrücke A wird durch die 3 aufeinaderfolgenden Symbole ersetzt Alternative A ::= B C D A kann durch B oder C oder D ersetzt werden [] Option A ::= [B]C A kann durch BC oder C ersetzt werden. {} Wiederholung A ::= {B}C A kann durch C, BC, BBC, B.BC ersetzt werden. 16

Ganze Zahlen in Java: Zahlliterale Dezimalzahlen aus den Ziffern 0 9 Java-Dezinalzahl darf keine führende Null haben! z.b. 1 595 200 0 Oktalzahlen aus den Ziffern 0 7 Oktalzahlen beginnen mit einer führenden Null z. B. 01, 07, 0100 Hexadezimalzahlen aus 0.. 9, a,. f, A F Beginnen mit 0x oder 0X z.b. 0xa 0xA, 0Xa, 0x10, 0xff nicht im Kurs 17

Extended Backus Naur Form DIGIT::= '0' '1' '2' '3' '4' '5' '6' '7' '8' '9' DIGIT1::= '1' '2' '3' '4' '5' '6' '7' '8' '9' DeciLiteral ::= DIGIT1 { DIGIT } '0' Was in geschweiften Klammen steht, darf beliebig oft wiederholt werden! Auch 0 mal!

Literale für Oktalzahlen OCTDIGIT::= '0' '1' '2' '3' '4' '5' '6' '7' OctalLiteral::= '0' OCTDIGIT { OCTDIGIT } Eine führende Null bedeutet;. Oktalzahl! 02 ist ein oktales Literal, 20 nicht 010 == 8!!! 08 ist falsch! nicht im Kurs

Literale für Hexadezimalzahlen HEXDIGIT::= < Digits 0 to 9, Letters A to F, Letters a to f > HexLiteral::= ('0x' '0X' ) HEXDIGIT { HEXDIGIT } 0x10 == 16!!! 0xa == 0Xa == 0XA == 10 == 012 nicht im Kurs

Literale für ganze Zahlen IntegerLiteral::= DeciLiteral OctalLiteral HexLiteral ) [ 'l' 'L' ] Java kennt Oktal-, Dezimal- und Hexedezimalzahlen. L oder L am Ende heißt long = 8 Byte Speicherplatz Java kennt ganzzahlige Datentypen mit 1, 2, 4 oder 8 Byte Speicherplatz, Was in eckigen Klammen steht, ist optional. Es darf einmal oder keinmal vorkommen!

Java-Syntax Komplette Syntax http://iis.unikoblenz.de/javakurs2007/kursmaterial/mysynta x.htm