EMZETT.
Login

Code

Kurz: Allgemeiner Begriff für Anweisungen, die ein Computer ausführen kann oder die in eine ausführbare Form gebracht werden.

Genauer: Umfasst je nach Kontext unterschiedliche Stufen: Quellcode (von Menschen lesbarer Programmtext), Maschinencode (direkt vom Prozessor ausführbare Bytes) oder Bytecode (Zwischenform, z. B. bei Java). Wird durch einen Compiler oder Interpreter von einer Stufe in die nächste überführt.

Im Detail

Der Weg von Quellcode zu ausführbarem Code läuft je nach Sprache unterschiedlich: Kompilierte Sprachen wie C oder C++ übersetzen den gesamten Quellcode vorab in Maschinencode, der danach direkt und ohne weitere Übersetzung läuft — schnell zur Laufzeit, aber Plattform-spezifisch (für jedes Betriebssystem/jede CPU-Architektur muss neu kompiliert werden). Interpretierte Sprachen wie Python oder klassisches JavaScript lesen den Quellcode dagegen Zeile für Zeile zur Laufzeit und führen ihn direkt aus, ohne separaten Kompilierschritt — flexibler und plattformunabhängiger, aber meist langsamer.

Java und C# nehmen einen Mittelweg: Sie kompilieren zunächst zu einem plattformunabhängigen Bytecode, der dann von einer virtuellen Maschine (JVM bei Java, CLR bei C#) auf der jeweiligen Zielplattform ausgeführt wird — oft sogar erst zur Laufzeit nochmal in echten Maschinencode übersetzt (Just-in-Time-Kompilierung), um die Vorteile beider Welten zu kombinieren: einmal kompilieren, überall laufen lassen, bei nahezu kompilierter Geschwindigkeit.

Code als Text vs. Code als Struktur

Auf der Festplatte ist Quellcode zunächst nichts weiter als reiner Text — was ihn von normalem Fließtext unterscheidet, ist die strenge, formale Grammatik (Syntax), die ein Compiler oder Interpreter zwingend einhalten muss, um den Text überhaupt verarbeiten zu können. Der erste Schritt jeder Verarbeitung ist deshalb das “Parsen”: Der Text wird zunächst in einzelne Token zerlegt (Schlüsselwörter, Bezeichner, Operatoren, Klammern), die anschließend zu einem Syntaxbaum (Abstract Syntax Tree, AST) zusammengesetzt werden — einer baumartigen Struktur, die die eigentliche Bedeutung des Codes unabhängig von Formatierung oder Kommentaren abbildet. Erst auf Basis dieses Baums generiert der Compiler den eigentlichen Maschinen- oder Bytecode.

Lesbarkeit als eigener Wert

Weil Code fast immer öfter gelesen als geschrieben wird (bei Bugfixes, Code-Reviews, Erweiterungen durch andere Entwickler), gilt Lesbarkeit in der Softwareentwicklung als eigenständiges Qualitätsmerkmal, unabhängig von reiner Funktionalität — Konventionen wie konsistente Einrückung, aussagekräftige Variablennamen oder Linter-Tools, die Stilregeln automatisch durchsetzen, existieren genau deshalb. “Clean Code” hat sich als eigener Fachbegriff etabliert für Code, der nicht nur korrekt funktioniert, sondern auch für Menschen leicht nachvollziehbar ist.

Minifizierter und obfuskierter Code

Am anderen Ende des Spektrums steht Code, der bewusst NICHT für Menschen lesbar sein soll: Minifizierter JavaScript-Code (Leerzeichen, Zeilenumbrüche und lange Variablennamen entfernt) reduziert die Dateigröße für schnellere Ladezeiten im Browser, bleibt aber technisch noch nachvollziehbar. Obfuskierter Code geht weiter und verschleiert absichtlich die Struktur (z. B. durch bedeutungslose Variablennamen oder künstlich verkomplizierte Kontrollflüsse), meist um Reverse Engineering zu erschweren — ein Kompromiss, der die Ausführungsgeschwindigkeit kaum beeinflusst, aber Wartbarkeit komplett opfert.

Siehe auch: Quellcode, Pseudocode, Java