Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Grundlagen der Programmierung: Basiswissen

Kompilierte und interpretierte Sprachen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Programmiersprachen werden unterteilt in kompilierte Sprachen, welche direkt vom Programmierer in maschinenlesbaren Code übersetzt werden, und in interpretierte Sprachen, die erst während des Einsatzes übersetzt werden.

Transkript

Irgendwie muss der Quellcode, den ich mit meiner Tastatur in den Computer eintippe, ja in einen maschinenlesbaren Code umgewandelt werden, damit der Computer das auch tatsächlich ausführen kann. Und da gibt es zwei grundsätzlich verschiedene Arten, nämlich die kompilierten Sprachen und die interpretierten Sprachen. Und was das ist, das schauen wir uns jetzt mal genauer an. Stellen Sie sich vor, es gäbe nur Sie mit dem schwarzen Computer hier und mich mit dem weißen Computer. Und Sie möchten ein Programm schreiben, das dann später für mich gedacht ist. Wie gehen Sie vor?  Sie schreiben erst mal Ihren Quellcode und verwandeln dann auf Ihrem Rechner mithilfe eines Compilers diesen Quellcode in einen maschinenlesbaren Code. Dieser maschinenlesbare Code, der hat im Endeffekt tatsächlich nur Nullen und Einsen oder ist irgendwie kryptisch, sodass ein Mensch ihn nicht verstehen kann. Aber Ihren Quellcode, den verwandeln Sie mithilfe eines Programmes, das man Compiler nennt, auf Ihrer eigenen Maschine in maschinenlesbaren Code. Und diesen maschinenlesbaren Code, den geben Sie dann weiter an mich. Das ist dann eine sogenannte ausführbare Datei. In der Windows-Welt heißt die dann meistens .exe. Und wenn ich diesen Code auf meiner Maschine ausführe, dann würde in dem Fall ein kleines Hallo auf meinem Bildschirm erscheinen. Die andere Variante neben diesen kompilierten Sprachen ist, Sie haben Ihren Quellcode auf Ihrer Maschine geschrieben. Und jetzt kopieren wir genau diesen original Quellcode und geben ihn weiter an mich. Und bei mir auf meinem Rechner, da ist dann ein Programm namens Interpreter. Und dieser Interpreter, der interpretiert diesen Quellcode direkt auf meiner Maschine, führt ihn aus und schreibt dann in dem Fall eben dieses Wort Hallo auf meinen Bildschirm. Das sind zwei unterschiedliche Ansätze. Schauen wir uns doch mal die Vor- und die Nachteile an. Was gibt es denn da? Wir haben die kompilierten Sprachen, die sind fertig zum Ausführen. D. h., in dem Moment, in dem ein Programmierer diese Sprache tatsächlich kompiliert hat, brauche ich kein weiteres Programm dafür, sondern kann einfach auf den imaginären Startknopf drücken und dann geht es schon los. Deswegen sind diese kompilierten Sprachen meistens auch viel schneller, weil sie natürlich nicht erst interpretiert werden müssen und weil sie direkt oberhalb der Maschinenebene anfangen. Ein weiterer Vorteil ist: Der Quellcode ist nicht öffentlich. D. h., wenn ich  einen Quellcode habe, d. h. der Quellcode, der ja für Menschen zu lesen ist, der wird kompiliert und nur die kompilierte Version wird weitergegeben. D. h., andere können den Quellcode nicht sehen. Auf der Negativseite bedeutet diese Kompilierung aber auch, dass es nicht plattformübergreifend ist. Wenn ich ein Programm kompiliere für einen Windows-Rechner, dann läuft das gleiche Programm eben nicht auf Linux oder auf Mac. Und es ist sogar so, dass für unterschiedliche CPUs auch manchmal unterschiedlich kompilierte Programme existieren müssen. D. h., hier habe ich ein Problem, das irgendwie anders zu lösen ist. Dadurch wird die Sprache natürlich auch unflexibel und ich muss bei der Programmerstellung immer diesen Zwischenschritt gehen, d. h., ich schreibe ein paar Zeilen Code, ich kompiliere sie, ich teste sie. Das macht das Ganze unflexibel und schwierig zu handhaben. Schauen wir uns mal die interpretierten Sprachen an. Die sind plattformübergreifend, d. h. mein Quelltext, den ich für Linux bspw. schreibe, funktioniert auch auf Mac und auf Windows solange es für diese Plattformen auch einen Interpreter gibt. Sie sind deswegen auch einfacher zu testen, weil eben der Zwischenschritt wegfällt und das bedeutet im Endeffekt auch einfacher zu debuggen, also die Fehler können leichter gefunden werden. Denn ich kann z. B. in einem Debugger auch Schritt für Schritt durch mein Programm durchgehen, es wird ja erst in diesem Moment tatsächlich übersetzt für die Maschine. Negativ: Es ist dieser Interpreter notwendig. D. h. mein Zielcomputer, den ich unter Umständen gar nicht kenne, muss zwingend diese Software, diese Interpretersoftware, installiert haben. Davon kann ich vielleicht nicht immer ausgehen und dann würde mein Programm auch nicht laufen. Dieser Zwischenschritt des Kompilierens macht das Programm auch dadurch langsamer natürlich, d. h., wenn ich zeitkritische Anwendungen habe aufwendige 3D-Berechnungen z. B., dann wird das mit interpretierten Sprachen sehr sehr schwierig werden. Ein anderer Nachteil ist: Der Quellcode ist öffentlich. In den ganzen Open-Source-Programmen ist das ja gewünscht, dass der Quellcode öffentlich ist, aber hier bei interpretierten Sprachen ist es sogar zwingend notwendig, weil ja der Originalquelltext erst weitergegeben wird. Es gibt noch einen Zwischenansatz, zwischen den interpretierten und den kompilierten Sprachen. Schauen wir uns noch mal zur Verdeutlichung an: Ich habe die kompilierten Sprachen, die werden auf meiner Maschine kompiliert und der kompilierte Code wird weitergegeben. Es gibt die interpretierten Sprachen, da wird ein Original meines Quellcodes als Kopie weitergegeben. Und der Zwischenansatz sieht jetzt so aus, dass ich meinen Quellcode auf meiner Maschine habe. Der wird zum Teil übersetzt in eine Intermediate Language, in eine Zwischensprache sozusagen. Manchmal heißt das Ganze dann auch Bytecode. Dieser Bytecode, der wird weitergegeben an einen anderen Rechner, dort wird er zu Ende kompiliert und tatsächlich in einen maschinenausführbaren Code umgewandelt. Das hat den Vorteil, dass ich die Schnelligkeit von einer kompilierten Sprache habe und auf der anderen Seite auch plattformübergreifend entwickeln kann. Schauen wir uns mal an, welche Sprachen es gibt: Wir haben die kompilierten Sprachen, das ist C, C++, Objective C, d. h., da brauche ich erst diesen Compiler, um Maschinencode zu erzeugen. Es gibt die interpretierten Sprachen PHP und JavaScript. Die meisten Scriptsprachen, also Sprachen, die auf den Namen -script enden, sind solche interpretierten Sprachen. JavaScript schauen wir uns auch in diesem Training genauer an. Die Hybrid-Sprachen, darunter zählen Java, C#, VB.NET und Python, das sind also Sprachen, denen es sehr wichtig ist, plattformübergreifend auch zu funktionieren. Die Entscheidung, für welche Sprache Sie sich entscheiden, die wird Ihnen oftmals abgenommen vom eigentlichen Problem, das Sie zu beheben haben oder das Sie lösen möchten. Aber es ist dennoch wichtig zu wissen, wo der Unterschied zwischen kompilierten und interpretierten Sprachen liegt.

Grundlagen der Programmierung: Basiswissen

Steigen Sie ein in die Welt der Computerprogrammierung und verschaffen Sie sich das Grundwissen, um schon bald eigene Lösungen und Anwendungen zu schreiben.

5 Std. 38 min (64 Videos)
Vielen Dank
Kirill T.

Dieses Training ist ein tolles Lernmittel für Programmierer als Anfänger. Ich kannte davor schon andere Programmiersprachen. Mit JavaScript kann man Webseiten manipulieren. Dieses Training empfehle ich weiter!

 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!