1226 Stimmen

Was ist der Unterschied zwischen statisch typisierten und dynamisch typisierten Sprachen?

Ich höre oft, dass neue Programmiersprachen dynamisch typisiert sind, aber was bedeutet es eigentlich, wenn wir sagen, eine Sprache sei dynamisch typisiert im Gegensatz zu statisch typisiert?

4voto

haccks Punkte 100455

Statischer Typ: Typprüfung zur Kompilierzeit .

Was bedeutet eigentlich eine statische Typsprache:

  • der Typ einer Variablen muss angegeben werden
  • eine Variable kann nur auf eine bestimmte Art von Objekt verweisen*
  • Die Typüberprüfung für den Wert wird zur Kompilierungszeit durchgeführt und jede Typüberprüfung wird zu diesem Zeitpunkt gemeldet.
  • Bei der Kompilierung wird Speicher zugewiesen, um den Wert dieses bestimmten Typs zu speichern.

Beispiele für Sprachen mit statischen Typen sind C, C++ und Java.

Dynamischer Typ: Typüberprüfung zur Laufzeit .

Was ist eigentlich mit dynamischer Typsprache gemeint?

  • der Typ der Variablen muss nicht angegeben werden
  • dieselbe Variable kann auf verschiedene Arten von Objekten verweisen

Python und Ruby sind Beispiele für dynamische Typsprachen.


* Einige Objekte können durch Typecasting verschiedenen Variablentypen zugewiesen werden (eine sehr gängige Praxis in Sprachen wie C und C++).

3voto

Chudong Punkte 73
  • In einer statisch typisierten Sprache ist eine Variable mit einem Typ verknüpft, der zum Zeitpunkt der Kompilierung bekannt ist, und dieser Typ bleibt während der Ausführung eines Programms unverändert. Entsprechend kann der Variablen nur ein Wert zugewiesen werden, der eine Instanz des bekannten/spezifizierten Typs ist.
  • In einer dynamisch typisierten Sprache hat eine Variable keinen Typ, und ihr Wert kann während der Ausführung jede beliebige Form annehmen.

3voto

MagGGG Punkte 16018

Statisch typisierte Sprachen (Compiler löst Methodenaufrufe auf und kompiliert Referenzen):

  • in der Regel bessere Leistung
  • schnellere Rückmeldung von Kompilierfehlern
  • bessere IDE-Unterstützung
  • nicht geeignet für die Arbeit mit undefinierten Datenformaten
  • schwieriger, eine Entwicklung zu beginnen, wenn das Modell nicht definiert ist, wenn
  • längere Kompilierungszeit
  • in vielen Fällen mehr Code geschrieben werden muss

Dynamisch typisierte Sprachen (Entscheidungen, die im laufenden Programm getroffen werden):

  • geringere Leistung
  • schnellere Entwicklung
  • einige Fehler können erst später während der Laufzeit entdeckt werden
  • gut für undefinierte Datenformate (Metaprogrammierung)

2voto

Akash sharma Punkte 461

Statisch typisierte Sprachen wie C++, Java und dynamisch typisierte Sprachen wie Python unterscheiden sich nur in der Ausführung des Typs der Variablen. Statisch typisiert Sprachen haben einen statischen Datentyp für die Variable, hier wird der Datentyp während des Kompilierens überprüft, so dass die Fehlersuche viel einfacher ist...während Dynamisch typisiert Sprachen nicht das Gleiche tun, wird der Datentyp bei der Ausführung des Programms überprüft, was die Fehlersuche erschwert.

Außerdem haben sie einen sehr geringen Unterschied und können mit stark typisiert y Schwachtypisiert Sprachen. Eine stark typisierte Sprache erlaubt es nicht, einen Typ als einen anderen zu verwenden, z.B. C und C++ ... wohingegen schwach typisierte Sprachen es erlauben, z.B. Python

2voto

Atticus Denewmont Punkte 168

Statisch typisiert

Die Typen werden vor der Laufzeit geprüft, so dass Fehler früher erkannt werden können.

Beispiele = c++

Dynamisch typisiert

Die Typen werden während der Ausführung überprüft.

Beispiele = Python

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X