В чем разница между статически типизированными и динамически типизированными языками? - PullRequest
839 голосов
/ 05 октября 2009

Я много слышу, что новые языки программирования динамически типизированы, но что это на самом деле означает, когда мы говорим, что язык динамически типизирован или статически типизирован?

Ответы [ 14 ]

3 голосов
/ 29 октября 2016
  • В языке со статической типизацией переменная связана с типом, который известен во время компиляции, и этот тип остается неизменным на протяжении всего выполнения программы. Эквивалентно, переменной может быть присвоено только значение, которое является экземпляром известного / указанного типа.
  • В динамически типизированном языке переменная не имеет типа, и ее значение во время выполнения может быть любым из любой формы и формы.
2 голосов
/ 17 августа 2018

Языки со статической типизацией, такие как C ++, Java, и языки с динамической типизацией, такие как Python, отличаются только с точки зрения исполнения типа переменной. Статически типизированные языки имеют статический тип данных для переменной, здесь тип данных проверяется во время компиляции, поэтому отладка намного проще ... тогда как Динамически типизированные языки не делают того же проверяется тип данных, который выполняет программу, и, следовательно, отладка немного сложна.

Более того, они имеют очень небольшую разницу и могут быть связаны с строго типизированными и слабо типизированными языками. Строго типизированный язык не позволяет использовать один тип в качестве другого, например. C и C ++ ... тогда как слабо типизированные языки позволяют eg.python

0 голосов
/ 14 марта 2018

динамически типизированный язык помогает быстро создавать прототипы алгоритмов без лишних затрат на размышления о том, какие типы переменных необходимо использовать (что необходимо в статически типизированном языке e).

0 голосов
/ 27 июня 2013

Статическая печать: Такие языки, как Java и Scala, имеют статическую типизацию.

Переменные должны быть определены и инициализированы перед использованием в коде.

например int x; х = 10;

System.out.println (х);

Динамический набор: Perl - это динамический типизированный язык.

Переменные не нужно инициализировать перед использованием в коде.

у = 10; используйте эту переменную в следующей части кода

...