Compiler
Ein Compiler (auch Übersetzer genannt) ist ein Programm, welches Quelltext, der mit einer höheren Programmiersprache (zum Beispiel C++, C# oder Java) geschrieben wurde, in Maschienen-nahe Sprachen übersetzt. Das bedeutet, die lesbaren Programmierbefehle müssen in weniger komplexe Instruktionen übersetzt werden, damit der Prozessor diese ausführen kann. Der Vorgang der Übersetzung wird auch als Kompilierung oder Umwandlung bezeichnet. Die Compiler der jeweiligen Programmiersprache sind in der Regel in eine Entwicklungsumgebung (wie z.B. BlueJ, Eclipse oder Netbeans) integriert.
Der Compiler fängt in der Regel syntaktische Fehler ab. Moderne Compiler sind aber auch in der Lage einige Fehler der späteren Laufzeit vorherzusehen. Fehler in der Logik eines Algorithmus kann eine Compiler nicht erkennen. Logik- und Laufzeitfehler lassen sich mit einem Debugger erkennen.
Java-Quelltext in der Datei Bundesliga.java
public class Bundesliga
{
private String[] bundesligaTabelle;
public Bundesliga()
{
bundesligaTabelle = new String[18];
bundesligaTabelle[0]="FC Bayern München";
bundesligaTabelle[1]="Borussia Dortmund";
bundesligaTabelle[2]="Bayer 04 Leverkusen";
bundesligaTabelle[3]="FC Schalke 04";
bundesligaTabelle[4]="Eintracht Frankfurt";
bundesligaTabelle[5]="Sport-Club Freiburg";
bundesligaTabelle[6]="Borussia Mönchengladbach";
bundesligaTabelle[7]="Hamburger SV";
bundesligaTabelle[8]="Hannover 96";
bundesligaTabelle[9]="1. FSV Mainz 05";
bundesligaTabelle[10]="VfL Wolfsburg";
bundesligaTabelle[11]="VfB Stuttgart";
bundesligaTabelle[12]="1. FC Nürnberg";
bundesligaTabelle[13]="SV Werder Bremen";
bundesligaTabelle[14]="Fortuna Düsseldorf";
bundesligaTabelle[15]="FC Augsburg";
bundesligaTabelle[16]="1899 Hoffenheim";
bundesligaTabelle[17]="SpVgg Greuther Fürth";
}
public void gebeAlleVereineAufDerKonsoleAus(){
for(String verein:bundesligaTabelle){
System.out.println(verein);
}
}
public String[]sucheStadtMitBundesligaVerein(String stadt){
String[] trefferliste=new String[18];
int trefferZaehler=0;
for(int index = 0; index<18;index++){
String aktuellerVerein=bundesligaTabelle[index];
if(aktuellerVerein.contains(stadt)){
trefferliste[trefferZaehler]=aktuellerVerein;
trefferZaehler++;
}
}
return trefferliste;
}
}
Compile
Java Byte-Code in der Datei Bundesliga.class
Êþº¾ 3 Z
. 6. 7 . 8. 9. :. ;. <. =. >. ?. @. A. B. C. D. E. F. G. H. I. J K L
M N
. O. P. Q. .bundesligaTabelle. .[Ljava/lang/String;. .<init>. .()V. .Code. .LineNumberTable. .LocalVariableTable. .this. .LBundesliga;. .gebeAlleVereineAufDerKonsoleAus. .verein. .Ljava/lang/String;. .arr$. .len$. .I. .i$.
StackMapTable. .. .sucheStadtMitBundesligaVerein. '(Ljava/lang/String;)[Ljava/lang/String;. .aktuellerVerein. .index. .stadt. .trefferliste. .trefferZaehler.
SourceFile. .Bundesliga.java. . .. .java/lang/String. . .. .FC Bayern München. .Borussia Dortmund. .Bayer 04 Leverkusen.
FC Schalke 04. .Eintracht Frankfurt. .Sport-Club Freiburg. .Borussia Mönchengladbach. .Hamburger SV. .Hannover 96. .1. FSV Mainz 05.
VfL Wolfsburg.
VfB Stuttgart. .1. FC Nürnberg. .SV Werder Bremen. .Fortuna Düsseldorf. .FC Augsburg. .1899 Hoffenheim. .SpVgg Greuther Fürth. R. S T. U. V W. X Y.
Bundesliga. .java/lang/Object. .java/lang/System. .out. .Ljava/io/PrintStream;. .java/io/PrintStream. .println. .(Ljava/lang/String;)V. .contains. .(Ljava/lang/CharSequence;)Z ! . . . . . . . . . . . . .$ . . ª*· .*..½ .µ .*´ ....S*´ ....S*´ ....S*´ ....S*´ ....S*´ ... S*´ ....
S*´ .....S*´ .....S*´ .. .
S*´ ..
..S*´ .....S*´ .....S*´ ..
..S*´ .....S*´ .....S*´ .....S*´ .....S± . V .
. .
. . . . . % . - . 5 . = . F . O . X . a . j . s . | . … . Ž . — . © " ! . . ª " # . $ . . . ” . . #*´ .L+¾=.>..¢ .+.2:.² ...¶ .„..§ÿë± . . . % . & . % " ( ! 4 . . . % & . . . ' . . . . ( ) .
. * ) . # " # +
.þ
. ,..ø . . - . . . Ä . . 4..½ .M.>.6.....¢ #*´ ...2:...+¶ .™ .,...S„..„..§ÿÜ,° . & + . , . - . . . / $ 0 ) 1 , - 2 4 ! > . . . / & . . ' 0 ) . 4 " # 4 1 & . . . 2 . . . , 3 ) . + . .þ .. ,.. ú . . 4 . 5