Programmiersprachen mit/ohne Compiler

vom 29.05.2011, 22:05 Uhr

Ich habe jetzt in einigen Jahren Informatikunterricht an der Schule jede Menge Programmiersprachen kennengelernt. Bisher ist mir aufgefallen, dass es einige Programmiersprachen gibt, die einen Compiler voraussetzen, allerdings gibt es genauso gut welche, die keinen Compiler besitzen und deswegen nicht vor dem Start des Programms kompiliert werden müssen - das scheint mir jedoch der einzige Unterschied zu sein.

Wieso ist das so? Wer bestimmt, ob eine bestimmte Programmiersprache einen Compiler benötigt? Ist dies je nach Entwicklungsumgebung unterschiedlich oder ist es generell sprachenspezifisch? Welchen Vorteil erhofft man sich durch einen Compiler? Und wie passen Programmiersprachen mit Interpreter in dieses Bild hinein?

Benutzeravatar

» Malcolm » Beiträge: 3256 » Talkpoints: -1,99 » Auszeichnung für 3000 Beiträge



Wer bestimmt, ob eine bestimmte Programmiersprache einen Compiler benötigt? Ist dies je nach Entwicklungsumgebung unterschiedlich oder ist es generell sprachenspezifisch?

Die "Erfinder" der Sprache werden sich vorher überlegt haben, ob sie eine Compilersprache oder eine Interpretersprache erschaffen wollen. Je nachdem was für Vorstellungen und Absichten sie haben. Mit der Entwicklungsumgebung hat dies als nichts zu tun, besonders da diese ja erst hinterher entstehen.

Welchen Vorteil erhofft man sich durch einen Compiler?

Der große Vorteil eines compilierten Programms ist die höhere Ausführgeschwindigkeit. Während diese direkt ausgeführt werden können muss bei Interpretersprachen erst der Quellcode gelesen und analysiert werden.

Und wie passen Programmiersprachen mit Interpreter in dieses Bild hinein?

Interpretersprachen haben eben den Vorteil, das die Programme auf mehreren Architekturen lauffähig sind, sofern ein Interpreter vorhanden ist. Compilersprachen müssen hier, teilweise aufwendig, neu compiliert werden.

Ich persönlich nutze beide Sprachtypen. Python für kleinere Skripte, da diese so schnell und einfach erstellt bzw. angepasst werden können und C++ für für größere Programm mit GUI.

Benutzeravatar

» Smoon » Beiträge: 440 » Talkpoints: 2,83 » Auszeichnung für 100 Beiträge


Programmiersprachen sind ja letztlich nichts anderes, als Werkzeuge, um Probleme zu lösen. Und genauso wie es Werkzeuge und Hilfsmittel gibt, welche helfen Löcher zu bohren, gibt es ja auch Hilfsmittel, um diese Löcher wieder zu stopfen. Damit will ich nicht sagen, dass Programmiersprachen mit Compilern genau das entgegen gesetzte Lösen, wie Programmiersprachen mit einem Interpreter. Es geht nur darum, dass es für unterschiedliche Aufgabenstellungen unterschiedlich gut geeignete Lösungsansätze gibt! Verschiedene Problemstellungen verlangen eben nach speziellen Lösungen.

Programmiersprachen welche einen Compiler benötigen, werde eben vom Entwickler kompiliert und damit sind z.B. syntaktische Fehler ausgeschlossen. Die würde der Compiler finden. Ein solches Programm wird daher auf den Zielsystemen fehlerfrei (was die Syntax angeht) laufen! Ebenso steht das Programm bereits in einer Maschinensprache bereit und muss also vom Computer nicht mehr übersetzt werden, was die Geschwindigkeit erhöht. Der Nachteil ist aber, dass das Programm eben nur auf den Rechnern läuft, für die es kompiliert wurde.

Interpretersprachen haben den Vorteil, dass sie erst zur Laufzeit übersetzt werden (dann also läuft so eine Art Compiler). Das bedeutet, dass das jeweilige Zielsystem die Programme in Maschinensprache übersetzt und dann ausführt. Damit sollten diese Programme auch auf unterschiedlichen Plattformen laufen. Gefährlich wird es, wenn hier verschiedene Dialekte mit reinkommen. Da kann es nämlich passieren, dass eine Applikation auf einem System läuft und auf dem anderen einen Syntax-Fehler verursacht. Ebenso nachteilig kann es werden, dass diese Programme eher langsamer laufen (schließlich werden die erst in Maschinensprache übersetzt und dann erst ausgeführt).

Es kann aber Situationen geben, in welcher die Plattformunabhängigkeit wichtiger ist, als die Geschwindigkeit - auf der anderen Seite kann bei feststehendem Zielsystem die Geschwindigkeit das Maß aller Dinge sein. Und je nach dem (hier stark vereinfacht weil es noch andere Punkte gibt) wählt man die Programmiersprache aus.

» derpunkt » Beiträge: 9898 » Talkpoints: 88,55 » Auszeichnung für 9000 Beiträge



Ähnliche Themen

Weitere interessante Themen

^