Grundlagen. Grundlagen. 1 von 46

Größe: px
Ab Seite anzeigen:

Download "Grundlagen. Grundlagen. 1 von 46"

Transkript

1 1 von 46

2 Programmerstellung und -ausführung 2 von 46

3 Maschinencode Einfaches Modell: Adressraum eines C-Programms Programmausführung 1. Befehlssatz: Eine Mikroprozessorarchitektur unterstützt einen bestimmten Vorrat an Instruktionen (Maschinenbefehlen, Befehlssatz). Eine solche Anweisung ist charakterisiert durch eine "Anweisungs-Nummer" (Opcode) und gegebenenfalls eine Menge von Parametern. 2. Maschinenprogramm (ausführbares Programm): Ist eine Sequenz von Instruktionen, die durch die entsprechende CPU abgearbeitet werden kann. Dazu muss das Maschinenprogramm (in binärer Form) im Arbeitsspeicher vorliegen. Außerdem muss Arbeitsspeicher für die im Programm verwendeten Variablen vorhanden sein. 3. Ladevorgang: Der Maschinencode liegt zunächst in einer (oder mehreren) Datei(en) in binärer Form vor, z. B. EXE-Datei. Vor der Ausführung muss der Maschinencode also in den Arbeitsspeicher geladen werden. 3 von 46

4 Quellcode Eigenschaften 1. Der Programmierer arbeitet auf in der Regel auf einer höheren Abstraktionsebene als Maschinencode Zu diesem Zweck wurden höhere Programmiersprachen entwickelt, deren Ausdrucksstärke größer ist als der von maschinennahen Sprachen. Außerdem sind sie problem- (bzw. anwendungs-) und weniger maschinenorientiert. Vom Quellcode zum Maschinencode 1. Programme werden in einem lesbaren Quellcode-Format (als Textdateien) erstellt, mit einem Editor. 2. Die Umsetzung des Quellcodes in den Maschinencode erfolgt durch einen Übersetzer (Compiler). 3. Besteht ein Programm aus mehreren Quellcode-Dateien so ist nach dem Übersetzen (Compilieren) noch ein Binden (Linken) der einzelnen Programmteile erforderlich. 4. Beim Linken wird auch das Laufzeitsystem (runtime library) dazugebunden. Der Trend zur Virtualisierung Schon vor der kompletten Rechnervirtualisierung wurde das Prinzip für Ablaufumgebungen wie Java oder.net eingeführt. Dadurch Abstraktion von Basishardware und Betriebssystem bei der Programmentwicklung möglich (Details s. u.). 4 von 46

5 Wichtige Schritte bei der Programmentwicklung Überblick Kommentar Diese Darstellung ist angelehnt an das Wasserfallmodell. Oftmals ist dies jedoch nicht als strikte zeitliche Ablaufreihenfolge zu sehen (vgl. Vorgehensmodelle im Softwareengineering). 5 von 46

6 Programmierparadigmen und -sprachen 6 von 46

7 Ein kleiner Überblick Maschinennahe Programmierung 80x86-Assembler Prozedurale höhere Programmiersprachen Fortran Cobol C Pascal Objektorientierte Programmiersprachen Smalltalk C++ Java C# Funktionale Sprachen (im Unterschied zu imperativen Sprachen wie oben) Haskell Scala: objektorientierte funktionale Sprache mit imperativen Anteilen KI-Sprachen Lisp Prolog Skript-Sprachen (meist dynamisch typisiert) Java-Script Perl PHP Python Ruby 7 von 46

8 Entstehungsgeschichte von Java 8 von 46

9 Die Anfänge von Java Ende 1990: James Gosling, Patrick Naughton und andere: "Green-Project" bei Sun: Entwickeln von Software zur "intuitiven Steuerung" von Consumer-Electronic-Geräten ursprünglich in C++ Juni 1991: Gosling beginnt mit der Implementierung des "Oak-Interpreters", später umbenannt in Java Sommer 1992: intensive Entwicklungsarbeiten an Oak (und Star7-Hardware, Green-OS, UI), Protoyp entsteht. November 1992: Green-Project "wird" zur Fa. FirstPerson März 1993: Konzentration auf den Bereich interaktives Fernsehen. 9 von 46

10 Die richtige Weichenstellung April 1993: NCSA Mosaic 1.0, der erste graphische Internet-Browser wird vorgestellt. nach vergeblichen Versuchen, mit Settop-Boxen u. ä. zum (geschäftlichen) Erfolg zu kommen Hinwendung auf das WWW. Sept Payne und Naughton schreiben "Webrunner", den Vorläufer von "Hotjava" (Web-Browser) Herbst 1994: Van Hoff implementiert den Java-Compiler in Java. (Gosling vorher in C.) Mai 1995: Sun stellt Java auf der SunWorld 95 offiziell vor (ß-Release). Ende 1995: Netscape wird Java-fähig 10 von 46

11 Die Java-Releases Januar 1996 offizielles Development-Kit für Java ist verfügbar (JDK 1.0) 1997 JDK JDK 1.2 Activator als Browser-Pluging 1999 J2EE Hot-Spot-Technologie JDK JDK 1.4 mit Fokus Konsolidierung 2004 JDK 1.5 (auch 5.0 genannt) Generics, Annotations, u. v. m 2006 JDK 1.6 Unterstützung von Scripting-Sprachen, Java wird schrittweise Open Source 2011 JDK 1.7 nur verhältnismäßig kleine Erweiterungen (auch bei der Sprache) erstmals unter Ägide von Oracle 2014 JDK 1.8 u. a. Lambdas (funktionaler Stil) 11 von 46

12 Diversifizierung Die Aufspaltung Java SE : Standard Edition Java EE: Enterprise Edition Java ME: Micro Edition Java FX: Für RIAs (vgl. Adobe Flex) Die Abspaltung Android Der aktuelle Trend Diverse neue Sprachen für die JVM (Java Virtual Machine) Es gilt zu unterscheiden: "Java" als Sprache "Java" als Plattform, geeignet auch für andere Sprachen. 12 von 46

13 Charakteristika von Java 13 von 46

14 Ziele bei der Entwicklung von Java Ausschnitt aus "The Java Language: A Whitepaper": "Java: A simple, object-oriented, distributed, interpreted, robust, secure, architecture neutral, portable, high-performance, multi-threaded, and dynamic language" 14 von 46

