Unter dem Quelltext oder auch Quellcode (engl. source code) oder Programmcode versteht man in der Informatik den für Menschen lesbaren in einer Programmiersprache geschriebenen Text eines Computerprogrammes. Abstrakt betrachtet kann man den Quelltext eines Computerprogramms auch als Software-Dokument bezeichnen, welches das Programm so formal exakt und vollständig beschreibt, dass dieses aus ihm vollständig automatisch vom Computer generiert werden kann.
Bevor das Programm, das der Programmierer schreibt, von einem Computer ausgeführt werden kann, muss es in Maschinensprache, also in eine vom Computer verständliche Folge von Bits, umgesetzt werden. Dies kann entweder offline durch einen Compiler oder – zur Laufzeit – durch einen Interpreter oder JIT-Compiler geschehen. In vielen Fällen wird mittlerweile eine Kombination aus beiden Varianten gewählt, bei der zuerst - meist vom Programmierer - der Quelltext der eigentlichen Programmiersprache in einen abstrakten Zwischencode übersetzt wird, welcher dann zur Laufzeit von einer sogenannten Laufzeitumgebung durch einen Interpreter oder JIT-Compiler in den eigentlichen Maschinencode überführt wird. Dieses Prinzip hat den Vorteil, dass ein und derselbe Zwischencode auf sehr vielen verschiedenen Plattformen ausführbar ist und somit nicht für jedes auf dem Markt übliche System eine eigene Version der Software erscheinen muss. Typische Beispiele für einen solchen Zwischencode sind der Java-Bytecode sowie die Common Intermediate Language. Mittels eines Debuggers kann die Funktionsweise des Programms zur Laufzeit verfolgt werden.
Programmiersprachen wie C++, Java, Perl oder auch PHP arbeiten mit Begriffen, die Menschen leichter zugänglich sind. Bei der Programmierung wird dann auf der Grundlage der Begrifflichkeit der jeweiligen Programmiersprache ein so genannter Quellcode erstellt. Dieser ist im Vergleich zum Maschinencode besser verständlich, muss aber im nächsten Schritt noch in die maschinen-lesbare binäre Form gebracht werden
Inhaltsverzeichnis |
Der Programmcode wird meist von Hand geschrieben, aber es gibt auch Codegeneratoren, die aus Entwürfen, z. B. Struktogrammen oder UML-Entwürfen, Code automatisch generieren. Besonders interessant sind Entwicklungssysteme, die aus Entwürfen Code und umgekehrt auch aus Code wieder Entwürfe erzeugen können. Dabei werden manuelle Änderungen am Code nachträglich in den Entwurf wieder eingebaut. Auf diese Weise ist ein so genanntes „Round Trip Engineering“ möglich, bei dem an jeder Stelle manuelle Veränderungen in den gesamten Entwicklungsprozess eingebracht werden können.
Zum Erstellen des Quelltextes ist meist ein einfacher Texteditor ausreichend, jedoch vereinfachen spezielle integrierte Entwicklungsumgebungen einige Arbeitsschritte. Mittels der Syntaxhervorhebung sind die Teile des Quelltextes entsprechend ihrer Funktionalität farblich hervorgehoben, was die Lesbarkeit verbessert.
Bei größeren Programmen, die aus vielen einzelnen Quelltext-Dateien bestehen, können so genannte Makefiles eingesetzt werden, welche die Abhängigkeiten beim Kompilieren beachten und, mittels eines einzigen Aufrufes, alle Arbeitsschritte zur Erstellung des fertigen Programms steuern und ausführen. Zur besseren Dokumentation der Änderungen oder der gezielten Synchronisierung von mehreren parallel arbeitenden Programmierern wird der Quelltext häufig mit einer Software-Versionsverwaltung gespeichert, wodurch alle Änderungen später einsehbar sind.
Software, und der dazugehörige Quellcode, können typischerweise in zwei Kategorien unterteilt werden: Proprietäre Software und Open Source Software.
Programme die unter einer Open Source Lizenz stehen, werden in der Regel direkt mit ihrem Quelltext ausgeliefert, dessen Änderung und Weitergabe durch die Lizenz gestattet ist. Dies ermöglicht deren Anpassung für spezifische Bedürfnisse. Verfechter des Open Source Prinzips sind der Meinung, dass dies zudem die Qualität verbessere, da Fachleute die Fehler besser lokalisieren könnten und sie entweder direkt beheben (durch sog. „Patches“ oder Flicken) oder den ursprünglichen Programmierern qualitativ bessere Fehlermeldungen liefern könnten. Die Möglichkeit, Open Source Software (kurz OSS) anhand ihres Quelltextes zu überprüfen, erhöhe das Vertrauen des Anwenders in ihre Korrektheit und die Freiheit von trojanischen Pferden und Hintertüren. Eine weitere Variante von Open Source stellt Freie Software dar. Lizenzen dieser Art gewährleisten dem Anwender weitere Freiheiten bezüglich der Nutzung, Studierbarkeit und Weitergabe des Programmes und des dazugehörigen Quelltextes.
Proprietäre Software wird ohne Quelltext (Closed Source), oder nur mit Quelltext, der besonders restriktiven Lizenzen unterliegt, ausgeliefert. Dem Schutz eines Abnehmers dienen dann manchmal Vereinbarungen zur Quelltexthinterlegung (Source Code Escrow Agreements). Lediglich bei der Erstellung von Individualsoftware wird häufiger auch die Übergabe des Quelltexts vereinbart.
Im weiteren Sinne versteht man unter Quelltext auch die menschenlesbare Version eines beliebigen Codes. Beispielsweise ist der Quelltext von Web-Seiten in der Regel in HTML geschrieben.
Beispiele für Quelltexte findet man unter „Hallo-Welt-Programm“.
| Wiktionary: Quelltext – Bedeutungserklärungen, Wortherkunft, Synonyme und Übersetzungen |