Programmierer verwenden Compiler, um Quellcode in Maschinencode umzuwandeln.
Computer lesen Befehle aus einer Maschinensprache, die binär geschrieben sind, d. h. lange Folgen von Nullen und Einsen. Während Computer diese Sprache effizient lesen können, können die meisten menschlichen Programmierer dies nicht. Programmierer arbeiten deshalb in einer für sie verständlichen Programmiersprache, die sie dann in die für den Computer verständliche Maschinensprache übersetzen. Während viele neuere Sprachen Dolmetscher verwenden, die während des Programmablaufs von einer in die andere übersetzen, sind ältere Programmiersprachen verwendeten Compiler, die diese Übersetzung vollständig durchführten, bevor der Computer die Programm.
Vorteil: Eigenständig und effizient
Ein großer Vorteil von kompilierten Programmen besteht darin, dass es sich um in sich abgeschlossene Einheiten handelt, die ausgeführt werden können. Da sie bereits in Binärdateien in Maschinensprache kompiliert sind, gibt es keine zweite Anwendung oder kein zweites Paket, das der Benutzer auf dem neuesten Stand halten muss. Wenn ein Programm für Windows auf einer x86-Architektur kompiliert wird, benötigt der Endbenutzer nur ein Windows-Betriebssystem, das auf einer x86-Architektur läuft. Außerdem kann ein vorkompiliertes Paket schneller ausgeführt werden als ein Interpreter, der Quellcode in Echtzeit kompiliert.
Video des Tages
Nachteil: Hardwarespezifisch
Da ein Compiler Quellcode in eine bestimmte Maschinensprache übersetzt, müssen Programme speziell kompiliert für OS X, Windows oder Linux, sowie speziell für 32-Bit oder 64-Bit Architekturen. Für einen Programmierer oder ein Softwareunternehmen, das versucht, ein Produkt einem möglichst breiten Publikum zugänglich zu machen, bedeutet dies, mehrere Versionen des Quellcodes für dieselbe Anwendung zu pflegen. Dies führt zu mehr Zeitaufwand für die Quellcode-Pflege und zusätzliche Probleme bei der Veröffentlichung von Updates.
Vorteil: Hardwareoptimierung
Während die Beschränkung auf ein bestimmtes Hardwarepaket seine Nachteile hat, kann das Kompilieren eines Programms auch seine Leistung erhöhen. Benutzer können Compilern spezifische Optionen zu den Details der Hardware senden, auf der das Programm ausgeführt wird. Dies ermöglicht dem Compiler, Maschinensprachencode zu erstellen, der die angegebene Hardware am effizientesten nutzt, im Gegensatz zu allgemeineren Codes. Dies ermöglicht auch fortgeschrittenen Benutzern, die Leistung eines Programms auf ihren Computern zu optimieren.
Nachteil: Kompilierungszeiten
Einer der Nachteile eines Compilers besteht darin, dass er tatsächlich Quellcode kompilieren muss. Während die Kompilierung der kleinen Programme, die viele Programmieranfänger codieren, relativ zeitaufwändig ist, kann die Kompilierung größerer Anwendungssuiten erheblich Zeit in Anspruch nehmen. Wenn Programmierer nichts anderes tun müssen, als darauf zu warten, dass der Compiler fertig ist, kann sich diese Zeit summieren – besonders während die Entwicklungsphase, wenn der Code kompiliert werden muss, um die Funktionalität zu testen und Fehler zu beheben Glitches.