15 Die Ziele im Einzelnen (1) Einfach Syntax basiert auf C (C++) Vereinfachungen gegenüber C/C++: z. B. kein Präprozessor, keine structs, keine Mehrfachvererbung, kein Operatorüberladen, keine Templates (ursprünglich!) einfacheres Paketkonzept: keine Headerdateien keine Zeiger(-arithmetik), nur Referenzen automatische Garbage-Collection Objektorientiert Verteilt eine Basisklasse als Wurzel der Objekthierarchie: Object Programmierung ohne Klassen nicht möglich statt Mehrfachvererbung Schnittstellen (Interface) Einbindung von Applets in HTML-Dateien Zugriff auf entfernte Dateien über URL-Klasse Client/Server-Implementierungen über Sockets RMI (Remote Methode Invocation) 15 von 46

16 Die Ziele im Einzelnen (2) Interpretiert Bytecode Interpreter und Laufzeitumgebung (Java Virtual Machine) Integration in WWW-Browser Robust streng typisiert Ausnahmemechanismus keine Zeiger(arithmetik) Architekturunabhängig pro Plattform Implementierung der Java Virtual Machine Bytecode ist plattformunabhängig plattformunabhängige Entwicklung von GUIs (Graphical User Interfaces) 16 von 46

17 Die Ziele im Einzelnen (3) Portabel keine Implementationsabhängigkeit (wie bei C-Datentypgrößen) Portierung: Java-Compiler in Java, Laufzeitumgebung in ANSI-C Hochperformant schneller als reine Scriptsprachen (z. B. Perl) ursprünglich etwa 20 mal langsamer als C-Code (Native Code ) Compiler: heute unnötig Just-in-time-Compiler (Jit) Hot-Spot-Technologie Effiziente Garbage Collection Multithreading-Fähigkeit direkte Unterstützung von Nebenläufigkeit durch Sprache und API (Bibliotheken der Plattform) Dynamisch Klassen können zur Laufzeit hinzugefügt werden. Klassen können zur Laufzeit ausgetauscht werden. nicht gemeint: dynamisch typisiert! 17 von 46

18 Java Programme 18 von 46

19 Die Übersetzung (Compilierung) Die Situation Erläuterungen Der in den Class-Files enthaltene sogenannte Byte-Code ist "Maschinen-Code" für die JVM (Java Virtual Machine). Diese definiert einen eigenen Befehlssatz. Dieser Befehlsatz kann durch Hardware realisiert werden (ein paar Versuche in der Vergangenheit) oder durch Software, d. h. einen Interpreter (auch JVM genannt). 19 von 46

