Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
e2:wiearbeitetjava [2017/09/22 13:40] – angelegt admin03 | e2:wiearbeitetjava [2017/09/22 13:42] (aktuell) – admin03 | ||
---|---|---|---|
Zeile 6: | Zeile 6: | ||
Die 2. Generation stellten dann die Assemblerprogramme dar. Sie zeichneten sich durch etwas besser lesbare Quelltexte aus, weil die Symbolfolgen aus Nullen und Einsen durch bessere Bezeichner ersetzt wurden. Die Programmierung war weiterhin sehr maschinennah und deshalb kleinschrittig, | Die 2. Generation stellten dann die Assemblerprogramme dar. Sie zeichneten sich durch etwas besser lesbare Quelltexte aus, weil die Symbolfolgen aus Nullen und Einsen durch bessere Bezeichner ersetzt wurden. Die Programmierung war weiterhin sehr maschinennah und deshalb kleinschrittig, | ||
- | {{: | + | {{: |
+ | |||
+ | Mittlerweile wurden die Programmiersprachen weiter entwickelt, damit die Programme besser für Menschen lesbar sind und auch komplexere Befehle wie z.B. Schleifen enthalten können. Zudem wurde man damit von dem Befehlssatz des Prozessors unabhängig. Damit der Prozessor diese „Hochsprache“ verarbeiten kann, müssen die Quelltexte jedoch nach wie vor in Maschinenprogramme übersetzt werden. | ||
+ | |||
+ | Ein möglicher Ansatz ist der eines sog. Compilers, welcher die Programmbefehle Schritt für Schritt übersetzt, bevor das Programm gestartet werden kann. Die Programmiersprachen Delphi oder C++ sind bekannte Vertreter dieser Gattung. Das folgende Schaubild verdeutlicht die Arbeitsweise eines Compilers: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Einen anderen Ansatz verfolgen die Interpretersprachen, | ||
+ | |||
+ | |||
+ | Beide Ansätze haben Vor- und Nachteile: | ||
+ | |||
+ | * Ein vom Compiler übersetztes Programm ist nachher auch ohne den Compiler ausführbar, | ||
+ | * Interpreter arbeiten i.A. wesentlich langsamer, da sie jeden Befehl neu „übersetzen“, | ||
+ | * Compiler sind i.A. wesentlich komplexer aufgebaut als Interpreter und zwar umso mehr, je stärker sich die Struktur der Hochsprache von der Struktur der Maschinensprache unterscheidet. | ||
+ | * Vom Compiler übersetzte Programme arbeiten immer nur auf demselben Prozessortyp. | ||
+ | |||
+ | Java kombiniert beide Ansätze und erzeugt zunächst ein unabhängiges Zwischenformat: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Aus einem Programm in Hochsprache (z.B. HalloWelt.java) entsteht durch Compilieren (Übersetzen) das Zwischenformatprogramm HalloWelt.class. Dieses ist immer noch maschinen-un¬abhängig und kann übers Internet verschickt werden, ohne dass der Sender wissen muss, welchen Prozessor der Empfänger hat. | ||
+ | |||
+ | Beim Empfänger arbeitet ein Programm, das diesen Zwischenformatcode auf dem Rechner als Maschinenprogramm ausführbar macht, bei uns ist das die so genannte JAVA-VIRTUAL-MACHINE (JVM). Sie macht es auch (und vor allem) möglich, dass diese Programme im vorhandenen Browser ausgeführt werden können. Die JVM arbeitet dabei als Interpreter. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ |