Der Begriff Quellcode bezeichnet in der Informatik einen in einer Programmiersprache verfassten, für Menschen lesbaren Text eines Programmes. Aus abstrakter Sicht ist ein Quellcode ein Software-Dokument, welches das Computerprogramm derart vollständig und exakt beschreibt, dass der Quellcode von einem Rechner automatisch in ausführbare Maschinensprache übersetzt werden kann. Auch in nicht-textueller Form kann ein Quellcode vorliegen, nämlich dann, wenn er eine grafische Darstellung der Verknüpfung von Funktionsblöcken darstellt. Ein UML-Diagramm ist ein Beispiel einer solchen grafischen Form eines Quellcodes. Der Quellcode eines Computerprogramms kann aus mehreren Teilen bzw. Dateien bestehen. Ebenfalls möglich ist eine zum Teil grafische, zum Teil textuelle Darstellung.
Erstellung eines Quellcodes
Die Erstellung eines Quellcodes erfolgt meist manuell unter Verwendung eines Texteditors oder einer integrierten Entwicklungsumgebung. Des Weiteren ist es auch möglich, Quellcode mit Hilfe von Codegeneratoren zu erstellen, die in der Lage sind, Programmcode aus Entwurfsdokumenten wie UML-Diagrammen oder Struktogrammen automatisch zu erzeugen. Mittlerweile gibt es auch Entwicklungswerkzeuge, die aus Entwurfsdokumenten Programmcode und aus Programmcode wiederum Entwurfsdokumente generieren können, wobei etwaige Änderungen des Programmcodes bei der Erstellung des Entwurfsdokumentes berücksichtigt werden. Diese Vorgehensweise ermöglicht ein sogenanntes „Round-Trip-Engineering“, bei dem während des gesamten Entwicklungsprozesses manuelle Änderungen vorgenommen werden können.
Im Allgemeinen reicht zum Erstellen des Quellcodes ein einfacher Texteditor aus, wobei spezielle integrierte Entwicklungsumgebungen jedoch zu einer Vereinfachung einiger Arbeitsschritte führen können. So besitzen diese Entwicklungsumgebungen in der Regel die Funktion, bestimmte syntaktische Elemente farblich hervorzuheben, was zu einer Verbesserung der Lesbarkeit führt. Besteht das Computerprogramm aus mehreren Quelldateien, erweist sich eine integrierte Entwicklungsumgebung auch bei deren Verwaltung als hilfreich. Da Informationen über die Abhängigkeiten zwischen einzelnen Quellcodedateien verfügbar sind, kann das gesamte Programm mittels eines einzigen Befehls kompiliert werden. Des Weiteren bieten integrierte Entwicklungsumgebungen die Möglichkeit einer Software-Versionsverwaltung, in welcher sämtliche Änderungen dokumentiert sind.
Die Formatierung des Quelltextes spielt bei dessen Entwicklung eine besondere Rolle. Mit Formatierung ist in diesem Zusammenhang gemeint, dass der Quellcode nach bestimmten Regeln umformatiert wird, wobei die Funktionalität des Programms nicht geändert wird. Die Quelltextformatierung kann von Hand vorgenommen werden, bei integrierten Entwicklungsumgebungen ist die automatische Formatierung zumeist im Funktionsumfang enthalten. Auch mit Hilfe spezieller Programme, den sogenannten Quelltext-Formatierern, kann die Formatierung des Quelltextes vorgenommen werden. Ziel der Quelltextformatierung ist es, den Quellcode in eine gut lesbare und leicht verständliche Form zu bringen. Zu den weiteren Vorteilen der Quellcodeformatierung gehören die stilistische Einheitlichkeit, da im gesamten Programm ein und derselbe Programmierstil beibehalten wird, sowie die Vereinheitlichung des Quellcodelayouts. Dass Programme im Falle einer Quellcodeformatierung leichter wartbar sind, stellt ebenfalls ein Vorteil dieser Methode dar. Gegen die Formatierung von Quelltext wird häufig als Argument angeführt, dass die Quelltextformatierung den persönlichen Stil des Programmentwicklers zerstöre.
Kompilierung und Ausführung eines Quellcodes
Die Ausführung eines Programms setzt das Übersetzen des Quelltextes in eine maschinenlesbare Sprache voraus. Dieser Vorgang wird als Kompilieren bezeichnet. Ein Programm kann unter Anwendung eines Compilers offline, also vor der Programmausführung, kompiliert werden. Eine Online-Kompilierung während der Laufzeit ist mittels eines JIT-Compilers oder Interpreters ebenfalls möglich. Inzwischen wird auch eine Kombination dieser beiden Varianten eingesetzt. In diesem Fall wird der Quellcode zunächst in einen Zwischencode übersetzt, der anschließend während der Programmausführung in Maschinencode transformiert wird. Dass derselbe Zwischencode auf unterschiedlichen Plattformen ausgeführt werden kann, ist der große Vorteil dieses Verfahrens, das beispielsweise bei der Programmiersprache Java zur Anwendung kommt.
Lizenzierung von Quellcodes
Neben der Software unterliegt auch der zugrunde liegende Quellcode dem Urheberrecht. Dabei kann zwischen Open-Source-Software und proprietärer Software unterschieden werden. Steht eine Software unter einer Open-Source-Lizenz, wird das Programm in der Regel zusammen mit dem Quelltext ausgeliefert. Sowohl die Änderung als auch die Weitergabe des Programms ist laut den Inhalten der Lizenz ausdrücklich erlaubt. Bei Open-Source-Programmen besteht somit die Möglichkeit, den Quelltext zu analysieren, zu prüfen und an die persönlichen Anforderungen anzupassen. Dass auf diese Weise Fehler leichter gefunden und behoben werden können, wird als Hauptvorteil des Open-Source-Prinzips angesehen. Dass die Software durch den Anwender selbst überprüft werden kann, ist ein weiterer Vorteil des Open-Source-Prinzips. Im Gegensatz zu freier Software wird proprietäre Software ohne Quellcode ausgeliefert. Nur bei der Entwicklung von Individualsoftware ist eine Übergabe des Quellcodes unter Umständen möglich.
Quellcodeverschleierung
Die Quellcodeverschleierung (Obfuscator) ist eine Methode, um Quelltext zu verschleiern. Eingesetzt wird sie vor allem für den Schutz von Programmen vor Reverse Engineering, wobei mit Reverse Engineering das Extrahieren einzelner Komponenten und Strukturen aus dem fertigen Programm gemeint ist. Um den Quellcode eines Programms zu verschleiern, wird der Programmcode in eine für Menschen nur kaum lesbare Form transformiert. Jedoch besitzt der verschleierte Quellcode die gleiche Funktionalität und die in etwa die gleiche Ausführungsgeschwindigkeit wie der Originalcode. Als Nebeneffekt der Quelltextverschleierung kann eine Verkleinerung des Speicherbedarfs auftreten. Von Vorteil ist die aus der Quelltextverschleierung resultierende Speicherplatzverkleinerung vor allem dann, wenn Anwendungsprogramme für mobile Geräte entwickelt werden sollen. Mittels einer Quelltextverschleierung veränderter Programmcode ist allerdings nur schwer zu debuggen. Der Grund hierfür liegt darin, dass die Fehlerquelle im transformierten Code der entsprechenden Stelle im Originalcode kaum mehr zugeordnet werden kann.
Zusammenfassung
In der Informatik bezeichnet Quellcode den in einer Programmiersprache geschriebenen, menschenlesbaren Text eines Programms. Er kann sowohl textuell als auch grafisch, wie in UML-Diagrammen, vorliegen. Der Quellcode kann von einem Computer automatisch in Maschinensprache übersetzt werden.
Die Erstellung von Quellcodes erfolgt oft manuell mit Texteditoren oder integrierten Entwicklungsumgebungen. Es gibt aber auch Codegeneratoren, die automatisch Quellcode aus Entwurfsdokumenten erstellen können. Integrierte Entwicklungsumgebungen erleichtern durch Funktionen wie Syntaxhervorhebung und Versionsverwaltung den gesamten Entwicklungsprozess.
Quelltextformatierung ist ein wichtiger Schritt zur Verbesserung der Lesbarkeit und Wartbarkeit des Codes. Sie kann manuell oder durch spezielle Tools erfolgen und zielt darauf ab, stilistische Einheitlichkeit und eine übersichtliche Struktur zu schaffen.
Die Kompilierung des Quellcodes ist notwendig, um ein ausführbares Programm zu erhalten. Dies kann offline oder online während der Laufzeit geschehen, wobei auch gemischte Ansätze wie bei der Programmiersprache Java möglich sind.
Lizenzen regeln die Nutzungsrechte am Quellcode. Während Open-Source-Software den Quellcode zugänglich macht und Modifikationen erlaubt, wird bei proprietärer Software der Quellcode nicht offengelegt.
Zur Sicherung des Quellcodes gegen Reverse Engineering wird oft Quellcodeverschleierung eingesetzt. Dies macht den Code schwer lesbar, beeinträchtigt jedoch in der Regel nicht die Funktionalität oder Ausführungsgeschwindigkeit des Programms.
Häufige Fragen und Antworten
Was versteht man unter Quellcode in der Informatik?
In der Informatik bezeichnet Quellcode den in einer Programmiersprache geschriebenen, menschenlesbaren Text eines Programms. Er kann sowohl textuell als auch grafisch, wie in UML-Diagrammen, vorliegen. Der Quellcode kann von einem Computer automatisch in Maschinensprache übersetzt werden.
Wie erstellt man Quellcode?
Die Erstellung von Quellcodes erfolgt oft manuell mit Texteditoren oder integrierten Entwicklungsumgebungen. Es gibt aber auch Codegeneratoren, die automatisch Quellcode aus Entwurfsdokumenten erstellen können. Integrierte Entwicklungsumgebungen erleichtern durch Funktionen wie Syntaxhervorhebung und Versionsverwaltung den gesamten Entwicklungsprozess.
Warum ist die Quelltextformatierung wichtig?
Die Quelltextformatierung ist ein wichtiger Schritt zur Verbesserung der Lesbarkeit und Wartbarkeit des Codes. Sie kann manuell oder durch spezielle Tools erfolgen und zielt darauf ab, stilistische Einheitlichkeit und eine übersichtliche Struktur zu schaffen. Dadurch wird der Code leichter lesbar, besser verständlich und einfacher zu warten.
Was ist die Kompilierung von Quellcode?
Die Kompilierung des Quellcodes ist notwendig, um ein ausführbares Programm zu erhalten. Sie kann offline vor der Programmausführung oder online während der Laufzeit erfolgen. Bei der Kompilierung wird der Quellcode in eine maschinenlesbare Sprache übersetzt, damit der Computer das Programm ausführen kann.
Was ist die Quellcodeverschleierung?
Die Quellcodeverschleierung ist eine Methode, um den Quelltext eines Programms zu verschleiern. Sie wird häufig verwendet, um den Code vor Reverse Engineering zu schützen. Durch Verschleierungstechniken wird der Programmcode in eine für Menschen schwer lesbare Form transformiert, ohne die Funktionalität des Programms zu beeinträchtigen.