20 Beispiele für Quellcode Hello World als Applikation (File HelloWorld.java) /** * The HelloWorld class is an application that * simply displays "Hello World!" on the screen. */ public class HelloWorld { public static void main(string[] args) { System.out.println("Hello World!"); //Display the string. } } Hello World als Applet (File HelloWorldApplet.java) import java.applet.applet; import java.awt.graphics; public class HelloWorldApplet extends Applet { public void paint(graphics g) { g.drawstring("hello world!", 50, 25); } } 20 von 46

21 Ausführen von Applikationen und Applets 21 von 46

22 Ein Applet Beispiel: Applet HelloWorldApplet Mit folgendem Tag in die HTML-Seite eingebunden: <applet codebase="classes" code="helloworldapplet.class" width=200 height=50 alt="hello STATIC"> </applet> 22 von 46

23 Das JDK (Java Developer Kit) 23 von 46

24 Bestandteile des JDK Ein JDK umfaßt eine (plattformspezifische) JVM, einen Compiler und sonstige nützliche kommandozeilenorientierte Werkzeuge, sowie eine Klassenbibliothek. 24 von 46

25 Die Tools Siehe ausführliche Dokumentation in der JDK-Dokumentation (für Windows, Linux,...). Überblick:... Die Umgebungsvariable CLASSPATH muss alle Verzeichnisse für benötigte Klassen (Bytecode) umfassen Beispiel-Wert (unter Windows): C:\usr\javagurulib;. Der Compiler javac einfachster Aufruf: javac Beispiel.java Der Interpreter java einfachster Aufruf: java Beispiel Der Java-Appletviewer appletviewer einfachster Aufruf: appletviewer Beispiel.html Der Dokumentationsgenerator javadoc einfachster Aufruf: javadoc Beispiel.java Der Debugger jdb meist integrierter Debugger in der Entwicklungsumgebung Der Disassembler javap 25 von 46

26 Entwicklungsumgebungen (IDEs) Die gebräuchlichsten Entwicklungsumgebungen: Eclipse ( frei) Netbeans (von Sun/Oracle, frei) IntelliJ IDEA (von Jetbrains, kommerziell, eine freie Basisvariante) und Ableger davon (insbes. von Eclipse), wie z. B. JDeveloper 26 von 46

27 Die APIs Die "mitgelieferten" Klassenbibliotheken werden über sogenannte APIs (Application Programming Interface) angesprochen. Darin ist eine Menge von Funktionalität vorhanden, welche die Programmierarbeit wesentlich vereinfacht. Diese Funktionalität ist beschrieben in der API-Documentation (HTML). Diese Bibliotheken teilt man (historisch bedingt) auf in Core-APIs (Paket java) und Extension-APIs (Paket javax). Die Core-APIs und auch viele Extension-APIs sind im Jdk enthalten. Darüber hinaus gibt es massenweise Open-Source-Bibliothekten für die verschiedensten Anwendungssituationen. 27 von 46

28 Syntax und Semantik 28 von 46

29 Der Gegenstand Beispiel: /** * calculates the absolute value of an integer */ public class AbsValue { public static void main(string[] args) { int number = -3; // get a number from somewhere /* replace value of number by its absolute value which means do nothing if it is already positive */ if (number < 0) number = -number; } } System.out.println("The value of number is " + number); Der allgemeine Hintergrund Java (im engeren Sinne) ist eine Programmiersprache, also eine formale Sprache. Eine solche formale Sprache ist durch einen endlichen Satz von Regeln definiert, eine Grammatik. Diese Regeln definieren die Sprache vollständig und eindeutig. (Keine Mehrdeutigkeiten wie bei natürlichen Sprachen). Jedes Programm muss diesen Regeln genügen: korrekte Syntax. Die syntaktische Korrektheit wird vom Compiler geprüft. 29 von 46

30 Grammatiken allgemein Definition Eine Grammatik ist eine (endliche) Menge von formalen Regeln, welche die Syntax einer Sprache definieren. Die Regeln legen fest, welche Folge von Symbolen (Zeichen) aus einem Symbolvorrat (Zeichenvorrat, Alphabet) zulässige Folgen in der Sprache sind. Metasprachen Eine Metasprache (mit Metasymbolen) dient dazu, die Regeln (genannt Produktionen) exakt und eindeutig zu formulieren. Bestandteile von Regeln: Metasymbole (also Zeichen aus der Metasprache) terminale Symbole : die Zeichen aus dem gegebenen Zeichenvorrat sogenannte syntaktische Variablen (nichtterminale Symbole), die durch eigene Regeln erklärt werden. Letztere erlauben es, kompliziertere Gebilde strukturiert beschreiben zu können. 30 von 46

31 Die Metasprache EBNF EBNF: Extended Backus Naur Form Die Metasymbole Metasymbol Bedeutung = ist definiert durch Alternative: (X Y: X oder Y) [] einfach optional ([X] : X kommt nicht oder einmal vor) {} beliebig oft ({X} : X kommt nicht, einmal oder mehrmals vor () Gruppierung (Klammerung) von Teilausdrücken "XYZ" terminales Symbol XYZ XYZ nichtterminales Symbol XYZ. Ende einer Produktion Die Produktion Jede Folge von Zeichen aus dem Zeichenvorrat, die der Grammatik genügt, muss sich aus einem Startsymbol durch Anwendung von endlich vielen Regeln herleiten lassen. 31 von 46

32 EBNF: Ein Beispiel Beispiel: Definition einer ganzen Zahl in EBNF Menge der terminalen Symbole: { +, -, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9} Menge der nichtterminalen Symbole: { Integer, Sign, Digit} Startsymbol: Integer Regeln: Integer = [Sign] Digit {Digit}. Sign = "+" "-". Digit = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9". Syntaxdiagramme Erlauben eine graphische Repräsentation von Produktionen. 32 von 46

33 Formaler Aufbau eines Java-Programms Die Elemente Zeichenvorrat Lexikalischer Aufbau Syntaktischer Aufbau Semantik Man beachte die Analogien zu natürlichen Sprachen Alphabet Wörter Sätze Inhalt 33 von 46

34 Zeichenvorräte bei Programmiersprachen Anforderungen Jedes Programm wird aus Zeichen eines Zeichenvorrats (Zeichensatz, character set) aufgebaut, den kleinsten Einheiten jedes Texts. Die üblichen Zeichensätze umfassen Buchstaben, Ziffern, Sonderzeichen, Steuerzeichen,... Sie müssen im Rechner (Hauptspeicher, Festplatte, Editor,...) darstellbar sein, also als binäre Zahl. Beispiele für Zeichenvorräte: ASCII: 7 bit etwa: 'A' codiert als dezimal 65, 'a' als 97 ISO-Latin-1: 8 bit erweitert ASCII Unicode: 16 bit erweitert ISO-Latin-1 34 von 46

35 Zeichenvorrat von Java Festlegung: Unicode! D. h. Namen von Variablen usw. können aus Unicode-Zeichen bestehen. Problem: Das lokale System (Dateiformat, Tastatur) unterstützt oft nicht den gesamten Unicode-Zeichenvorrat. Lösung: Ersatzdarstellung von Unicode-Zeichen mit der Escape-Syntax \uxxxx, wobei xxxx der Hexadezimalcode des einzusetzenden Unicodezeichens ist (vier hexadezimale Ziffern!). Beispiel: 'm' : dezimal 109, hexadezimal 6D Somit kann im Beispielprogramm AbsValue auch geschrieben werden: if (nu\u006dber < 0) Also: Jedes Java-Programm, das beliebige Unicodezeichen beinhalten soll, kann allein mit Hilfe des ASCII-Zeichensatzes aufgeschrieben werden. Die Ersatzdarstellung wird vom Compiler in das entsprechende Unicodezeichen umgewandelt. Groß- und Kleinschreibung In Java werden Groß- und Kleinbuchstaben unterschieden, d. h. Java ist case sensitive. 35 von 46

36 Die Identifizierung lexikalischer Einheiten Einordnung: Gruppen von aufeinanderfolgenden Zeichen aus dem Zeichenvorrat werden zu (Eingabe-)Einheiten zusammengefasst. Kategorien davon sind Zwischenraum (white space), Kommentare und die eigentlichen lexikalischen Einheiten (Tokens) der Sprache. Leerzeichen und Kommentare haben im Hinblick auf die Übersetzung nur Trennwirkung, sie werden vom Compiler verworfen, während die Tokens als bedeutungstragende Teile weiterverarbeitet werden. Die Tokens müssen durch Trenner separiert sein, wobei manche Trennzeichen selbst Tokens sein können. 36 von 46

37 Trenner und lexikalische Einheiten: Kategorien Die Trenner von Java sind Zwischenraum Kommentare Satzzeichen Operatoren Die lexikalischen Einheiten von Java sind Namen (Bezeichner, identifier) Schlüsselwörter (reservierte Wörter, keywords) Literale (Konstanten, literals) Operatoren Satzzeichen (Interpunktionszeichen, separators) 37 von 46

38 Zwischenraum und Kommentar Zwischenraum wichtigste Trennzeichen als Bestandteile von Zwischenraum (white space): Leerzeichen (Blank), Tabulator, Zeilenumbruch Diese können beliebig häufig hintereinander stehen. Kommentar Typen von Kommentar Zeilenkommentar Kommentarblock Javadoc-Kommentar vgl. AbsValue-Beispiel! 38 von 46

39 Lexikalische Einheiten: Namen In Java werden Klassen, Variablen, Pakete usw. vom Programmierer mit Namen versehen. Ein Name ist eine beliebig lange Zeichenfolge, bestehend aus "Java-Buchstaben" und "Java-Ziffern", wobei das erste Zeichen ein Java-Buchstabe sein muss. Java-Buchstaben umfassen neben den ASCII-Buchstaben weitere "länderspezifische Buchstaben" (Umlaute, griechische Buchstaben,...) und die Sonderzeichen "_" und "$". Die Java-Ziffern umfassen die ASCII-Ziffern. Schlüsselwörter, boolsche Literale (true,false) oder die Referenzkonstante (null) dürfen nicht als Namen gewählt werden. 39 von 46

40 Lexikalische Einheiten: Schlüsselwörter Schlüsselwörter haben eine vordefinierte Bedeutung für den Compiler. Folgende Wörter sind reserviert: abstract default if private this boolean do implements protected throw break double import public throws byte else instanceof return transient case extends int short try catch final interface static void char finally long strictfp volatile class float native super while const for new switch assert continue goto package synchronized enum 40 von 46

41 Lexikalische Einheiten: Operatoren Alle nachfolgenden Zeichenkombinationen (die Semantik wird weiter unten besprochen) = > <! ~? : == <= >=!= && () []. + - * / & ^ % << >> >>> += -= *= /= &= = ^= %= <<= >>= >>>= new (type) instanceof Man beachte In der Folge a--b wird -- vom Compiler als ein Operator aufgefaßt nicht als zwei (Subtraktionsoperator und Vorzeichenoperator). 41 von 46

42 Lexikalische Einheiten: Literale u. Satzzeichen Literale Darunter fallen alle möglichen als Folge von Zeichen aus dem Alphabet angegebenen Werte für die verschiedenen Datentypen (s. u.), z. B. 123, 1.6e-19, 'a', "abc", true, null Satzzeichen Alle nachfolgenden Zeichen (Semantik weiter unten): ( ) { } [ ] ;,. Die Klammern können dabei jeweils nur paarweise auftreten. 42 von 46

43 Lexikalische Analyse Die lexikalische Analyse (Symbolentschlüsselung) erzeugt aus einem Zeichenstrom einen Strom von Token (Symbolen), soweit keine lexikalischen Fehler entdeckt werden. Dies wird realisiert durch den Scanner (Bestandteil des Compilers). Der Aufbau der lexikalischen Einheiten (insbesondere der Tokens) wird durch Regeln beschrieben (z. B. Name, Integer-Literal). Mit diesen Regeln wird der Scanner "gefüttert". Auf diese Weise lassen sich allgemeine Scanner implementieren (z. B. lex). Beispiel Ausschnitt aus der Klasse AbsValue 43 von 46

44 Syntaktischer Aufbau Java-Programm Die Situation Anordnung und Reihenfolge der Tokens in einem Programm können nicht beliebig sein. Sie unterliegen Regeln. Nur wenn diese eingehalten werden, entstehen Konstrukte, denen eine Bedeutung zugewiesen werden kann. Beispiel: if-anweisung in der Klasse AbsValue. Die Sprache Java kann also durch ein Regelsystem (Grammatik), formuliert mit EBNF oder ähnlichem, beschrieben werden (siehe Chapter 18 in der Java Language Specification). Das Startsymbol ist CompilationUnit. Syntaktische Analyse Bei der syntakt. Analyse wird ein Strom von Tokens verarbeitet und gegen eine Grammatik geprüft. Falls die vorgeschriebene Syntax nicht erfüllt ist, muß eine qualifizierte Fehlermeldung erfolgen. Sobald das Programm syntaktisch fehlerfrei ist, kann das Resultat der syntaktischen Analyse (z. B. ein Syntaxbaum) der semantischen Analyse zugeführt werden. Die Syntaxanalyse wird von einem Parser durchgeführt (Bestandteil des Compilers). Da die Grammatik separat spezifiziert werden kann, können sehr allgemeine Parser definiert werden (z. B. yacc). 44 von 46

45 Semantik von Sprachkonstrukten Jenseits der Syntax Die Syntax von Programmiersprachen ist relativ einfach. Für den Programmentwickler maßgeblich sind 1. Semantik: Die Bedeutung der einzelnen Konstrukte. 2. Pragmatik: Was kann man mit diesen Konstrukten alles anfangen? Wie mächtig ist die Sprache? Beispiel Der Ausdruck (number < 0)in der Klasse AbsValue. Ein Konstrukt hat Bedeutung in zwei Richtungen: 1. für den Programmierer 2. für die Zielmaschine: Welcher Maschinencode realisiert das Konstrukt? (eine Art formaler Semantik) 45 von 46

46 Semantische Analyse Die Bedeutung der einzelnen (syntakt. korrekten) Konstrukte wird analysiert, insbes. die von Namen. Beispiel: number in der if-anweisung von Klasse AbsValue. Die semantische Korrektheit eines Programmes kann teilweise durch den Compiler geprüft werden (statische Semantik). Beispiel: number vom Typ boolean Bestimmte semantische Fehler treten aber erst zur Laufzeit auf (dynamische Semantik). Beispiele: Teilen durch 0. Missachtung von Feldgrenzen Ein Qualitätsmerkmal einer Sprache und des zugehörigen Laufzeitsystems ist es, möglichst viele semantische Fehler zu lokalisieren. Auf diese Weise können Fehlerquellen vermindert werden, die zu unerklärlichen Programmabstürzen, zu unsinnigem Verhalten oder zu schwer nachzuvollziehenden Effekten führen. Eine typisierte Sprache erlaubt das Prüfen von vielen semantischen Regeln schon zur Compilierzeit. Ergebnis der semantischen Analyse eines Compilers ist in der Regel ein Zwischencode, der weiteren Compilierschritten (z. B. Optimierungen) und letztendlich der Maschinencode-Generierung zugeführt werden kann. 46 von 46

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter Die Programmiersprache Java Dr. Wolfgang Süß Thorsten Schlachter Eigenschaften von Java Java ist eine von der Firma Sun Microsystems entwickelte objektorientierte Programmiersprache. Java ist......a simple,

Mehr

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr

4 Objektorientierte Programmierung mit Java 4.1 Java-Grundlagen

4 Objektorientierte Programmierung mit Java 4.1 Java-Grundlagen 4 Objektorientierte Programmierung mit Java 4.1 Java-Grundlagen Highlights: objektorientierte Sprache Plattformunabhängigkeit bei Hardware und Betriebssystem optimale Einbindung im Internet und Intranet

Mehr

Grundlagen der Programmierung UE

Grundlagen der Programmierung UE Grundlagen der Programmierung UE Research and teaching network GdP UE H. Prähofer, R. Wolfinger 1 Vortragende Dr. Herbert Praehofer (G1 u. G2) Mag. Reinhard Wolfinger (G3 u. G4) Institute for System Software

Mehr

Applications Applets (eingeschränkte Rechte)

Applications Applets (eingeschränkte Rechte) 1 Arten von Java-Programmen Man unterscheidet 2 verschiedene Arten von Java-Programmen: Applications Applets (eingeschränkte Rechte) Erstere sind eigenständige Programme. Letztere sind "kleine" Programme,

Mehr

Grundlagen der Programmierung UE

Grundlagen der Programmierung UE Grundlagen der Programmierung UE Research and teaching network GdP UE H. Prähofer, M Löberbauer 1 Vortragende Dipl.-Ing. Markus Löberbauer (G1) Dr. Herbert Praehofer (G2 u. G3) Institute for System Software

Mehr

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Einführung in Java PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Gliederung 1. Was ist Java / Geschichte von Java 2. Prinzip der Plattformunabhängigkeit 3. Wie kommt man vom Quellcode zum Programm

Mehr

Java Einführung Programmcode

Java Einführung Programmcode Java Einführung Programmcode Inhalt dieser Einheit Programmelemente Der erste Programmcode Die Entwicklungsumgebung: Sun's Java Software Development Kit (SDK) Vom Code zum Ausführen des Programms 2 Wiederholung:

Mehr

Java-Schulung Grundlagen

Java-Schulung Grundlagen Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings

Mehr

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 22 Einstieg in die Informatik mit Java Grundlagen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White

Mehr

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr

Wo sind wir? Übersicht lexikale Struktur von Java

Wo sind wir? Übersicht lexikale Struktur von Java Wo sind wir? Java-Umgebung Lexikale Konventionen Datentypen Kontrollstrukturen Ausdrücke Klassen, Pakete, Schnittstellen JVM Exceptions Java Klassenbibliotheken Ein-/Ausgabe Collections Threads Applets,

Mehr

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3.

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3. Hello World Javakurs 2014, 1. Vorlesung Sebastian Schuck basierend auf der Vorlage von Arne Kappen wiki.freitagsrunde.org 3. März 2014 This work is licensed under the Creative Commons Attribution-ShareAlike

Mehr

Vorkurs Informatik WiSe 15/16

Vorkurs Informatik WiSe 15/16 Java 1 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 12.10.2015 Technische Universität Braunschweig, IPS Überblick Organisatorisches Arbeitsablauf Hello! 12.10.2015 Dr. Werner Struckmann / Stephan

Mehr

Allgemeines. Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C. #include <stdio.h>

Allgemeines. Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C. #include <stdio.h> Allgemeines Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C #include main() { printf( hello world\n ); } Peter Sobe 1 Die Großfamilie der C-Sprachen

Mehr

Programmiersprachen und Übersetzer

Programmiersprachen und Übersetzer Programmiersprachen und Übersetzer Sommersemester 2010 19. April 2010 Theoretische Grundlagen Problem Wie kann man eine unendliche Menge von (syntaktisch) korrekten Programmen definieren? Lösung Wie auch

Mehr

Berner Fachhochschule Hochschule für Technik und Informatik HTI. Kapitel 1. Einstieg in Java. Dr. Elham Firouzi 06.09.10 1

Berner Fachhochschule Hochschule für Technik und Informatik HTI. Kapitel 1. Einstieg in Java. Dr. Elham Firouzi 06.09.10 1 Kapitel 1 Einstieg in Java Dr. Elham Firouzi 06.09.10 1 1 : Einstieg in Java Einleitung Ein erstes Beispiel Berner Fachhochschule Entwicklung von Java-Programmen Applikationen Applets Vor und Nachteile

Mehr

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

Einführung in die Programmierung I. 2.0 Einfache Java Programme. Thomas R. Gross. Department Informatik ETH Zürich 252-0027 Einführung in die Programmierung I 2.0 Einfache Java Programme Thomas R. Gross Department Informatik ETH Zürich Uebersicht 2.0 Einfache Java Programme Struktur Namen Output 2 Graphische Darstellung

Mehr

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

Java für Anfänger Teil 2: Java-Syntax. Programmierkurs Manfred Jackel 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.

Mehr

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck Javadoc Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle

Mehr

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

1. Der Einstieg in Java. Was heißt Programmieren? 1. Der Einstieg in Java Lernziele: Am Ende dieses Kapitels sollen Sie wissen, aus welchen Bestandteilen ein Java-Programm besteht, Java-Programme übersetzen und ausführen können, Möglichkeiten der Kommentierung

Mehr

Einführung in die C-Programmierung

Einführung in die C-Programmierung Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).

Mehr

Einführung zu den Übungen aus Softwareentwicklung 1

Einführung zu den Übungen aus Softwareentwicklung 1 Einführung zu den Übungen aus Softwareentwicklung 1 Dipl.-Ing. Andreas Riener Universität Linz, Institut für Pervasive Computing Altenberger Straße 69, A-4040 Linz riener@pervasive.jku.at SWE 1 // Organisatorisches

Mehr

Java für C++ Programmierer

Java für C++ Programmierer Java für C++ Programmierer Alexander Bernauer bernauer@inf.ethz.ch Einführung in die Übungen zu Informatik II (D ITET) FS2010 ETH Zürich Ziel Allgemeiner Überblick Kennenlernen der Suchbegriffe Warum Java?

Mehr

Kapitel 3. Codierung von Text (ASCII-Code, Unicode)

Kapitel 3. Codierung von Text (ASCII-Code, Unicode) Kapitel 3 Codierung von Text (ASCII-Code, Unicode) 1 Kapitel 3 Codierung von Text 1. Einleitung 2. ASCII-Code 3. Unicode 2 1. Einleitung Ein digitaler Rechner muss jede Information als eine Folge von 0

Mehr

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

Java für Anfänger Teil 2: Java-Syntax. Programmierkurs Manfred Jackel Java für Anfänger Teil 2: Java-Syntax Programmierkurs 06.-10.10.2008 Manfred Jackel 1 Syntax für die Sprache Java public class Welcome { } Schlüsselworte Reservierte Worte Keywords Wortsymbol Syntax: griech.

Mehr

Empfehlenswerte Literatur

Empfehlenswerte Literatur Empfehlenswerte Literatur 1 Flanagan, David: Java in a Nutshell, O Reilly, UK, 2002 (50 ) Online Referenzen unter http://www.wi3.uni-erlangen.de/lehre/ http://java.sun.com http://www.javaworld.com/ Online

Mehr

Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API).

Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API). Paketdeklaration Paketdeklaration package Bezeichner ; Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API). Ein

Mehr

Programmieren was ist das genau?

Programmieren was ist das genau? Programmieren was ist das genau? Programmieren heisst Computerprogramme herstellen (von griechisch programma für Vorschrift). Ein Computerprogramm ist Teil der Software eines Computers. Als Software bezeichnet

Mehr

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 15: Reguläre Ausdrücke und rechtslineare Grammatiken Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/25 Was kann man mit endlichen

Mehr

Programmieren I. Prinzipieller Ablauf. Eigenschaften von JAVA. Source-Code Javac Bytecode. Java Virtual Machine (Java, Browser, Appletviewer)

Programmieren I. Prinzipieller Ablauf. Eigenschaften von JAVA. Source-Code Javac Bytecode. Java Virtual Machine (Java, Browser, Appletviewer) Programmieren I Grundlagen von JAVA Dr. Klaus Höppner Hello World in JAVA Hochschule Darmstadt WS 2007/2008 Elementare Datentypen 1 / 17 2 / 17 Eigenschaften von JAVA Prinzipieller Ablauf Plattform-und

Mehr

Distributed Computing Group

Distributed Computing Group JAVA TUTORIAL Distributed Computing Group Vernetzte Systeme - SS 06 Übersicht Warum Java? Interoperabilität grosse und gut dokumentierte Library weit verbreitet Syntax sehr nahe an C Erfahrung: Java wird

Mehr

Modellierung und Programmierung 1

Modellierung und Programmierung 1 Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 21. Oktober 2015 Entstehung von Java 1991 entwickeln Mike Sheridan, James

Mehr

JAVA als erste Programmiersprache Semesterkurs

JAVA als erste Programmiersprache Semesterkurs JAVA als erste Programmiersprache Semesterkurs 0 - Einstieg WS 2012 / 2013 Prof. Dr. Bodo Kraft Prof. Dr. Bodo Kraft FH Aachen University of Applied Sciences Fachbereich Medizintechnik und Technomathematik

Mehr

Einführung in Javadoc

Einführung in Javadoc Einführung in Javadoc Johannes Rinn http://java.sun.com/j2se/javadoc Was ist Javadoc? Javadoc ist ein Werkzeug, dass eine standardisierte Dokumentation für die Programmiersprache Java unterstützt. Vorteil:

Mehr

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

Mehr

Pragmatik von Programmiersprachen

Pragmatik von Programmiersprachen Pragmatik von Programmiersprachen Im Kontext der Notation von Quelltexten Mike Becker, 11. Dezember 2014 Szenario: IT Dienstleister Unternehmen: Produkte: Kunden: IT Dienstleistung Beratung und Software

Mehr

C# im Vergleich zu Java

C# im Vergleich zu Java C# im Vergleich zu Java Serhad Ilgün Seminar Universität Dortmund SS 03 Gliederung Entstehung von C# und Java Überblick von C# und Java Unterschiede und Gemeinsamkeiten Zusammenfassung und Ausblick Entstehung

Mehr

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala Das Typsystem von Scala 1 Eigenschaften Das Typsystem von Scala ist statisch, implizit und sicher 2 Nichts Primitives Alles ist ein Objekt, es gibt keine primitiven Datentypen scala> 42.hashCode() res0:

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein. Schritt 1: Installation des Javacompilers JDK. Der erste Start mit Eclipse Bevor Sie den Java-Compiler installieren sollten Sie sich vergewissern, ob er eventuell schon installiert ist. Gehen sie wie folgt

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

AKTUEL ZU JAVA 8 PROGRAMMIEREN IN JAVA. 7. Auflage. Im Internet: Alle Beispielprogramme und Lösungen

AKTUEL ZU JAVA 8 PROGRAMMIEREN IN JAVA. 7. Auflage. Im Internet: Alle Beispielprogramme und Lösungen L AKTUEL ZU fritz JOBST JAVA 8 PROGRAMMIEREN IN JAVA 7. Auflage Im Internet: Alle Beispielprogramme und Lösungen 4 1 Der Einstieg in Java keinem Fall zulässig. Die Schreibweisen Hello.java für den Namen

Mehr

1. Der Einstieg in Java

1. Der Einstieg in Java 1. Der Einstieg in Java Was heißt Programmieren? 1. Der Einstieg in Java Lernziele: Am Ende dieses Kapitels sollen Sie wissen, aus welchen Bestandteilen ein Java-Programm besteht, Java-Programme übersetzen

Mehr

Formale Sprachen und Grammatiken

Formale Sprachen und Grammatiken Formale Sprachen und Grammatiken Jede Sprache besitzt die Aspekte Semantik (Bedeutung) und Syntax (formaler Aufbau). Die zulässige und korrekte Form der Wörter und Sätze einer Sprache wird durch die Syntax

Mehr

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

Software-Engineering und Optimierungsanwendungen in der Thermodynamik Software-Engineering und Optimierungsanwendungen in der Thermodynamik Software-Engineering 5 Programmentwicklung und Debuggen mit IDE und CASE-Tools Übungen Prof. Dr. Rolf Dornberger OPTSWE_SWE: 5 Programmentwicklung

Mehr

Prinzipien der Softwareentwicklung S. Strahringer

Prinzipien der Softwareentwicklung S. Strahringer Gliederung 1 Einführung Was ist ein Programm? Vorteile (und Nachteile) von PHP Erste PHP-Programme Ausführung von PHP-Programmen 2 Grundbegriffe der Programmierung Anweisungen, Variablen, Datentypen und

Mehr

Objektorientierte Softwareentwicklung SoSe 15

Objektorientierte Softwareentwicklung SoSe 15 Objektorientierte Softwareentwicklung SoSe 15 Heinz Faßbender Raum E148 Tel. 0241/6009 51913 Email: fassbender@fh-aachen.de www.fassbender.fh-aachen.de FH AACHEN UNIVERSITY OF APPLIED SCIENCES FACHBEREICH

Mehr

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Java Kurs für Anfänger Einheit 4 Klassen und Objekte Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse

Mehr

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr

Java Kurs für Anfänger Einheit 5 Methoden

Java Kurs für Anfänger Einheit 5 Methoden Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden

Mehr

Vorlesung Objektorientierte Softwareentwicklung. Kapitel 0. Java-Überblick

Vorlesung Objektorientierte Softwareentwicklung. Kapitel 0. Java-Überblick Vorlesung Objektorientierte Softwareentwicklung Sommersemester este 2008 Kapitel 0. Java-Überblick Was sind die Ziele? Warum Java? Komplexe Anwendungen e-business verteilt zuverlässig sicher mobil persistent

Mehr

Grundlagen der Modellierung und Programmierung, Übung

Grundlagen der Modellierung und Programmierung, Übung Grundlagen der Modellierung und Programmierung Übung Prof. Wolfram Amme LS Softwaretechnik Prof. Klaus Küspert LS Datenbanksysteme Prof. Birgitta König-Ries LS Verteilte Systeme Prof. Dr. Wilhelm Rossak

Mehr

Vorlesung Informatik II

Vorlesung Informatik II Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 02. JAVA: Erstes Programm 1 Das erste Java-Programm

Mehr

Einführung in Eclipse und Java

Einführung in Eclipse und Java Universität Bayreuth Lehrstuhl für Angewandte Informatik IV Datenbanken und Informationssysteme Prof. Dr.-Ing. Jablonski Einführung in Eclipse und Java Dipl.Inf. Manuel Götz Lehrstuhl für Angewandte Informatik

Mehr

3. Grundregeln für die Java-Programmierung

3. Grundregeln für die Java-Programmierung 3. Grundregeln für die Java-Programmierung Sprachaufbau von Java Programmen Stilistische Konventionen JavaDoc Allgemeine Informatik 2 SS09 Folie 2.1 Allgemeine Vorbemerkung Bei Programmiersprachen sind

Mehr

Informatik I Tutorium WS 07/08

Informatik I Tutorium WS 07/08 Informatik I Tutorium WS 07/08 Vorlesung: Prof. Dr. F. Bellosa Übungsleitung: Dipl.-Inform. A. Merkel Tutorium: 12 Tutor: Jens Kehne Tutorium 3: Dienstag 13. November 2007 Übersicht Tutorium Übersicht

Mehr

Java Kurs für Anfänger LMU SS09 Einheit 1 Javaumgebung

Java Kurs für Anfänger LMU SS09 Einheit 1 Javaumgebung Java Kurs für Anfänger LMU SS09 Einheit 1 Javaumgebung Ludwig-Maximilians-Universität München Institut für Informatik Programmierung und Softwaretechnik (PST) Prof. Wirsing 6. Mai 2009 1 Der Name Java

Mehr

Client-Server-Beziehungen

Client-Server-Beziehungen Client-Server-Beziehungen Server bietet Dienste an, Client nutzt Dienste Objekt ist gleichzeitig Client und Server Vertrag zwischen Client und Server: Client erfüllt Vorbedingungen eines Dienstes Server

Mehr

Kapitel 2. Methoden zur Beschreibung von Syntax

Kapitel 2. Methoden zur Beschreibung von Syntax 1 Kapitel 2 Methoden zur Beschreibung von Syntax Grammatik, die sogar Könige zu kontrollieren weiß... aus Molière, Les Femmes Savantes (1672), 2. Akt 2 Ziele Zwei Standards zur Definition der Syntax von

Mehr

GEONET Anleitung für Web-Autoren

GEONET Anleitung für Web-Autoren GEONET Anleitung für Web-Autoren Alfred Wassermann Universität Bayreuth Alfred.Wassermann@uni-bayreuth.de 5. Mai 1999 Inhaltsverzeichnis 1 Technische Voraussetzungen 1 2 JAVA-Programme in HTML-Seiten verwenden

Mehr

1. Java Grundbegriffe

1. Java Grundbegriffe 1. Java Grundbegriffe Geschichte von Java Programmieren mit Java Interpretieren vs. Kompilieren Java Byte-Code Jave Virtual Machine Arbeitsmaterialien Allgemeine Informatik 2 SS09 Folie 1.1 Java, eine

Mehr

Übung: Verwendung von Java-Threads

Übung: Verwendung von Java-Threads Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum

Mehr

Prof. Dr. Uwe Schmidt. 21. August 2007. Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)

