Compiler

aus HaBo WiKi, der freien Wissensdatenbank von http://www.hackerboard.de
Wechseln zu: Navigation, Suche

Compiler übersetzen den Quellcode von Programmiersprachen in ein bestimmtes Zielformat - z.B. Maschinencode oder Bytecode oder auch eine andere Programmiersprache.

Zweck

Um Computern bestimmte Abläufe beizubringen, wurden sie früher auf der niedrigsten Ebene programmiert, mittels des Instruktionssatzes, den die CPU bereitstellte - in der Maschinensprache. Instruktionssatz heißt eigentlich: eine Liste mit Anweisungen, die die CPU ausführen kann. Je nach CPU Architektur/Aufbau ist diese Liste unterschiedlich lang, aber stehts braucht man viele dieser Anweisungen, um eine einfache Rechnung durchzuführen. Beispiel (für die x86 Intel-Architektur):

Anweisung: 7*6-(8+9)
möglicher Code in Assembly Language
MOV EDX,0
MOV EAX,7
MOV EBX,6
MUL EBX
MOV EBX,8
ADD EBX,9
SUB EAX,EBX

Der Programmierer musste ständig viele verschiedene Faktoren im Auge behalten und auch eine "Maschinendenkweise" nachahmen. Softwareentwicklung war damit ein langer, mühsamer und fehleranfälliger Prozess. Um komplexere Probleme besser beschreiben zu können und die Softwarentwicklung zu vereinfachen, eigneten sich abstraktere, "menschenähnliche" Sprachen besser - Algol,C, Fortran und weitere Sprachen entstanden. Bloß verstanden die CPUs immer noch nur ihren Instruktionssatz - und hier dienen Compiler als "Übersetzer". Sie zerlegen den abstrakten Code in den Maschinencode oder eine Vorstufe davon. Auch überprüfen moderne Compiler (zumindest grob) den Quelltext auf mögliche Fehler und Ungereimheiten - was viel Zeit für eine nachträgliche Fehlersuche ersparen kann. Zusätzlicher Vorteil ist die höhere Programmflexibilität - einmal geschrieben, kann man dieses auch auf ganz anderen CPUs ausführen lassen - vorausgesetzt es existiert ein entsprechender Compiler.

Ähnlich ist auch ein Interpreter einzustufen

Links zu verschiedenen Compilern sind unter anderem hier enthalten Programmieren links