Suche
Suche Menü

Compiler

Wie wir bereits gelernt haben, gibt es Programmiersprachen, weil wir die Sprache des Computers (Nullen und Einsen) nicht effektiv beherrschen können. Wir schreiben deshalb unser Programm in einer Programmiersprache, auch Hochsprache genannt. Diese wird jedoch nicht vom Computer verstanden und muss also in Nullen und Einsen übersetzt werden. Dies ist Aufgabe des Compilers:

Compiler

Der Inhalt des Zielprogramms besteht nur aus zwei unterschiedlichen Zeichen („0“ und „1“), deshalb nennt man es auch Binärprogramm (binär, lat. „aus zwei Einheiten bestehend“). Im Englischen würde man es „binaries“ oder „excuteable“ (ausführbar) nennen. Das Quellprogramm nennt man auch Quelltext oder Quell-Code; im Englischen „Source“, „Source Files“ oder „Source Code („Source“ = Quelle, „File“ = Datei).

Aufgaben des Compilers

Beim Übersetzungsvorgang, auch „Kompilierung“ genannt, hat der Compiler die im Folgenden genannten Aufgaben. Die Fehler die dabei auftreten können, werden anhand des Programmbeispiels „Hello World„-Programm veranschaulicht.

  • Lexikalische Analyse: Hier zerteilt der Compiler die Wörter und Zeichen des Quellprogramms in verschiedene Klassen. So würde der printf-Befehl z.B. in 2 Klassen unterteilt werden. Zum einen „printf“ als Befehl und zum anderen „Hello World“ als Zeichenkette. Überflüssige und fehlende Zeichen werden hier als Fehler erkannt, z.b. wenn eine Zeichenkette nicht wieder geschlossen wird: „Hello World.
  • Syntaktische Analyse: Hier wird die Grammatik unseres Quellprogramms geprüft. Würden wir statt „printf(„hello“);“ nur „printf „hello“;“ schreiben, ist das ein Fehler.
  • Semantische Analyse: Hier wird geprüft, ob unser Quellprogramm überhaupt einen Sinn ergibt. Unser printf Befehl z.B. benötigt einen Text, den er ausgeben kann. Geben wir ihm aber nur eine Zahl, wie „printf(4711);“ oder würde wir statt „printf“ nur „print“ schreiben, wäre das falsch.

Findet der Compiler einen Fehler, wird die Kompilierung abgebrochen. Der Compiler gibt die Fehlermeldungen mit Zeilennummern aus, so hat man es nicht ganz so schwer die Fehler in seinem Programm zu finden.