Prof. Dr. Uwe Schmidt. 21. August 2007. Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252) Prof. Dr. Uwe Schmidt 21. August 2007 Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252) Zeit: 75 Minuten erlaubte Hilfsmittel: keine Bitte tragen Sie Ihre Antworten und fertigen

Mehr

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

Teil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen Teil 5 - Java Programmstruktur Operatoren Schlüsselwörter Datentypen 1 Kommentare in Java In Java gibt es drei Möglichkeiten zur Kommentierung: // Kommentar Alle Zeichen nach dem // werden ignoriert. für

Mehr

IT-Basics 2. DI Gerhard Fließ

IT-Basics 2. DI Gerhard Fließ IT-Basics 2 DI Gerhard Fließ Wer bin ich? DI Gerhard Fließ Telematik Studium an der TU Graz Softwareentwickler XiTrust www.xitrust.com www.tugraz.at Worum geht es? Objektorientierte Programmierung Konzepte

Mehr

J.5 Die Java Virtual Machine

J.5 Die Java Virtual Machine Java Virtual Machine Die Java Virtual Machine 22 Prof. Dr. Rainer Manthey Informatik II Java-Compiler und Java Virtual Machine Quellcode-Datei class C... javac D.java Java-Compiler - Dateien class class

Mehr

1. Formulieren Sie den Algorithmus <Bedienung eines Getränkeautomaten> nach den oben genannten Kriterien.

