Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo,

ich suche nach einer verständlichen Erklärung für den Unterscheid zwischen Compilern und Interpretern und zwar am Beispiel von Visual Basic.

Ich frage mich nämlich ob ich es bei VB mit einem Compiler oder einem Interpreter zu tun habe. Ich dachte immer dass ein Compiler ein Quellprogramm in ein Zielprogramm übersetzt und dieses ausführt, während der Interpreter einzelne Zeilen ausführt und dabei kein Objektprogramm hinterläßt.

Vor einiger Zeit hab ich mal gelesen dass im Hintergrund von VB der Compiler von VC++ läuft, aber jetzt bin ich mir nicht mehr sicher, denn schließlich kann doch während des Debuggen einzelne Anweisung ausführen und diese auch noch zwischendurch verändern. Und dass ist eher dass Verhalten eines Interpreters, oder ? :confused:

Das ist jetzt kein konkretes Problem, es interessiert mich einfach.

Gruss

Feivel

Geschrieben

Hi,

ein Interpretor führt ein bestimmtes Script aus, d.h. wenn du das Script startest

wird immer der Interpretor gestartet der dann das Script umsetzt. Wenn du das

Script jetzt auf einem anderen PC ausführen willst muß hier auch der Interpretor

installiert sein.

Ein Compiler überprüft eigentlich nur deinen Quelltext ob das alles so

in Ordnung ist. Danach erstellt dann ein Linker aus dem Quelltext den

Maschinencode, sodass man die Anwendung ausführen kann ohne dass

jedesmal der Linker die Anweisungen umsetzten muß.

Wie das jetzt genau beim debuggen aussieht, kann ich dir auch nicht

genau erklären.

Gruß

Guybrush

Geschrieben

Der Compiler übersetzt nur, er führt nicht aus. VB ist definitiv eine Compilersprache.

... denn schließlich kann doch während des Debuggen einzelne Anweisung ausführen und diese auch noch zwischendurch verändern. Und dass ist eher dass Verhalten eines Interpreters, oder ? :confused:
Debugging ist wieder eine ganz andere Geschichte. Viele Betriebssysteme bieten Mechanismen, mit denen sich ein Debugger an ein laufendes Programm hängen und dessen Programmfluss steuern kann. Bei manchen Debuggern geht auch das, was du beschreibst (Edit and Continue). Was da im einzelnen unter der Haube passiert, hängt von der Programmiersprache ab, aber das ist kein Indiz für die Unterscheidung zwischen Compiler- und Interpretersprache.
Geschrieben

mir wurde es so beigebracht:

ein interpreter übersetzt ein programm zur laufzeit

zum betrieb wird dieser also benötigt

ein compiler übersetzt ein programm vorher

und wird zum betrieb später nicht benötigt

gruß Pico

Geschrieben

@Klotzkopp:

Ob VB eine Compilersprache ist oder nicht darüber kann man sich streiten. Es ist Interpreter wie Compiler. Als Programmierer müßte man das erkennen, denn wenn man ein Projekt erstellt unter VB, so kann man

1. das Programm auch ohne eine EXE-Datei abfahren lassen. Während man z.B. bei C/C++ ein Programm ohne EXE erst gar nicht zum laufen bekommt.

2. Bei VB läuft solange das Programm bis der Fehler auftaucht, bei C++, was definitiv eine Compilersprache ist, wird erst gar nicht das Programm gestartet, wenn im Code ein Fehler vorhanden ist, weil der Compiler erst im Code nach Fehlern sucht

@Feivel:

Ob VB nun Compiler oder Interpreter ist kann man nicht direkt abgrenzen. Es ist beides. Ein Interpreter führt Zeile für Zeile des Codes SOFORT aus! Ein Compiler muß erst den Code übersetzen, es wird dann eine Datei erzeugt, wo daraus der Linker dann die EXE erstellt und der Loader dann das ganze in den Arbeitsspeicher stellt.

Geschrieben
Ein Compiler überprüft eigentlich nur deinen Quelltext ob das alles so

in Ordnung ist. Danach erstellt dann ein Linker aus dem Quelltext den

Maschinencode, sodass man die Anwendung ausführen kann ohne dass

jedesmal der Linker die Anweisungen umsetzten muß.

Das stimmt so nicht ganz. Der Compiler erzeugt den Maschinencode. Der Linker erzeugt dann das Executable mit absoluter Adresslage. Seine Aufgabe ist eigentlich nur die Speicherzuteilung und das Verbinden einzelner Module.

Geschrieben

Moin!

Ich bin der Meinung, das VB ein Interpreter ist. Frühere VB Versionen bis 5.0 waren das so oder so, denn man musste auf jedem Rechner, auf dem VB Programme laufen sollten, die VB Runtime DLLs installieren, die nichts weiter als der Interpreter waren. Dass das nie so offensichtlich war, lag daran dass sie meist schon bei Windows dabei waren oder automatisch bei irgendwelchen Installationen im Hintergrund mit raufgepackt wurden.

Wie es sich mit moderneren VB Versionen verhält, weiss ich nicht, dort wird aber meines Wissens die benötigten Runtime Funktionen gleich in jedes Programm mit hineingepackt, sodass die Runtime nicht seperat installiert werden muss.

AFAIK werden VB Programme in eine Art Bytecode compiliert, der dann interpretiert wird. Ein echter Compiler war, ist und wird VB nie werden, denn VB.net ist so oder so bytecode-orientiert, ähnlich wie Java.

Das kann jetzt alles die übelste Fehlaussage sein, deshalb würde ich eher mal danach googlen. Kenn mich mit VB nicht sonderlich gut aus (RAD mache ich mit Delphi/ Kylix)...

bis denne

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...