So wird Quellcode zu Software übersetzt
Netzwelt-Wissen: Die Funktionsweise eines Compilers
Entwickler haben heute die Wahl zwischen über zwanzig Programmiersprachen, mit denen sie neue Software schreiben. Damit aus den Anweisungen ein lauffähiges Programm wird, muss der Quelltext mit einem sogenannten Compiler übersetzt werden. Netzwelt erklärt, wie diese speziellen Programme funktionieren und welche wichtigen Trends es gibt.
Inhaltsverzeichnis
- 1Prozessoren und Architekturen
- 2Code: Schreibweise und Semantik
- 3Compiler für die Skriptsprachen
- 4Zu höherer Software übersetzen
- 5Schneller Code mit Bibliotheken
- 6Beliebte Vertreter: Intel und Gnu
- 7Rückwärts: Codes aus Software
- 8Fazit
In den Anfangstagen der PC-Branche gab es nur wenige Programmiersprachen, mit denen wirklich komfortabel gearbeitet werden konnte. Heute stehen mit Java, C/C++ bzw. C#, dem Apple-Pendant Objective-C und den Skriptsprachen Python, Perl und PHP den Entwicklern ganz unterschiedliche Sprachen zur Verfügung. Sie alle haben eine Sache gemeinsam: Ein Programm muss stets "kompiliert" werden, bevor es sich ausführen lässt.
Die Anweisungen in einer bestimmten Sprache kann der PC-Prozessor nicht ohne weiteres verstehen - er arbeitet nur mit seinem speziellen Maschinencode. Zwar könnten Entwickler theoretisch neue Software auch direkt damit formulieren, das ist jedoch auf Dauer nicht sehr bequem. Die so genannten Compiler haben in der modernen Software-Industrie die Aufgabe, Anweisungen in einer bestimmten Sprache in ausführbaren Maschinencode zu übersetzen.
Prozessoren und Architekturen
Bevor die ersten Compiler entwickelt wurden, mussten Anweisungen direkt an den Rechner übergeben werden. Dazu dient der sogenannte Maschinencode: Befehle, die dazu zählen, kann ein Prozessor direkt verarbeiten. Moderne CPUs unterstützen hunderte spezialisierter Befehle, mit denen Berechnungen optimal kontrolliert werden können. Der Maschinencode besteht aus Binärcode, der sich kaum direkt aufschreiben lässt. Um Software praktikabel zu entwickeln, gibt es Programmiersprachen: Deren Anweisungen kommen der natürlichen Sprache recht nahe und sind für Entwickler leichter zu merken.
So funktioniert ein Compiler
Ein Compiler zeigt dem Entwickler etwa an, wenn er im Quellcode Fehler gemacht hat.
Die Intel Compiler Collection erzeugt sehr gute Ergebnisse aus C/C++ und Fortan.
Der GNU Compiler unterstützt zahlreiche Sprachen und dutzende Prozessoren.
Programme wie der Zend Guard schützen Bytecode gegen Rückschlüsse auf die Quellen.
Mit Methoden wie Objektorientierung lassen sich sichere und stabile Programme schreiben, die dann vom Compiler nach der Fertigstellung in den Maschinencode übersetzt werden. Ohne Hilfsmittel kann ein kompiliertes Programm aber nicht auf mehreren Prozessoren ausgeführt werden - sie sind immer auf eine bestimmte Architektur festgelegt. Nur zwischen Geräten ähnlicher Bauart können Nutzer Maschinencode direkt austauschen.
In der Praxis hat sich die x86-Architektur durchgesetzt, die in den meisten PCs Einzug hält. Intel und AMD sind die größten Hersteller von x86-CPUs. Leistungsfähige Compiler für x86 sind seit Mitte der 80er-Jahre verfügbar, auch als kostenloses Programm.

Das Thema hatten wir heute in der Berufsschule... Jetzt fehlt nur noch ein Artikel über den "Interpreter" :)
:D 99 Bottles of Beer | Start Besonders genial finde ich den Perlcode... und da sage mal einer, Perl ist eine writeonly Sprache ;) Aber auch Brainfuck hat seinen Namen verdient...
@agtrier: Es gibt natürlich deutlich mehr ;-) Aber nur etwa zwanzig Sprachen dürften soweit entwickelt sein, mit ihnen Anwendungen unterschiedlichster Coleur zu schreiben und auf mehr als einem einzigen Gerät...
"Entwickler haben heute die Wahl zwischen über zwanzig Programmiersprachen..." - bloß zwanzig? Ich hab' bei ein paar hundert aufgehört zu zählen.