1. Formulieren Sie den Algorithmus <Bedienung eines Getränkeautomaten> nach den oben genannten Kriterien. Java 1 Einführung Grundlegende Übungsaufgaben Arbeitsauftrag 1.1 1. Formulieren Sie den Algorithmus nach den oben genannten Kriterien. Beispiel: Bedienung eines Getränkeautomaten

Mehr

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

Java für Anfänger Teil 1: Intro. Programmierkurs 11.-15.10.2010 Manfred Jackel Java für Anfänger Teil 1: Intro Programmierkurs 11.-15.10.2010 Manfred Jackel 1 1. Handwerkszeug Eclipse Workbench mit Java-Compiler Java Runtime Environment Notwendige Software Java Runtime Environment

Mehr

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7 Java 7 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Dezember 2011 JAV7 5 Java 7 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen

Mehr

Was ist ein Compiler?

Was ist ein Compiler? Was ist ein Compiler? Was ist ein Compiler und worum geht es? Wie ist ein Compiler aufgebaut? Warum beschäftigen wir uns mit Compilerbau? Wie ist die Veranstaltung organisiert? Was interessiert Sie besonders?

Mehr

Zahlensysteme: Oktal- und Hexadezimalsystem

Zahlensysteme: Oktal- und Hexadezimalsystem 20 Brückenkurs Die gebräuchlichste Bitfolge umfasst 8 Bits, sie deckt also 2 8 =256 Möglichkeiten ab, und wird ein Byte genannt. Zwei Bytes, also 16 Bits, bilden ein Wort, und 4 Bytes, also 32 Bits, formen

