Compiler / Interpreter

Von: , Frage gestellt am Di, 26. Sep 2000

Hallo Experten,

könnte mir jemand mal den Unterschied zwischen einen Compiler und einem Interpreter erklären?

Vielen Dank

Stefan

5 Antworten zu dieser Frage

  1. Antwort von nach 24 Minuten 5 hilfreich
    Re: Compiler / Interpreter


    Hallo Namensvetter :)))

    Beide, Interpreter und Compiler, dienen dazu, ein Programm, das in einer Programmiersprache geschrieben ist, in einen Code zu übersetzen, den ein Computer verstehen kann. Dieser Code wird Maschinen-Code oder Maschinen-Sprache genannt.

    Ein Interpreter arbeitet das Hochsprachen-Programm Schritt für Schritt ab. Er nimmt sich einen Befehl, übersetzt ihn in Maschinensprache und führt ihn aus. Dann holt er sich den nächsten Befehl, übersetzt ihn und führt ihn aus ...

    Ein Compiler übersetzt das Hochsprachen-Programm an einem Stück. Alle Befehle werden in Maschinen-Sprache übersetzt und das fertige Maschinen-Programm wird abgespeichert. Nun kann dieses Maschinen-Programm ausgeführt werden.

    Interpretierte Programme laufen daher viel langsamer als compilierte Programme. Denn die Analyse der Hochsprachen-Befehle kostet den Interpreter ja Zeit.

    cu Stefan.

    • Antwort von nach 22 Stunden 3 hilfreich
      Re^2: Compiler / Interpreter


      Hi Leutz!

      Ich glaube, ich spinne! Welcher Idiot gibt denn für diesen Artikel 0 Punkte? Einfacher kann man es doch nicht mehr erklären. Nee, ich habe keine Lust mehr. Ich höre auf bei w-w-w. Das erspart mir viel Zeit und Ärger ...

      cu Stefan.

    • Antwort von nach einem Tag hilfreich
      Nicht ganz

      Hallo, Ein Interpreter arbeitet das Hochsprachen-Programm Schritt für
      Schritt ab. Er nimmt sich einen Befehl, übersetzt ihn in
      Maschinensprache und führt ihn aus. Dann holt er sich den
      nächsten Befehl, übersetzt ihn und führt ihn aus ...
      Nein, es gibt auch interpreter, die das ganze Programm analysieren, optimieren, und dann am Stück übersetzen.
      Ein Compiler übersetzt das Hochsprachen-Programm an einem
      Stück. Alle Befehle werden in Maschinen-Sprache übersetzt und
      das fertige Maschinen-Programm wird abgespeichert. Nun kann
      dieses Maschinen-Programm ausgeführt werden.
      Bis auf das Apspeichern trifft dies auch auf Interpreter zu. Interpretierte Programme laufen daher viel langsamer als
      compilierte Programme.
      Falsch. Das Programm läuft immer in Maschinensprache also gleich schnell ab. Der Unterschied ist nurt der:

      Beim Interpreter wird das Programm bei jedem Start neu übersetzt und beim Compilieren nur einmal.

      Das immer neu übersetzen beim interpretieren kostet zwar Zeit, aber wenn das Programm erstmal läuft, gibt es kaum einen Unterschied zum Kompilat. Es hat nur einen längere Anlaufzeit.


      Warum also interpretieren ?

      z.B. Portabilität => Ich kann das Programm ohne Änderungen auf jedem Rechner der den Interpreter installiert hat laufen lassen.
      Ein Kompilat ist immer in der MAschinensprache einer bestimmten Plattform, ist also nicht portabel.


      So und jetzt weisst Du vielleicht auch, warum es Leute gibt, die den Artikel mit 0 bewerten, wobei ich es nicht gut finde, einfach nur schlecht zu bewerten, statt sich die Mühe zu machen, es besser zu machen, bzw. die Fehler richtigzustellen..

      Zusammen haben wir doch nun eine ziemlich gute Antwort gegeben..

      Arne

      • Antwort von nach einem Tag 4 hilfreich
        Re: Nicht ganz

        Hi Baby :) Nein, es gibt auch interpreter, die das ganze Programm
        analysieren, optimieren, und dann am Stück übersetzen.
        Diese heißen dann Compiler :) Interpretierte Programme laufen daher viel langsamer als
        compilierte Programme.
        Falsch. Das Programm läuft immer in Maschinensprache also
        gleich schnell ab. Der Unterschied ist nurt der:

        Beim Interpreter wird das Programm bei jedem Start neu
        übersetzt und beim Compilieren nur einmal.
        Nein! Ein Interpreter arbeitet ein Programm Befehl für Befehl ab, er interpretiert jeden Befehl einzeln! Das immer neu übersetzen beim interpretieren kostet zwar Zeit,
        aber wenn das Programm erstmal läuft, gibt es kaum einen
        Unterschied zum Kompilat. Es hat nur einen längere Anlaufzeit.
        Du beschreibst, dass ein Quelltext vor seiner Ausführung komplett in Maschinen-Sprache übersetzt wird. Genau das macht ein Compiler. Bei deiner Version wird das fertige Maschinenprogramm dann nicht als Datei abgespeichert, sondern direkt ausgeführt! Trotzdem ist das, was da passiert, eine Compilierung. Kann man im berühmten "Drachenbuch" über Compilerbau nachlesen :)

        cu Stefan.

        • Antwort von nach einem Tag 2 hilfreich
          Re^2: Nicht ganz

          Hi Baby :)

          Ich bin's nochmal. Ich habe eben vom "Drachenbuch" gesprochen. Jetzt bin ich zu Hause und kann es genauer angeben:

          A.V. Aho, R. Sethi, J.D. Ullman
          Compilerbau
          Addison-Wesley
          ISBN 3-89319-150-X [Buch anschauen]

          Es ist die Bibel im Übersetzerbau. Ein Compiler ist ein Programm, das ein fertiges Maschinen-Programm erzeugt, das dann komplett ausgeführt wird. Ein Interpreter ist ein Programm, das ein Hochsprachen-Programm während der Laufzeit analysiert (Parse-Baum aufbauen) und gleichzeitig ausführt.

          cu Stefan.

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!