web-dev-qa-db-fra.com

Différence entre les langages de programmation statiques et dynamiques

Quelle est la différence entre statique et dynamique langages de programmation? Je sais qu’il s’agit de systèmes de typage, mais je souhaite des clarifications plus claires.

22
Balaji Reddy

Dactylographie statique

Le typage statique signifie que les types sont connus et que leur exactitude est vérifiée avant d'exécuter votre programme. Ceci est souvent fait par le compilateur du langage. Par exemple, la méthode Java suivante provoquerait une erreur de compilation, avant d’exécuter votre programme :

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

Dactylographie dynamique

Le typage dynamique signifie que les types ne sont connus que lorsque votre programme est en cours d'exécution. Par exemple, le script Python (3, si important) suivant peut être exécuté sans problème:

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

print('hi!')

Il va en effet sortir hi!. Mais si nous appelons erroneous:

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

erroneous()
print('hi!')

Une TypeError sera levée à run-time lorsque erroneous est appelé.

32
sleeparrow

La différence entre statique et dynamique est qu'avant d'exécuter le programme si le type de données de chaque variable est vérifié et vérifié, il s'agit alors d'un langage de programmation de type statique (par exemple: - dans le cas de C++, le compilateur le fait). Dans le langage de programmation dynamique pendant l'exécution, s'il existe une affectation non valide d'une variable qui ne respecte pas son type de données, une erreur est générée.

Résumé - Le langage de type statique vérifie toute violation avant d'exécuter le programme alors que dans le langage de type dynamique, l'erreur est générée lorsque le programme est en cours d'exécution et passe à la partie où la violation a été commise. 

1
Nishant Dwivedi