Computer – egal ob der heimische PC, moderne Smartphones oder Rechner aus Industrie und Wissenschaft – arbeiten im binären System: an/aus, geladen/nicht geladen, 1/0. Eine Abfolge von Zuständen (Bits) weist den Computer an, was dieser zu tun hat. Während in den Anfangstagen der Computertechnologie noch tatsächlich mit diesen beiden Zuständen Befehle erstellt wurden, ist man längst dazu übergangen, Anwendungen in einer vom Menschen lesbaren Programmiersprache zu schreiben. Das mag zunächst seltsam klingen, denn als Laie erkennt man auch in einem Quellcode hauptsächlich wirres Kauderwelsch.
„Menschenlesbar“ ist in diesem Zusammenhang allerdings als Gegenbegriff zu „maschinenlesbar“ zu verstehen. Während Computer nur mit Zahlenwerten arbeiten, nutzen Menschen zur Kommunikation Wörter. Genau wie Fremdsprachen muss man die verschiedenen Programmiersprachen zunächst lernen, bevor man sie einsetzen kann.
Unterschiedliche Programmiersprachen
Es gibt hunderte verschiedene Programmiersprachen. Dabei kann man nicht unbedingt sagen, dass es per se bessere oder schlechtere gibt, denn dies ist immer im Kontext des Projekts zu sehen und abhängig von der Anwendung, für die der Quellcode eingesetzt wird. Zu den bekanntesten Programmiersprachen gehören:
Damit der Computer diese Sprachen versteht, müssen sie allerdings anschließend in Maschinencode übersetzt werden.
Compiler & Interpreter
Damit Computer den von Programmierern verfassten Quelltext weiterverarbeiten können, muss ein Übersetzer zwischen beiden stehen – in Form eines zusätzlichen Programms. Diese Hilfsanwendung kann entweder in Form eines Compilers oder als Interpreter auftauchen:
- Compiler: Dieser Anwendungstyp übersetzt (kompiliert) den Quellcode in einen Code, der vom Prozessor verstanden und ausgeführt werden kann. Dieser Maschinencode lässt sich in Form einer ausführbaren Datei speichern.
- Interpreter: Ein Interpreter übersetzt den Quellcode Zeile für Zeile und führt diesen direkt aus. Der Übersetzungsvorgang läuft dadurch sehr viel schneller ab als bei einem Compiler, dafür ist die Ausführung langsamer und benötigt eine große Menge an Arbeitsspeicher.
Man hat nicht die freie Wahl: Die Programmiersprache legt fest, ob ein Compiler oder ein Interpreter zum Einsatz kommen muss. Heutzutage setzt man vermehrt auch eine Zwischenlösung ein: Just-in-time-Kompilierung (JIT). Diese Art der Übersetzung versucht die Vorteile beider Programme (schnelle Analyse und schnelle Ausführung) zu kombinieren und wird z. B. in Browsern eingesetzt, um effektiver mit JavaScript, PHP oder Java umzugehen.
Auszeichnungssprachen
Auch beim Grundgerüst einer Webseite spricht man von einem Quelltext. Grundlage hierfür ist allerdings keine Programmiersprache, sondern die Auszeichnungssprache HTML. Eine Auszeichnungssprache legt fest, wie ein Inhalt strukturiert ist. So lassen sich mit HTML z. B. Überschriften, Absätze oder Hervorhebungen definieren. Ein HTML-Dokument ist an sich kein Programm, kann aber eines enthalten, etwa in Form von JavaScript-Code. Ähnliches gilt für andere Auszeichnungssprachen, etwa XML.