Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

Quelltext

Quelltext, auch Quellcode (englisch source code) oder unscharf Programmcode genannt, ist in der Informatik der für Menschen lesbare, in einer …

Inhalt4 Abschnitte
  1. 1. Begriff und Formen
  2. 2. Erstellung und Verwaltung
  3. 3. Übersetzung und Ausführung
  4. 4. Lizenzen und weitere Verwendungen

Begriff und Formen

Quelltext, auch Quellcode (englisch source code) und unscharf Programmcode, ist der für Menschen lesbare Text eines Computerprogramms, der in einer Programmiersprache geschrieben ist. Er beschreibt ein Programm formal so genau und vollständig, dass ein Computer ihn automatisch in Maschinensprache übersetzen kann.

Quelltext muss nicht ausschließlich Text sein. Er kann ganz oder teilweise aus grafisch verbundenen logischen Funktionsblöcken bestehen, etwa in Simulink oder als UML-Diagramm. Ein Programm kann zudem aus mehreren Quelldateien unterschiedlicher Formate bestehen oder grafische und textuelle Bestandteile verbinden, beispielsweise UML mit Methodenimplementierungen in einer Programmiersprache.

Erstellung und Verwaltung

Quelltext wird meist von Hand in einer integrierten Entwicklungsumgebung oder einem Texteditor erstellt. Auch Codegeneratoren können aus strukturierten Entwürfen wie Struktogrammen oder UML-Entwürfen automatisch Code erzeugen. Werkzeuge für Round-Trip-Engineering können sowohl aus Entwürfen Code als auch aus Code wieder Entwürfe erzeugen. Manuelle Änderungen am Code werden dabei nachträglich in den Entwurf übernommen, sodass Änderungen an verschiedenen Stellen in den Entwicklungsprozess einfließen können.

Ein einfacher Texteditor genügt meist. Sprachspezifische Editoren erleichtern die Arbeit durch Syntaxhervorhebung: Teile des Codes werden ihrer Funktion entsprechend farbig dargestellt. Programmierer verwenden außerdem Formatierungsregeln, etwa Einrückungen und Groß- oder Kleinschreibung, damit der Code besser lesbar ist. Manche Sprachen schreiben eine bestimmte Formatierung vor, zum Beispiel Fortran-77 und Python. Integrierte Entwicklungsumgebungen können den Code automatisch formatieren; dies wird Beautifier genannt.

Bei großen Programmen beschreiben zusätzliche Informationen die Abhängigkeiten zwischen Quelldateien. Dadurch kann ein einzelner Kompilierungsaufruf alle nötigen Schritte ausführen und nur geänderte Bestandteile oder von Änderungen abhängige Teile erneut übersetzen. Makefiles sind ein Beispiel dafür. Eine Software-Versionsverwaltung speichert den Quelltext so, dass Änderungen dokumentiert, später eingesehen und bei Bedarf rückgängig gemacht werden können. Sie unterstützt außerdem die Zusammenarbeit mehrerer Programmierer.

Übersetzung und Ausführung

Damit ein Computer ein Programm ausführen kann, muss der Quelltext in Maschinensprache umgesetzt werden, also in eine für den Computer verständliche Folge von Bits. Ein Compiler übersetzt den Code vor der Ausführung. Ein Interpreter oder ein JIT-Compiler übernimmt die Übersetzung zur Laufzeit.

Manche Programmiersprachen kombinieren beide Wege: Zunächst wird der Quelltext meist auf Veranlassung des Programmierers in einen abstrakten Zwischencode übersetzt. Eine Laufzeitumgebung überführt ihn erst bei der Ausführung durch einen Interpreter oder JIT-Compiler in Maschinencode. Der Vorteil ist, dass derselbe Zwischencode auf vielen Plattformen ausführbar ist und keine eigene Softwareversion für jedes System nötig ist. Java-Bytecode und die Common Intermediate Language sind typische Beispiele. Mit einem Debugger lässt sich die Funktionsweise eines Programms zur Laufzeit verfolgen.

Ein Precompiler verarbeitet Anweisungen, die der originäre Quelltext enthalten kann, die aber nicht zur eigentlichen Programmiersprache gehören, etwa SQL-Anweisungen. Er übersetzt sie in Befehle der Programmiersprache; die ursprünglichen Anweisungen bleiben in den oft nur temporär erzeugten Quelltextdaten meist als Kommentare sichtbar. Makroprozessoren arbeiten ähnlich und erzeugen aus Makroanweisungen Befehle der jeweiligen Sprache.

Die beim Kompilieren erzeugten Maschinenbefehle repräsentieren gewöhnlich die programmierte Funktion. Bei höheren Programmiersprachen entstehen meist mehrere Maschinenbefehle pro Quellcodeanweisung. Dazu gehören auch Aufrufe von Betriebssystemfunktionen. Statt den Code selbst einzufügen, kann ein Compiler eine passende Routine aus einer Programmbibliothek direkt in den Zielcode einfügen oder nur einen Aufruf für sie erzeugen, etwa für Datenbankaufrufe oder komplexe Algorithmen. Solche Routinen führen die im Quelltext festgelegten Anweisungen als gekapselte Unterprogramme aus.

