Was ist der Unterschied zwischen statischen und dynamischen Programmiersprachen? Ich weiß, dass es um Typsysteme geht, aber ich suche nach klareren Abklärungen.Unterschied zwischen statischen und dynamischen Programmiersprachen
Antwort
statische Typisierung
Statische Typisierung bedeutet, dass Typen sind bekannt und auf Korrektheit geprüft, bevor Ihr Programm ausgeführt wird. Dies geschieht oft durch den Compiler der Sprache. Zum Beispiel würde die folgende Java-Methode einen Compiler-Fehler, , bevor Sie Ihr Programm ausführen:
public void foo() {
int x = 5;
boolean b = x;
}
dynamische Typisierung
Dynamische Typisierung bedeutet, dass Arten nur bekannt sind, wie Ihr Programm ausgeführt wird. Zum Beispiel kann die folgende Python (3, wenn es darauf ankommt) Skript ohne Probleme ausgeführt werden:
def erroneous():
s = 'cat' - 1
print('hi!')
Es wird in der Tat Ausgang hi!
.Aber wenn wir erroneous
nennen:
def erroneous():
s = 'cat' - 1
erroneous()
print('hi!')
A TypeError
wird bei Laufzeit erhöht werden wennerroneous
genannt wird.
Statisch typisierte Sprache:
- Sie müssen zuvor den 'Typ' der Variable deklarieren.
NSString *string = @"Hello";
- Sie können nicht Gegenstand (entweder Beton oder primitiven) anderer Art in den Variablen gleichen Namen
NSString *string = @"Hello"; int string = 9; // Not legal, compile type warning
zB statisch speichern Programmiersprache: Ja va, Objective-C, usw.
dynamisch typisierte Sprache:
- Keine Notwendigkeit Objekttyp zu erklären. es wird in Runtime herausgefunden werden.
string = 'Hallo'
- Wir dürfen Objekttyp für gleiche Variable ändern, als Name für ein Objekt mit Zuweisungsoperator gebunden ist.
string = 'Hello' string = 9 // Allowed
z.B. dynamisch typisierte Sprache: Python etc.
- 1. Unterschied zwischen statischen und dynamischen Zeitplan in OpenMP in C
- 2. Unterschied zwischen statischen und dynamischen Bibliothek in Xcode für iPhone
- 3. Unterschied zwischen statischen und dynamischen Web-Projekt in Eclipse
- 4. Unterschied zwischen Systemen Programmiersprache und Anwendungs Programmiersprachen
- 5. Unterschied zwischen benutzerdefinierten Metadaten und statischen Funktionen?
- 6. Was ist der Unterschied zwischen statischen und nicht statischen globalen
- 7. wie Transformation i zwischen einem statischen und einem dynamischen Koordinatensystem
- 8. Was ist der Unterschied zwischen statischen und dynamischen Variablen in C#?
- 9. Was ist der Unterschied zwischen einer statischen Bibliothek und einer dynamischen Bibliothek?
- 10. Mehrdeutigkeit zwischen statischen und Instanzcode
- 11. Unterschied zwischen einer Inline-Funktion und einer statischen Inline-Funktion
- 12. Java Unterschied zwischen statischen und final static Variableninitialisierung
- 13. Unterschied zwischen statischen und freigegebenen Bibliotheken in Android NDK?
- 14. Was ist der Unterschied zwischen dynamischen und virtuellen Methoden?
- 15. Was ist der Unterschied zwischen der nicht statischen Methode und der statischen Methode einer abstrakten Klasse?
- 16. Was ist der Unterschied zwischen einer statischen Methode und einer nicht statischen Methode?
- 17. Was ist der Unterschied zwischen einer statischen Strukturmethode und einer statischen Klassenmethode?
- 18. Verwendung von doppelten Doppelpunkten - Unterschied zwischen statischen und nicht-statischen Methodenreferenzen
- 19. Was ist der Unterschied zwischen statischen Klassen und nicht statischen Klassen innerhalb von Interfaces?
- 20. gVim und mehrere Programmiersprachen
- 21. Verweis auf ähnliche Funktionen zwischen Programmiersprachen
- 22. Unterschied zwischen Vorzeichen & und *?
- 23. VBA: Unterschied zwischen & und +
- 24. Unterschied zwischen "**/* /" und "** /"?
- 25. Unterschied zwischen $ # und $ {# @}
- 26. Unterschied zwischen = und: =
- 27. Unterschied zwischen '#', '%' und '$'
- 28. MySQL: Unterschied zwischen ', `,' und '
- 29. C++ Unterschied zwischen '//' und '///'
- 30. Unterschied zwischen String.Empty und ""
-1 Statische und dynamische Typisierung haben nichts mit Annotation/Inferenz des Typs zu tun. Es kommt vor, dass viele alte statisch typisierte Sprachen auf Typ-Anmerkungen bestehen, aber das ist irrelevant. Es gibt statisch typisierte Sprachen ohne Typanmerkungen. (Haskell zum Beispiel.) – sleeparrow