Mehr

JAVA. Ein kurzer Überblick. Thomas Karp

JAVA. Ein kurzer Überblick. Thomas Karp JAVA Ein kurzer Überblick Thomas Karp WAS IST JAVA? Java ist eine fast rein objektorientierte Sprache nicht JavaScript eine professionelle Sprache eine im Unterricht weit verbreitete Sprache für verschiedene

Mehr

Grundlagen. Kapitel 1

Grundlagen. Kapitel 1 Grundlagen Dieses Kapitel umfasst grundlegende Fragen und Aufgaben zur Erstellung von C++-Programmen. Hierzu zählen auch das Inkludieren von Header-Dateien Eine Header-Datei beinhaltet Informationen, die

Mehr

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Inhalt dieser Einheit Variablen (Sinn und Aufgabe) Bezeichner Datentypen, Deklaration und Operationen Typenumwandlung (implizit/explizit) 2 Variablen

Mehr

Grundlagen der Informatik für Ingenieure I

Grundlagen der Informatik für Ingenieure I 2 Java: Java-Einführung 2 Java: Java-Einführung 2.1 Java-Entwicklungsgeschichte 2.2 Java Eigenschaften 2.3 Java-Entwicklungsumgebung 2.4 Application vs. Applet 2.5 Ein erstes Programm 2.1 2.1 Java - Entwicklungsgeschichte