Lizenzen und weitere Verwendungen

Software und ihr Quelltext unterliegen dem Urheberrecht. Man unterscheidet proprietäre Software und quelloffene Software. Quelloffene Programme stehen unter einer Open-Source-Lizenz und werden in der Regel zusammen mit ihrem Quelltext ausgeliefert. Die Lizenz erlaubt dessen Änderung und Weitergabe. Dadurch kann der Code untersucht, geprüft und an besondere Anforderungen angepasst werden. Verfechter des Open-Source-Prinzips sehen darin auch einen Qualitätsvorteil: Fachleute könnten Fehler besser finden, selbst beheben oder bessere Fehlermeldungen an die ursprünglichen Programmierer liefern. Die Überprüfbarkeit des Codes kann das Vertrauen in Korrektheit und Funktionalität erhöhen. Freie Software ist in diesem Sinne mit Open-Source-Software identisch.

Proprietäre Software wird normalerweise ohne Quelltext, also als Closed Source, oder unter besonders restriktiven Lizenzen ausgeliefert. Zum Schutz von Abnehmern oder Anwendern können Vereinbarungen zur Quelltexthinterlegung, sogenannte Source Code Escrow Agreements, verwendet werden. Bei individuell beauftragter Individualsoftware wird die Übergabe des Quelltexts gewöhnlich vereinbart. Erstellt ein Anwender, beispielsweise ein Unternehmen, Software für eigene Zwecke, sind Lizenzvereinbarungen überflüssig.

Im weiteren Sinn bezeichnet Quelltext auch die menschenlesbare Beschreibung eines gerenderten Mediums. Webseiten liegen in der Regel als HTML vor. Bei Wikipedia-Artikeln und vielen dynamischen Webseiten meint Quelltext häufig nicht das erzeugte HTML, sondern die Informationsquelle, aus der die Webseite erzeugt wird: Bei Wikipedia wird Wiki-Code in HTML und CSS transformiert. Auch PostScript und andere Vektorformate gelten ungerendert als Quelltext. VHDL beschreibt elektronische Schaltungen, die in einem Simulator Datenverarbeitung betreiben können.

Weiterlesen

C (Programmiersprache) C ist eine imperative und prozedurale Programmiersprache, die der Informatiker Dennis Ritchie in den frühen 1970er Jahren an den Bell Laboratories entwickelte. Programmcode Als Programmcode (oder Programmkode) werden die Anweisungen bezeichnet, die im Rahmen der Softwareentwicklung für ein bestimmtes Computerprogramm oder einen … Informatik Als einfache Rechengeräte leisteten Abakus und später der Rechenschieber unschätzbare Dienste. 1641 konstruierte Blaise Pascal eine mechanische … Programmiersprache Bei deklarativen Programmiersprachen ist der Ausführungsalgorithmus schon vorab festgelegt und wird nicht im Quelltext ausformuliert/beschrieben, sondern es … Maschinensprache Mit einem Assembler: Assemblersprachen formulieren die Prozessorbefehle des Maschinencodes als Mnemonics in einer einfachen Syntax. Dieser Quelltext wird … Unified Modeling Language Die UML ist die dominierende Sprache für die Softwaresystem-Modellierung. Der erste Kontakt zur UML besteht häufig darin, dass Diagramme in UML im Rahmen der … Integrierte Entwicklungsumgebung Eine integrierte Entwicklungsumgebung (IDE, von englisch integrated development environment) ist eine Sammlung von Computerprogrammen, mit denen die … Python (Programmiersprache) Python ([ˈpʰaɪθn̩], [ ˈpʰaɪθɑn], auf Deutsch auch [ ˈpʰyːtɔn]) ist eine universell nutzbare, üblicherweise interpretierte, höhere Programmiersprache. Datei Eine Datei (englisch file) ist in der Informationstechnologie die Zusammenstellung gleichartiger digitaler Daten, die zum Speichern auf Datenträgern oder … Versionsverwaltung Eine Versionsverwaltung ist ein System, das zur Erfassung von Änderungen an Dokumenten oder Dateien verwendet wird. Alle Versionen werden in einem Archiv … Computer Ein Computer (englisch; deutsche Aussprache [kɔmˈpjuːtɐ]) oder Rechner ist ein Gerät, das mittels programmierbarer Rechenvorschriften Daten verarbeitet. Laufzeit (Informatik) Der Begriff Laufzeit (englisch runtime) beschreibt in der Informatik einerseits die Zeitdauer, die ein Programm, ausgeführt durch einen Rechner, …