Java Reference
In-Depth Information
In den Anfängen des Computerzeitalters gab es daher nur wenige Experten, die überhaupt in der
Lage waren, mit dem Computer zu arbeiten, die also „seine Sprache“ verstanden. Im Laufe der Zeit
sind dann sogenannte höhere Programmiersprachen entwickelt worden, mit denen versucht wird,
die Kluft zwischen der Arbeitsweise der Maschine und der Denkweise des Menschen zu verrin-
gern. Höhere Programmiersprachen sind problemorientiert, während Assembler- bzw. Maschinen-
sprachen maschinenorientiert sind. Das bedeutet, mit Hilfe höherer Programmiersprachen können
menschliche Ideen und Konzepte zur Lösung von Problemen viel besser als Programme formuliert
und dem Computer mitgeteilt werden, als dies mit Maschinensprachen möglich ist.
6.1.3 Compiler
Wie aber „versteht“ nun ein Computer Programme, die in einer höheren Programmiersprache formu-
liert sind? Ganz einfach: Es müssen Dolmetscher her, die die in einer höheren Programmiersprache
formulierten Programme in äquivalente Maschinenprogramme übersetzen.
Prinzipiell könnte die Aufgabe des Dolmetschens von Menschen erledigt werden, nämlich von den
oben angesprochenen Computerexperten. Das würde das Problem aber auch nicht lösen: Experten
sind rar und nicht unmittelbar verfügbar. Von daher sind die Experten sehr schnell auf die Idee
gekommen, als Dolmetscher selbst wieder die Computer zu nutzen. Sie haben (in Maschinenspra-
che) Dolmetscherprogramme geschrieben, die sogenannten Compiler . Die Aufgabe eines Compilers
besteht darin zu überprüfen, ob ein in einer höheren Programmiersprache formuliertes Programm
korrekt ist. Falls dies der Fall ist, übersetzt der Compiler es in ein gleichbedeutendes - man sagt
auch äquivalentes - Maschinenprogramm.
Der Begriff korrekt muss an dieser Stelle noch ein wenig präzisiert werden. Wozu ein Compiler fähig
ist, ist die Überprüfung, ob das benutzte Vokabular und die Grammatikregeln der Programmierspra-
che eingehalten worden sind. Wozu er (leider) nicht fähig ist, ist die Überprüfung, ob das Programm
auch das tut, was es soll, d.h. ein Compiler kann nicht überprüfen, ob das Programm das zu lö-
sende Problem korrekt und vollständig löst. Diese Aufgabe bleibt immer noch dem Programmierer
überlassen.
6.1.4 Programmiersprachen lernen
Durch die Definition höherer Programmiersprachen ist es heute nicht alleine Experten vorbehal-
ten, Computer zum Bearbeiten und Lösen von Problemen zu nutzen. Sie werden sehen, nach dem
Durcharbeiten dieses Buches werden Sie dies auch schaffen.
Genauso wie Sie zum Beherrschen einer Fremdsprache, wie Englisch oder Italienisch, das Vokabu-
lar und die Grammatik dieser Sprache lernen müssen, müssen Sie auch zum Beherrschen einer Pro-
grammiersprache ihr Vokabular und die zugrunde liegenden Grammatikregeln lernen. Dabei ist das
Vokabular einer Programmiersprache sehr viel geringer als das Vokabular einer Fremdsprache. Die
Grammatik einer Programmiersprache ist jedoch sehr viel präziser als die Grammatik einer natürli-
chen Sprache. Hinzu kommt, dass zum Verständnis einer Programmiersprache bestimmte Konzepte
erlernt werden müssen, die bei natürlichen Sprachen nicht existieren. Bei imperativen Programmier-
sprachen sind dies bspw. Variablen, Anweisungen und Prozeduren.
Stellen Sie sich vor, Sie haben sich ein englisches Wörterbuch gekauft und etwa 1000 Vokabeln
und die wichtigsten Grammatikregeln gelernt. Sie fahren nach England und möchten sich mit einem
Search WWH ::




Custom Search