Mehr

Version 0.3. Installation von MinGW und Eclipse CDT

Version 0.3. Installation von MinGW und Eclipse CDT Version 0.3 Installation von MinGW und Eclipse CDT 1. Stellen Sie fest, ob Sie Windows in der 32 Bit Version oder in der 64 Bit Version installiert haben. 2. Prüfen Sie, welche Java Runtime vorhanden ist.

Mehr

1. Formale Sprachen 1.2 Grammatiken formaler Sprachen

1. Formale Sprachen 1.2 Grammatiken formaler Sprachen 1. Formale Sprachen 1.2 Grammatiken formaler Sprachen Die Regeln zur Bildung korrekter Wörter einer Sprache kann man in einer natürlichen Sprache formulieren. Da dies jedoch wieder Mehrdeutigkeiten mit

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In

Mehr

Java Schulung. Objektorientierte Programmierung in Java. Prof. Dr. Nikolaus Wulff

Java Schulung. Objektorientierte Programmierung in Java. Prof. Dr. Nikolaus Wulff Java Schulung Objektorientierte Programmierung in Java Prof. Dr. Nikolaus Wulff Was ist Java? Java ist eine einfache, objektorientierte, verteilte, interpretierte, robuste, sichere, architekturneutrale,

Mehr

Primitive Datentypen

