Zum Inhalt springen

VB : Interpreter oder Compiler ?


Boro

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.
Link zu diesem Kommentar
Auf anderen Seiten teilen

@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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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...