Interpreter und Compiler

Es gibt zwei Sorten von höheren Programmiersprachen, nämlich Interpretersprachen und Compilersprachen.

Compiler (= »Zusammenfasser«) übersetzen ein gesamtes fertiges Programm immer zuerst komplett in Maschinensprache (das nennt man kompilieren), und danach führt der Computer das ganze Programm aus.

Berühmte Compilersprachen sind C und C++. Sie haben den Vorteil, dass man mit ihnen sehr schnell ablaufende und leistungsfähige Programme schreiben kann – aber sie haben den Nachteil, dass das Programmieren anspruchsvoller ist und oft auch langwieriger, denn der Programmierer muss sich hier schon im Voraus viele Gedanken über genaue Datenformate und die interne Verarbeitung und Datenverwaltung des Computers machen, damit am Ende ein komplett funktionierendes Maschinenprogramm daraus entsteht. Bei jeder Programmänderung muss erst wieder das ganze Programm übersetzt werden, was ein schnelles Testen mühsam macht, und bei Fehlern im Programm kann der gesamte Computer leicht »abstürzen«.

Compilersprachen sind sehr wichtig für die professionelle Programmierung von zeitkritischen Programmen, Spielen, Steuerungen, Betriebssystemen. Ein großer Teil der professionellen Software wird heutzutage in C++ geschrieben.

Aber auch Interpretersprachen sind enorm leistungsfähig und werden ebenfalls auf vielen professionellen Gebieten eingesetzt. Bei Interpretersprachen muss ein Programm vor der Ausführung nicht übersetzt werden, sondern es läuft im Hintergrund immer gleichzeitig ein Verwaltungs- und Übersetzungsprogramm mit (der Interpreter = »Übersetzer« oder die Programm-Engine), das jeden einzelnen Befehl, wenn er dran ist, übersetzt, ausführt und dann zum nächsten weitergeht. Diese Programm-Engine kümmert sich im Hintergrund automatisch um eine sinnvolle Verwaltung der Speicherbelegung oder darum, Fehler zu erkennen, abzufangen und zu verhindern. Das erleichtert dem Programmierer die Arbeit, und er kann sich auf das Wesentliche konzentrieren sowie Programme sehr einfach und schnell testen. Gleichzeitig laufen diese Programme natürlich etwas langsamer ab, weil ja immer eine Programm-Engine im Hintergrund mitläuft, überprüft und übersetzt – aber bei den heutigen Geschwindigkeiten der Computer fällt das auf den meisten Gebieten kaum noch ins Gewicht.

Interpretersprachen sind also leichter zu erlernen und einfacher anzuwenden. Sie eignen sich deshalb perfekt, um die Grundlagen des Programmierens zu erlernen. Typische Interpretersprachen sind BASIC (das war früher sehr beliebt), PHP, JavaScript – oder eben auch Python.

[+]  Zwischen Interpreter- und Compilersprachen

Daneben gibt es übrigens noch Sprachen, die ein »Mittelding« sind – wo ein Compiler vorübersetzt, aber gleichzeitig eine Programm-Engine im Hintergrund mitläuft – damit wird ein Kompromiss aus leichterer Anwendung und schneller Ausführung erreicht. Zu diesen Sprachen gehören zum Beispiel Java und C#. Trotz ihrer Vereinfachungen sind auch sie doch eher für fortgeschrittene Programmierer geeignet – zum Lernen des Programmierens an sich eignen sich die reinen Interpretersprachen auf jeden Fall besser.