Frage

Ich lerne jetzt Perl. Was sind die Vor- und Nachteile der interpretierten Sprachen?

War es hilfreich?

Lösung

Blatant Kopie von wikipedia so werde ich diese Community Wiki machen.

Die Vorteile der interpretierten Sprachen

interpretierte Sprachen geben Programme bestimmte zusätzliche Flexibilität über kompilierten Sprachen. Features, die in Dolmetschern als in Compiler einfacher zu implementieren sind, umfassen (sind aber nicht beschränkt auf):

  • Plattformunabhängigkeit (Java-Bytecode, zum Beispiel)
  • Reflektionen und reflektiven Nutzung des Bewerters (beispielsweise eine erste Ordnung eval-Funktion)
  • dynamische Typisierung
  • einfache Debugging (es ist einfacher, den Quellcode Informationen in interpretierten Sprachen zu erhalten)
  • kleine Programmgröße (da interpretierten Sprachen haben Flexibilität Befehlscode zu wählen)
  • dynamischer Scoping
  • automatische Speicherverwaltung

Nachteile interpretierten Sprachen

Eine Ausführung durch einen Interpreter ist in der Regel viel weniger effizient als normale Programmausführung. Es geschieht, weil jeder Befehl entweder eine Interpretation soll zur Laufzeit übergeben oder als bei neueren Ausführungen hat der Code vor jeder Ausführung zu einer Zwischendarstellung erstellt werden. Die virtuelle Maschine ist eine Teillösung für das Performance-Problem als die definierte Zwischensprache ist viel näher an Maschinensprache und damit leichter zu Laufzeit übersetzt werden. Ein weiterer Nachteil ist die Notwendigkeit eines Dolmetschers auf der lokalen Maschine die Ausführung möglich zu machen.

Andere Tipps

Vorteile:

  • Rapid Prototyping (kein Schreiben, Kompilieren, Ausführen Zyklus)
  • Cross-Plattform (unter der Annahme, Dolmetscher für jede Plattform gibt)

Nachteile:

  • Performance
  • (wird nicht so schnell wie kompilierten Sprachen sein)

Größter Nachteil? Die meisten würden die Ausführungsgeschwindigkeit sagen, aber es ist nicht immer unbedingt wahr. Die meisten modernen interpretierten Sprachen konvertieren in diesen Tagen die Dateien in einem Zwischenzustand interpretiert werden auf den Aufbau, die, wenn sie ausgeführt in Maschinencode gedreht wird wie jede andere Sprache. Mit cleveren Caching innerhalb dieser Sprache meist verbreitetste VMs in diesen Tagen, soll es nicht zu viel von einem Problem. Dies ist sicherlich nicht, dass die Leistung zu sagen, ist nicht ein Problem mit interpretierte Sprachen, nur, dass es oft nicht so schlecht ist, wie die meisten vermuten wären.

Beachten Sie, dass auch bei den Performance-Problemen allerdings ist es oft einfacher, die gleichen Aufgaben wie eine kompilierten Sprache in weniger und effizienteren Code zu erreichen, so dass der Leistungsverlust während der Kompilierung vernachlässigbar über die Ausführungszeit eines Programms.

Für mich persönlich ist der größte Nachteil die Notwendigkeit, dass die Dolmetscher immer vorhanden sein, bevor die Ausführung auftreten kann. Diese sehr oft reduziert Portabilität, vor allem, weil interpretierten Sprachen sind nicht immer Cross-Plattform.

Con:

  • Der größte Nachteil ist wahrscheinlich Ausführungsgeschwindigkeit

Pro:

  • Der größte Vorteil ist, wahrscheinlich Turn-around-Zeit heißt Code-Test Iterationsschleife

Um den offensichtlichen und breiten Punkt zu setzen, kompilierten Sprachen sind in der Regel als interpretierten diejenigen ein höhere Leistung haben, da schließt die Notwendigkeit für eine Laufzeit-Interpreter kompilieren.

Zusammengestellt Sprachen sind besser geeignet für kommerzielle Desktop-Software, da der Quellcode nicht mit ihm geliefert wird.

interpretierte Sprachen sind in der Regel etwas schneller sein, zu lernen, soweit sie ermöglicht es Ihnen, schnell zu bearbeiten / run / wiederholen, ohne sich auf einen Compiler zu warten. Nach meiner Erfahrung neigen sie auch auf höherer Ebene zu sein, was sie auch leichter macht.

Wikipedia hat eine Seite auf die Vor- und Nachteile. Jede erheblich voran interpretierte Sprache tatsächlich sein kann, in eine native binary kompiliert damit die Grenzen zwischen der Vor-und Nachteile einer interpretierten Sprache zu verwischen.

PERL ist eine jener Sprachen, die die Linien verwischt. Während seiner berühmt für eine mächtige Skriptsprache zu sein, man könnte es kompiliert heimisch sein.

Die „Langsamkeit“ von dynamischen Sprachen wie Perl möglicherweise kein Problem mehr sein. Hier ist eine ausgezeichnete Präsentation über die neuesten Trends in der Dynamic Language Bereich:

http: //steve-yegge.blogspot .com / 2008/05 / dynamic-Sprachen-strike-back.html

Als Java ist eine interpretierte Sprache

Vorteile:

  • Kompatibilität: Java Virtual Machine dieses Konzept genehmigt "einmal schreiben, überall ausführen."
  • Sicherheit:. Das Programm in JVM läuft also, wenn irgendein Fehler passiert, dies wirkt sich nicht auf Betriebssystemen Dateien
  • Speicherverwaltung.

Nachteile:

  • Java Virtual Machine viele Implementierungen hat, zum Beispiel, wenn ein Programm zu schreiben, die Java-8-Funktionen nutzt dieses Programm muss mit 8-Version auf JVM läuft nicht weniger.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top