Folien - SSW

Transcrição

Folien - SSW
Grundlagen der Programmierung UE
JOHANNES KEPLER UNIVERSITY LINZ
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
Johannes Kepler University
Altenbergerstrasse 69
A-4040 Linz / Austria
Tel.: ++43 (732) 2468 7132
EMail: [email protected]
http: www.ssw.uni-linz.ac.at
Raum: HF 306 (Hochschulfondgebäude 3. Stock)
JOHANNES KEPLER UNIVERSITY LINZ
Research and teaching network
GdP UE
© H. Prähofer , M Löberbauer
2
Webpage der LVA
http://http://www.ssw.uni-linz.ac.at/Teaching/Lectures/GdP/2005/index.html
ƒ Alle wichtigen Infos wie
ƒ
ƒ
ƒ
ƒ
Termine
Angaben
Unterlagen
Informationen
findet man auf dieser Seite
JOHANNES KEPLER UNIVERSITY LINZ
Research and teaching network
GdP UE
© H. Prähofer , M Löberbauer
3
Höhere Programmiersprachen
ƒ
Höhere Programmiersprachen dienen der Formulierung von Programmen
ƒ
Sind für den Computer lesbar und verarbeitbar
ƒ können vom Computer gelesen werden
ƒ können vom Computer in ein ausführbares Programm übersetzt werden
(Compiler)
ƒ
Sind aber auch für den Menschen wesentlich einfacher lesbar und schreibbar
als Maschinensprache
ƒ Programmieren wird wesentlich erleichtert
ƒ Programme können vom Experten gelesen und verstanden werden
JOHANNES KEPLER UNIVERSITY LINZ
Research and teaching network
GdP UE
© H. Prähofer , M Löberbauer
4
Geschichte der Programmiersprachen
Jahr
1957
1960
1962
1965
1968
1971
1972
1973
1980
1983
1987
1995
2000
Sprache
Fortran
Algol-60
Cobol
Basic
APL
Lisp
PL/I
Algol-68
Pascal
Prolog
C
Modula-2
Ada
Smalltalk
C++
Oberon
Java
C#
Bemerkung
technische Anwendungen
“Algol-Familie”
kaufmännische Anwendungen
Anfänger-Sprache
Vektoren und Matrizen
funktionale Sprache
Allzwecksprache
Nachfolger von Algol-60
Einfluß auf spätere Sprachen
Wissen und Schlußregeln
“Unix-Sprache”
Nachfolger von Pascal
Allzwecksprache; DoD
objektorientierte Sprache
objektorientierte Erweiterung von C
Weiterentwicklung von Modula-2
Weiterentwicklung von C++; WWW
Weiterentwicklung von Java durch Microsoft
JOHANNES KEPLER UNIVERSITY LINZ
Research and teaching network
GdP UE
© H. Prähofer , M Löberbauer
5
Programmiersprache Java
ƒ
Java ist eine höhere, problemorientierte Programmiersprache, die laut Sun
durch folgende Eigenschaften charakterisiert ist:
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
Simple: einfacher als C++
Architecture-neutral: läuft auf Windows-Rechner als auch auf Unix/Linux, Mac
Object-oriented
Portable
Distributed
High-performance
Interpreted
Multithreaded
Robust
Secure
Dynamic
JOHANNES KEPLER UNIVERSITY LINZ
Research and teaching network
GdP UE
© H. Prähofer , M Löberbauer
6
Java Virtual Machine
ƒ
Java-Programme werden nicht direkt auf dem Computer ausgeführt
sondern von einen speziellen Programm, nämlich der
Java Virtual Machine (JVM)
Vorteile:
ƒ
ƒ
Java-Programme laufen „kontrolliert“ in der JVM ab
ƒ Erhöhte Sicherheit und Zuverlässigkeit
Kann auf jede Plattformen portiert werden.
ƒ Vom Super Computer bis zu Handys
ƒ Von Unix bis Windows-CE
ƒ Selbes Programm läuft (mit Einschränkungen) auf alle diesen Plattformen ohne
nochmals übersetzt oder portiert zu werden, da sich die VM auf jeder Plattform
gleich verhält
JOHANNES KEPLER UNIVERSITY LINZ
Research and teaching network
GdP UE
© H. Prähofer , M Löberbauer
7
Unterschied normale Programmausführung Ö Virtuelle Machine (VM)
normale Prgrammausführung
Ö
Virtuelle Machine
Application
I-B
er
ei
ch
Application
JN
Systemlibraries
Operating-System
Virtual Machine
Systemlibraries
Operating-System
Hardware
Hardware
JOHANNES KEPLER UNIVERSITY LINZ
Research and teaching network
GdP UE
© H. Prähofer , M Löberbauer
8
Java Runtime Environment (JRE)
ƒ
ƒ
ƒ
Eine Plattform ist die Hard- und Softwareumgebung auf der ein Programm läuft.
Die meisten Plattformen bestehen aus Hardware und Betriebssystem.
Die Java-Plattform unterscheidet sich von den meisten anderen Plattformen dadurch,
das sie eine reine Software-Plattform ist, die für verschiedenste Hardware und
Betreibssysteme verfügbar ist.
ƒ
Die Java Runtime Environment besteht aus zwei Teilen:
• Die Java Virtual Machine (Java VM)
• Das Java Application Programming Interface (Java API)
JOHANNES KEPLER UNIVERSITY LINZ
Research and teaching network
GdP UE
© H. Prähofer , M Löberbauer
9
Java Development Tookit (JDK)
== Programmwerkzeuge
zum Erstellen, Übersetzen und
Testen von Java-Programmen
ƒ
Java Compiler
Ö javac
ƒ
ƒ übersetzt den Quellcode in Java Byte-Code
Java Debugger
Ö jdb
ƒ
ƒ Tool zur Fehlersuche
Java Disassembler
Ö javap
ƒ
ƒ erzeugt aus Byte-Code lesbaren Quellcode
Weitere Tools
ƒ jar, javah, javadoc, javakey, serialver, ...
ƒ
Java Dokumentation (separates Download)
JOHANNES KEPLER UNIVERSITY LINZ
Research and teaching network
GdP UE
© H. Prähofer , M Löberbauer
10
Erstellen und Ausführen von Java-Programmen
Beispielprogramm HelloWorld
Erstellen von Java-Programm
mit Editor
Quellcode (Sourcecode) in Java
Java Compiler (javac)
Java Zwischencode (Byte Code)
Java Runtime (java)
Programmausführung
Erstellen von Programm
HelloWorld mit Editor
Datei HelloWorld.java mit Java-Source
javac HelloWorld.java
Datei HelloWorld.class mit Byte-Code
java HelloWorld
Ausführung von Programm HelloWorld
JOHANNES KEPLER UNIVERSITY LINZ
Research and teaching network
GdP UE
© H. Prähofer , M Löberbauer
11
Programm schreiben (Wordpad)
JOHANNES KEPLER UNIVERSITY LINZ
Research and teaching network
GdP UE
© H. Prähofer , M Löberbauer
12
Programm kompilieren (javac)
JOHANNES KEPLER UNIVERSITY LINZ
Research and teaching network
GdP UE
© H. Prähofer , M Löberbauer
13
Programm starten (java)
JOHANNES KEPLER UNIVERSITY LINZ
Research and teaching network
GdP UE
© H. Prähofer , M Löberbauer
14
In und Out
ƒ
Die Programme In und Out unterstützen eine einfache Ein- und Ausgabe
ƒ
Dateien (verfügbar von der Homepage der LVA)
In.java
Out.java
ins gleich Verzeichnis wie Programmdatei
ƒ
Mit Methoden wie
In.read()
In.readInt()
In.readWord()
können Werte eingelesen haben
ƒ
Mit Methoden wie
Out.print()
Out.println()
können Werte ausgegeben haben
JOHANNES KEPLER UNIVERSITY LINZ
Research and teaching network
GdP UE
© H. Prähofer , M Löberbauer
15
Java-Programm "Sum" (Sum.java)
public class Sum {
public static void main(String[] args) {
int sum = 0;
int number;
Out.print("Bitte Zahlen eingeben: ");
number = In.readInt();
while (number > 0) {
sum = sum + number;
number = In.readInt();
}
Out.print("Die Summe ist:");
Out.printLn(sum);
}
}
JOHANNES KEPLER UNIVERSITY LINZ
Research and teaching network
GdP UE
© H. Prähofer , M Löberbauer
16