Динам??чна мо?ва
дозволя? визначати
типи даних
? зд?йснювати
синтаксичний анал?з
та
комп?ляц?ю
≪на льоту≫, безпосередньо на етап? виконання програми.
До динам?чних мов в?дносяться:
PHP
,
Ruby
,
JavaScript
,
Python
,
Lua
.
Visual Basic
можна розглядати як певний р?зновид динам?чно? мови, йому завжди були властив? деяк? динам?чн? риси.
Основним, але не ?диним критер??м динам?чно? мови програмування ?
динам?чна тип?зац?я
.
У динам?чно тип?зованих мовах не вимага?ться обов’язково вказувати значення оголошено? в код? зм?нно?. Тобто нова зм?нна ма? бути оголошена, але не очевидно декларована ? зв’язана з певним типом даних. Це дозволя? використовувати одну й ту ж саму зм?нну у р?зних д?лянках програми, де вона може приймати значення р?зних тип?в.
Статично тип?зован? мови, в свою чергу, обмежують типи зм?нних: якщо в код? була оголошена зм?нна ?з присво?ним значенням, скаж?мо, ≪42≫ (числовий тип даних), то п?зн?ше в код? не вдасться зм?нити значення ц??? зм?нно? на ≪true≫ (
лог?чний
тип даних). Комп?лятор в?дмовиться комп?лювати под?бний код ? ви не зможете його нав?ть запустити.
Вважа?ться, що динам?чн? мови програмування зручн?ш? для швидко? розробки
застосунк?в
.
Код в даному випадку виходить б?льш компактний, оск?льки в ньому, наприклад, в?дсутня необх?дн?сть обов’язково? декларац?? тип?в зм?нних.
Прихильники статично тип?зованих мов вважають, що в?дсутн?сть ч?тко? системи тип?в може призводити до проблем в к?нцев?й програм? через прост? помилки.
Однак, все залежить в?д можливостей обрано? мови та задач?, яку необх?дно вир?шити з ?? допомогою.