Скриптова мова

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

Скриптова мова (англ. scripting language) — мова програмування, розроблена для запису «сценаріїв», послідовностей операцій, які користувач може виконувати на комп'ютері. Прості скриптові мови раніше часто називали мовами пакетної обробки (batch languages або job control languages). Сценарії зазвичай інтерпретуються, а не компілюються.

У прикладній програмі, сценарій (скрипт) — це програма, яка автоматизує деяке завдання, яке без сценарію користувач робив би вручну, використовуючи інтерфейс програми. Мови таких скриптів спочатку орієнтувалися на використання в якості внутрішніх керуючих мов у складних системах. Багато хто з них, проте, вийшли за межі сфери свого початкового застосування і використовуються нині в зовсім інших областях. Характерними особливостями даних мов є, по-перше, їх інтерпретованість (компіляція або неможлива, або небажана), по-друге, простий синтаксис, а по-третє, легка розширюваність. Таким чином, вони ідеально підходять для використання в часто змінюваних програмах, дуже невеликих програмах або у випадках, коли для виконання операторів мови витрачається час, незрівнянний із часом їх розбору.

Будування розширень програм[ред.ред. код]

Для написання призначених розширень користувача можуть використовуватися як плагіни, так і скрипти. Скриптова мова використовується переважно в таких випадках:

  • Якщо потрібно забезпечити програмовість без ризику дестабілізувати систему. Оскільки, на відміну від плагінів, скрипти інтерпретуються, а не компілюються, неправильно написаний скрипт виведе діагностичне повідомлення, а не приведе систему до краху.
  • Якщо важливий виразний код. По-перше, чим складніша система, тим більше коду доводиться писати «тому, що це потрібно». По-друге, в скриптовій мові може бути зовсім інша концепція програмування, ніж в основній програмі — наприклад, гра може бути монолітним однопотоковим застосунком, тоді як скрипти, що керують персонажами, виконуються паралельно. По-третє, скриптова мова має власний проблемно-орієнтований набір команд, і один рядок скрипта може робити те ж, що кілька десятків рядків на традиційній мові. Як наслідок, на скриптовій мові може писати програміст дуже низької кваліфікації — наприклад, геймдизайнер своїми руками, не покладаючись на програмістів, може коректувати правила гри.
  • Якщо потрібна крос-платформовість. Хорошим прикладом є JavaScript — його виконують браузери під найрізноманітнішми ОС.

З іншого боку, оскільки скрипти інтерпретуються з початкового коду динамічно при кожному виконанні, вони виконуються зазвичай значно повільніше за готові програми, що відтранслюють в машинний код на етапі компіляції. Тому скриптові мови не застосовуються для написання програм, що потребують оптимальності і швидкості виконання. Але через простоту вони часто застосовуються для написання невеликих, одноразових («проблемних») програм.

Також в плані швидкодії скриптові мови можна розділити на мови динамічного розбору (sh, command.com) і передкомпільовані (Perl). Мови динамічного розбору прочитують інструкції з файлу програми мінімально потрібними блоками, і виконують ці блоки, не читаючи подальший код. Передкомпільовані мови спочатку прочитують всю програму, компілюють її всю або в машинний код, або байт-код, або в якийсь внутрішній формат, і лише потім виконують отриманий код.

Типи скриптових мов[ред.ред. код]

Універсальні скриптові мови[ред.ред. код]

Вбудовані в прикладні програми[ред.ред. код]

Командні оболонки[ред.ред. код]

Мови з можливістю інтеграції[ред.ред. код]

Також в застосунок може бути закладена можливість розширення сценаріями на будь-якій з Універсальних скриптових мов, див. для прикладу бібліотеку SWIG або cron nncron