Primitive Datentypen Primitive Datentypen 2 Arten von Datentypen: primitive Datentypen (heute) Objekte (später) Java ist streng typisiert, d.h. für jede Variable muß angegeben werden was für eine Art von Wert sie aufnimmt.

Mehr

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java Objektorientierte Programmierung mit Java Eine praxisnahe Einführung mit BlueJ Klassenentwurf Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? 1.0 Zentrale Konzepte

Mehr

Testen mit JUnit. Motivation

Testen mit JUnit. Motivation Test First Design for Test in Eclipse (eigentlich: ) zu einer Klasse Beispiel zur Demonstration Ergänzungen Test First "Immer dann, wenn Du in Versuchung kommst, etwas wie eine print- Anweisung oder einen

Mehr

Objektorientierte Programmierung. Kapitel 3: Syntaxdiagramme und Grammatikregeln

Objektorientierte Programmierung. Kapitel 3: Syntaxdiagramme und Grammatikregeln Stefan Brass: OOP (Java), 3. Syntaxdiagramme und Grammatikregeln 1/32 Objektorientierte Programmierung Kapitel 3: Syntaxdiagramme und Grammatikregeln Stefan Brass Martin-Luther-Universität Halle-Wittenberg

Mehr

Tutorium Rechnerorganisation

Tutorium Rechnerorganisation Woche 2 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Mehr

Einführung in die Programmierung mit BlueJ

Einführung in die Programmierung mit BlueJ Einführung in die Programmierung mit BlueJ Thema 1 Grundlagen der Programmierung mit BlueJ Dr. Henry Herper Otto-von-Guericke-Universität Magdeburg - WS 2013/14 Java 1991-92 Java (1995) Anwendungsgebiet:

Mehr

Programmiervorkurs. Organisation: Steffen Gebert, Alexander Wolff. Tutoren: Jürgen Zöller, Jonathan Stoll. Wintersemester 2012/2013

Programmiervorkurs. Organisation: Steffen Gebert, Alexander Wolff. Tutoren: Jürgen Zöller, Jonathan Stoll. Wintersemester 2012/2013 Programmiervorkurs Wintersemester 2012/2013 Organisation: Steffen Gebert, Alexander Wolff Tutoren: Jürgen Zöller, Jonathan Stoll Kontakt (für Organisatorisches, Fehler auf Folien...): Steffen Gebert steffen.gebert@informatik.uni-wuerzburg.de

Mehr

Übungsblatt 3: Algorithmen in Java & Grammatiken

Übungsblatt 3: Algorithmen in Java & Grammatiken Humboldt-Universität zu Berlin Grundlagen der Programmierung (Vorlesung von Prof. Bothe) Institut für Informatik WS 15/16 Übungsblatt 3: Algorithmen in Java & Grammatiken Abgabe: bis 9:00 Uhr am 30.11.2015

Mehr

Einführung in PHP. (mit Aufgaben)

Einführung in PHP. (mit Aufgaben) Einführung in PHP (mit Aufgaben) Dynamische Inhalte mit PHP? 2 Aus der Wikipedia (verkürzt): PHP wird auf etwa 244 Millionen Websites eingesetzt (Stand: Januar 2013) und wird auf etwa 80 % aller Websites

Mehr

Definition von domänenspezifischen Sprachen mit Xtext: Einführung. 19. November 2014

Definition von domänenspezifischen Sprachen mit Xtext: Einführung. 19. November 2014 Definition von domänenspezifischen Sprachen mit Xtext: Einführung 19. November 2014 Überblick Was ist zu tun, wenn wir selbst einen Ansatz für modellgetriebenen Entwicklung definieren wollen? Anforderungserfassung

Mehr

Deklarationen in C. Prof. Dr. Margarita Esponda

Deklarationen in C. Prof. Dr. Margarita Esponda Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.

Mehr

Java: Kapitel 1. Überblick. Programmentwicklung WS 2008/2009. Holger Röder Holger Röder

Java: Kapitel 1. Überblick. Programmentwicklung WS 2008/2009. Holger Röder Holger Röder Java: Kapitel 1 Überblick Programmentwicklung WS 2008/2009 Holger Röder holger.roeder@informatik.uni-stuttgart.de Was ist Java? Die Java-Technologie umfasst die Programmiersprache Java sowie die Java-Plattform

Mehr

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben. Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.

Mehr

3 Die Programmiersprache Java

3 Die Programmiersprache Java 3 Die Programmiersprache Java Im letzten Kapitel haben wir die theoretischen Grundlagen der Programmierung diskutiert. Jetzt werden wir mit Java eine konkrete Programmiersprache kennen lernen. Die Sprache

Mehr

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: Vererbung. Teil 3: super() www.informatikzentrale.de Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und

Mehr