2013-12-13 9 views

risposta

16

Statico Typing

tipizzazione statica significa che tipi sono noti e controllati accuratamente prima di eseguire il programma. Questo è spesso fatto dal compilatore della lingua. Ad esempio, il seguente metodo Java potrebbe causare un errore di compilazione, prima di eseguire il programma di:

public void foo() { 
    int x = 5; 
    boolean b = x; 
} 

dinamico Typing

tipizzazione dinamica significa che tipi sono conosciuti solo come il vostro programma è in esecuzione. Ad esempio, il seguente Python (3, se è importante) script può essere eseguito senza problemi:

def erroneous(): 
    s = 'cat' - 1 

print('hi!') 

Sarà infatti uscita hi!.Ma se chiamiamo erroneous:

def erroneous(): 
    s = 'cat' - 1 

erroneous() 
print('hi!') 

Un TypeError sarà sollevato a run-time quandoerroneous si chiama.

-1

staticamente tipizzati lingua:

  • è necessario dichiarare il 'tipo' di variabili in anticipo.
NSString *string = @"Hello"; 
  • Non è possibile salvare oggetto (cemento o primitiva) di altro tipo nella variabile della omonima
NSString *string = @"Hello"; 
int string = 9; // Not legal, compile type warning 

esempio di staticamente lingua digitata: Ja va, Objective-C, ecc

dinamicamente tipizzati Lingua:

  • Non c'è bisogno di dichiarare tipo di oggetto. sarà capito in runtime.

stringa = 'Ciao'

  • Siamo autorizzati a cambiare tipo di oggetto per la stessa variabile, come i nomi sono legati ad un oggetto con operatore di assegnazione.
string = 'Hello' 
    string = 9 // Allowed 

esempio del linguaggio tipizzato in modo dinamico: Python, ecc

+5

-1 La digitazione statica e dinamica non ha nulla a che fare con l'annotazione/l'inferenza del tipo. Accade così che molte vecchie lingue tipizzate staticamente insistano sulle annotazioni di tipo, ma questo è irrilevante. Ci sono linguaggi tipizzati staticamente senza annotazioni di tipo. (Haskell, per esempio.) – sleeparrow