Скриптовый язык. Скриптов язык


Скриптовый язык - это... Что такое Скриптовый язык?

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

В прикладной программе, сценарий (скрипт) — это программа, которая автоматизирует некоторую задачу, которую без сценария пользователь делал бы вручную, используя интерфейс программы.

Плагины или скрипты?

Для написания пользовательских расширений могут использоваться как скрипты (в терминологии некоторых программ «макросы»), так и плагины (независимые модули, написанные на компилируемых языках; в некоторых программах они могут называться «утилитами», «экспортёрами», «драйверами»).

Скриптовый язык удобен в следующих случаях:

  1. Если нужно обеспечить программируемость без риска дестабилизировать систему. Так как, в отличие от плагинов, скрипты интерпретируются, а не компилируются, неправильно написанный скрипт выведет диагностическое сообщение, а не приведёт к системному краху;
  2. Если важен выразительный код. Во-первых, чем сложнее система, тем больше кода приходится писать «потому, что это нужно» — см., например, Hello World#Маргинальные примеры. Во-вторых, в скриптовом языке может быть совсем другая концепция программирования, чем в основной программе — например, игра может быть монолитным однопоточным приложением, в то время как управляющие персонажами скрипты выполняются параллельно. В-третьих, скриптовый язык имеет собственный проблемно-ориентированный набор команд, и одна строка скрипта может делать то же, что несколько десятков строк на традиционном языке. Как следствие, на скриптовом языке может писать программист очень низкой квалификации — например, геймдизайнер своими руками, не полагаясь на программистов, может корректировать правила игры;
  3. Если требуется кроссплатформенность. Хорошим примером является JavaScript — его исполняют браузеры под самыми разными ОС.

У плагинов же есть три важных преимущества.

  1. Готовые программы, оттранслированные в машинный код, выполняются значительно быстрее скриптов, которые интерпретируются из исходного кода динамически при каждом исполнении. Поэтому скриптовые языки не применяются для написания программ, требующих оптимальности и быстроты исполнения. Но из-за простоты они часто применяются для написания небольших, одноразовых («проблемных») программ.
  2. Полный доступ к любому аппаратному обеспечению или ресурсу ОС (в скриптовом языке для этого должен существовать написанный на машинном коде API). Плагины, работающие с аппаратным обеспечением, традиционно называют драйверами.
  3. Если предполагается интенсивный обмен данными между основной программой и пользовательским расширением, для плагина его обеспечить проще.

Также в плане быстродействия скриптовые языки можно разделить на языки динамического разбора (sh, command.com) и предварительно компилируемые (Perl). Языки динамического разбора считывают инструкции из файла программы минимально требующимися блоками, и исполняют эти блоки, не читая дальнейший код. Предкомпилируемые языки транслируют всю программу в байт-код и затем исполняют его. Некоторые скриптовые языки имеют возможность компиляции программы «на лету» в машинный код (т. н. JIT-компиляция).

Типы скриптовых языков

Универсальные скриптовые языки

Встроенные в прикладные программы

Командные оболочки

Встраиваемые

  • ActionScript - В средах Adobe Flash, Adobe AIR, Adobe Flex
  • Браузерные языки: JavaScript, JScript
  • Lingo — использующийся в редакторе Director, называют скриптовым
  • Guile
  • Io
  • Lua
  • Sleep
  • Script.NET

Также в приложение может быть встроена возможность расширения сценариями на любом из универсальных скриптовых языков, см. к примеру библиотеку SWIG или автоматический планировщик задач.

Командные файлы интерпретаторов

Многие консольные утилиты поддерживают выполнение последовательности команд, заранее записанной в файл. Такие файлы тоже называют скриптами.

Примеры таких утилит:

  • SQLPlus — выполняет команды SQL и PL/SQL в СУБД Oracle

dic.academic.ru

Скриптовый язык Википедия

Запрос «Сценарий (программирование)» перенаправляется сюда; см. также другие значения.

Сценарный язык (язык сценариев, жарг. скриптовый язык; англ. scripting language) — высокоуровневый язык сценариев (англ. script) — кратких описаний действий, выполняемых системой. Разница между программами и сценариями довольно размыта. Сценарий — это программа, имеющая дело с готовыми программными компонентами[1].

Согласно Джону Устерхауту, автору языка Tcl, высокоуровневые языки можно разделить на языки системного программирования (англ. system programming languages) и сценарные языки (англ. scripting languages). Последние он также назвал склеивающими языками (англ. glue languages) или языками системной интеграции (англ. system integration languages). Сценарии обычно интерпретируются, а не компилируются[2], хотя сценарные языки программирования один за другим обзаводятся JIT-компиляторами[3][4][5].

В более узком смысле под скриптовым языком может пониматься специализированный язык для расширения возможностей командной оболочки или текстового редактора и средств администрирования операционных систем[6].

Классификация[ | код]

Языки программирования вообще и сценарные языки в частности могут быть классифицированы множеством различных способов.

В плане быстродействия скриптовые языки можно разделить на языки динамического разбора (sh, COMMAND.COM) и предварительно компилируемые (Perl). Языки динамического разбора считывают инструкции из файла программы минимально требующимися блоками, и исполняют эти блоки, не читая дальнейший код. Предкомпилируемые языки транслируют всю программу в байт-код и затем исполняют его. Некоторые скриптовые языки имеют возможность компиляции программы «на лету» в машинный код (т. н. JIT-компиляция).

По применению языки можно грубо разделить на три типа[7]:

  • командно-сценарные;
  • прикладные сценарные;
  • универсальные сценарные.

Командно-сценарные языки[ | код]

Появились ещё в 1960-х годах для управления заданиями в операционных системах. Из языков того времени наиболее известен JCL для OS/360. В этот класс входят языки пакетной обработки (англ. batch language) и языки командных оболочек, например sh, csh для Unix. Эти языки чаще всего используются в пакетном режиме обработки[7].

Например, язык AppleScript операционной системы MacOS имеет редактор Script Editor, который позволяет записывать действия по мере их выполнения пользователем в системе в файл сценария (текстовый файл) и оформлять в виде исполняемой программы. Такой подход позволяет составлять простейшие сценарии непрограммирующим пользователем[8].

Встроенные (прикладные сценарные) языки[ | код]

Основная статья:

ru-wiki.ru

Что такое язык сценариев: классификация и цель использования скриптового языка программирования

Язык сценариев (или скриптовый) – это язык программирования, который разработан для записи последовательностей операций («сценариев»), выполняемых пользователем на своем компьютере. Раньше назывался языком пакетной обработки.

Сценарий или скрипт – это программа, автоматизирующая задачу. Без скрипта пользователю бы пришлось ее выполнять вручную с помощью интерфейса программы.

Скрипты используют для раскрутки сайта в следующих целях:

  • для расширения функционала ресурса;
  • для автоматического обмена ссылками;
  • для выполнения работ по поисковой оптимизации;
  • для сбора статистики, анализа позиций сайта и т.д.

Преимущества

Для создания пользовательских расширений язык сценариев удобен в ряде случаев:

  • безопасность. Скриптовый язык обеспечивает программируемость без риска дестабилизации системы. Скрипты не компилируются, а интерпретируются. Поэтому неправильно написанная программа выведет диагностическое сообщение, не вызывая падение системы;
  • наглядность. Язык сценариев используется, если необходим выразительный код. Концепция программирования в скриптовом языке может кардинально отличаться от основной программы;
  • простота. Код имеет собственный набор программ, поэтому одна строка может выполнять те же операции, что и десятки строк на обычном языке. Поэтому для написания кодов не требуется программист высокой квалификации;
  • кроссбраузерность. Скриптовые языки программирования ориентированы на кроссбраузерность. Например, JavaScript может исполняться браузерами практически под всеми современными операционными системами.

Классификация

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

Выделяют следующие типы скриптовых языков:

  • универсальные: Forth, AngelScript, Perl, PHP, Python, Tcl (Tool command language), Squirrel, REBOL, Ruby, AutoIt, Lua;
  • встроенные в прикладные программы: VBA, UnrealScript, AutoLISP, Emacs Lisp, Game Maker Language, MQL4 script, ERM;
  • командные оболочки: sh, AppleScript, bash, csh, ksh, JCL, cmd.exe, command.com, REXX, Visual Basic Script;
  • встраиваемые: Guile, Script.NET, ActionScript, Lingo (используется в редакторе Director), Sleep, браузерные Jscript и JavaScript.

Некоторые приложения имеют встроенную возможность расширения сценариями, написанными на любом универсальном скриптовом языке, например, автоматический планировщик задач или библиотека SWIG.

К скриптам также относят многие консольные утилиты, которые поддерживают выполнение записанной в файл последовательности команд.

promo.ingate.ru

Скриптовый язык Википедия

Запрос «Сценарий (программирование)» перенаправляется сюда; см. также другие значения.

Сценарный язык (язык сценариев, жарг. скриптовый язык; англ. scripting language) — высокоуровневый язык сценариев (англ. script) — кратких описаний действий, выполняемых системой. Разница между программами и сценариями довольно размыта. Сценарий — это программа, имеющая дело с готовыми программными компонентами[1].

Согласно Джону Устерхауту, автору языка Tcl, высокоуровневые языки можно разделить на языки системного программирования (англ. system programming languages) и сценарные языки (англ. scripting languages). Последние он также назвал склеивающими языками (англ. glue languages) или языками системной интеграции (англ. system integration languages). Сценарии обычно интерпретируются, а не компилируются[2], хотя сценарные языки программирования один за другим обзаводятся JIT-компиляторами[3][4][5].

В более узком смысле под скриптовым языком может пониматься специализированный язык для расширения возможностей командной оболочки или текстового редактора и средств администрирования операционных систем[6].

Классификация

Языки программирования вообще и сценарные языки в частности могут быть классифицированы множеством различных способов.

В плане быстродействия скриптовые языки можно разделить на языки динамического разбора (sh, COMMAND.COM) и предварительно компилируемые (Perl). Языки динамического разбора считывают инструкции из файла программы минимально требующимися блоками, и исполняют эти блоки, не читая дальнейший код. Предкомпилируемые языки транслируют всю программу в байт-код и затем исполняют его. Некоторые скриптовые языки имеют возможность компиляции программы «на лету» в машинный код (т. н. JIT-компиляция).

По применению языки можно грубо разделить на три типа[7]:

  • командно-сценарные;
  • прикладные сценарные;
  • универсальные сценарные.

Командно-сценарные языки

Появились ещё в 1960-х годах для управления заданиями в операционных системах. Из языков того времени наиболее известен JCL для OS/360. В этот класс входят языки пакетной обработки (англ. batch language) и языки командных оболочек, например sh, csh для Unix. Эти языки чаще всего используются в пакетном режиме обработки[7].

Например, язык AppleScript операционной системы MacOS имеет редактор Script Editor, который позволяет записывать действия по мере их выполнения пользователем в системе в файл сценария (текстовый файл) и оформлять в виде исполняемой программы. Такой подход позволяет составлять простейшие сценарии непрограммирующим пользователем[8].

Встроенные (прикладные сценарные) языки

Сценарные языки этого типа начали появляться в 1980-е годы, когда на промышленных персональных компьютерах стало возможным интерактивное общение с ОС. В клиент-серверной архитектуре такие языки работали в клиентской части программного обеспечения[7].

Языки общего назначения

Этот тип сценарных языков наиболее известен (особенно в применении к веб-программированию). Языки этого типа стали возникать с 1990-х годов[7].

Следует заметить, что многие языки этой категории имеют более широкое применение, чем в качестве просто языков сценариев, например JavaScript, который в некоторых случаях может выполнятся на сервере.

Критика

Создатель Java Джеймс Гослинг отвёл динамическим языкам программирования (упомянув PHP и Ruby) роль сценарных языков, генерирующих веб-страницы, но непригодных для применения в более широкой нише приложений из-за проблем с масштабируемостью и производительностью[9]. Приверженцы динамических языков не оставили критику без ответа по всем пунктам, в частности о его старании представить современные динамические языки всего лишь «сценарными»[10].

Плагины и скрипты

Для написания пользовательских расширений могут использоваться как скрипты (в терминологии некоторых программ «макросы»), так и плагины (независимые модули, написанные на компилируемых языках; в некоторых программах они могут называться «утилитами», «экспортёрами», «драйверами»).

Скриптовый язык удобен в следующих случаях:

  1. Если нужно обеспечить программируемость без риска дестабилизировать систему. Так как, в отличие от плагинов, скрипты интерпретируются, а не компилируются, неправильно написанный скрипт выведет диагностическое сообщение, а не приведёт к системному краху;
  2. Если важен выразительный код. Во-первых, чем сложнее система, тем больше кода приходится писать «потому, что это нужно». Во-вторых, в скриптовом языке может быть совсем другая концепция программирования, чем в основной программе — например, игра может быть монолитным однопоточным приложением, в то время как управляющие персонажами скрипты выполняются параллельно или как сопрограммы. В-третьих, скриптовый язык имеет собственный проблемно-ориентированный набор команд, и одна строка скрипта может делать то же, что несколько десятков строк на традиционном языке.
  3. Скрипты известны низким порогом вхождения. На скриптовом языке может писать даже низкоквалифицированный программист.
  4. Если требуется кроссплатформенность. Например, JavaScript — его исполняют браузеры под самыми разными ОС.
  5. Скриптовые языки не применяются для написания программ, требующих оптимальности и быстроты исполнения. Но из-за простоты на них часто пишутся небольшие одноразовые («проблемные») программы. Многие скриптовые языки общего назначения работают достаточно медленно, поэтому их часто используют только в сочетании со сторонними библиотеками (например, NumPy в сочетании с Python).

У плагинов также есть важные преимущества.

  1. Готовые программы, оттранслированные в машинный код, выполняются значительно быстрее скриптов, которые интерпретируются из исходного кода динамически при каждом исполнении. Большинство программ переносимы на уровне исходного кода и могут быть выполнены интерпретатором соответствующего языка подобно скриптам. Использование же байт-кода (Java, C#, llwm) позволяет хранить, переносить и исполнять программы более эффективным образом, нежели скрипты.
  2. Полный доступ к любому аппаратному обеспечению или ресурсу ОС (в скриптовом языке для этого должен существовать специальный API, написанный на компилируемом языке). Плагины, работающие с аппаратным обеспечением, традиционно называют драйверами.
  3. Если предполагается интенсивный обмен данными между основной программой и пользовательским расширением, для плагина его обеспечить проще.
  4. Если языки программирования созданы в разное время и для разных целей, их сравнение по выразительной силе некорректно. Совершенно естественно, что, например, алголоподобные языки (создавались в 60-х и 70-х) будут менее выразительны, чем современные скриптовые языки общего назначения. В сравнении же с "ровесниками" скрипты выглядят уже гораздо менее выгодно.
  5. Для компилируемых языков программирования характерно использование сильной статической системы типов, которая позволяет эффективно отлавливать ошибки. Использование же в современных скриптах динамической типизации обусловлено скорее техническими особенностями реализации.

Примечания

  1. ↑ Сузи Р. Сценарные языки: Python. «Мир ПК», 9, 2001
  2. ↑ Ousterhout, 1998.
  3. ↑ LuaJIT
  4. ↑ PyPy
  5. ↑ Joab Jackson (IDG News Service), Facebook releases a PHP just-in-time compiler
  6. ↑ Денисов Ю. А., Программирование для гуманитариев, 12. Лекция: Представление грамматик, интуит.ру
  7. ↑ 1 2 3 4 5 6 7 Богатырев, 2001.
  8. ↑ Трофимов, Трофимова, 1997.
  9. ↑ James Gosling: «Java Is Under No Serious Threat From PHP, Ruby or C#»
  10. ↑ Ryan Tomayko, Gosling Didn’t Get The Memo

Литература

Ссылки

wikiredia.ru

Скриптовый язык

Материал из Seo Wiki - Поисковая Оптимизация и Программирование

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

В прикладной программе, сценарий (скрипт) — это программа, которая автоматизирует некоторую задачу, которую без сценария пользователь делал бы вручную, используя интерфейс программы.

Плагины или скрипты?

Для написания пользовательских расширений могут использоваться как скрипты (в терминологии некоторых программ «макросы»), так и плагины (независимые модули, написанные на компилируемых языках; в некоторых программах они могут называться «утилитами», «экспортёрами», «драйверами»). Скриптовый язык предпочтительнее в таких случаях:

  1. Если нужно обеспечить программируемость без риска дестабилизировать систему. Так как, в отличие от плагинов, скрипты интерпретируются, а не компилируются, неправильно написанный скрипт выведет диагностическое сообщение, а не приведёт систему к краху;
  2. Если важен выразительный код. Во-первых, чем сложнее система, тем больше кода приходится писать «потому, что это нужно» — см., например, Hello World#Маргинальные примеры. Во-вторых, в скриптовом языке может быть совсем другая концепция программирования, чем в основной программе — например, игра может быть монолитным однопоточным приложением, в то время как управляющие персонажами скрипты выполняются параллельно. В-третьих, скриптовый язык имеет собственный проблемно-ориентированный набор команд, и одна строка скрипта может делать то же, что несколько десятков строк на традиционном языке. Как следствие, на скриптовом языке может писать программист очень низкой квалификации — например, геймдизайнер своими руками, не полагаясь на программистов, может корректировать правила игры;
  3. Если требуется кроссплатформенность. Хорошим примером является JavaScript — его исполняют браузеры под самыми разными ОС.

У плагинов же есть три важных преимущества.

  1. Готовые программы, оттранслированные в машинный код, выполняются значительно быстрее скриптов, которые интерпретируются из исходного кода динамически при каждом исполнении. Поэтому скриптовые языки не применяются для написания программ, требующих оптимальности и быстроты исполнения. Но из-за простоты они часто применяются для написания небольших, одноразовых («проблемных») программ.
  2. Полный доступ к любому аппаратному обеспечению или ресурсу ОС (в скриптовом языке для этого должен существовать написанный на машинном коде API). Плагины, работающие с аппаратным обеспечением, традиционно называют драйверами.
  3. Если предполагается интенсивный обмен данными между основной программой и пользовательским расширением, для плагина его обеспечить проще.

Также в плане быстродействия скриптовые языки можно разделить на языки динамического разбора (sh, command.com) и предварительно компилируемые (Perl). Языки динамического разбора считывают инструкции из файла программы минимально требующимися блоками, и исполняют эти блоки, не читая дальнейший код. Предкомпилируемые языки транслируют программу в байт-код и затем исполняют его. Некоторые скриптовые языки имеют возможность компиляции программы «на лету» в машинный код (см. JIT).

Типы скриптовых языков

Универсальные скриптовые языки

Встроенные в прикладные программы

Командные оболочки

Встраиваемые

Также в приложение может быть встроена возможность расширения сценариями на любом из универсальных скриптовых языков, см. к примеру библиотеку SWIG или автоматический планировщик задач.

www.sbup.com

язык - это... Что такое Скрипт-язык?

  • скрипт и транскрипт —         СКРИПТ И ТРАНСКРИПТ (англ. script, transcript) понятия дискурс анализа. В натуралистической когнитивной психологии решение проблемы сознания связывается с возможностью «раскодирования» так называемого языка мысли с помощью современных… …   Энциклопедия эпистемологии и философии науки

  • Скрипт — программа, содержащая набор инструкций для некоторых приложений или утилит. Семантика и синтаксис инструкций в скриптах определяются соответствующими приложениями. Обычно язык скриптов включает простые структуры управления: линейные… …   Финансовый словарь

  • Язык сценариев — Скриптовый язык (англ. scripting language, в русскоязычной литературе принято название язык сценариев)  язык программирования, разработанный для записи «сценариев», последовательностей операций, которые пользователь может выполнять на компьютере …   Википедия

  • Лимбу (язык) — Язык лимбу Самоназвание: ᤕᤰᤌᤢᤱ ᤐᤠᤴ yakthung pān Страны …   Википедия

  • прото-синайский скрипт — лингв.  Прото синайский скрипт был первым алфавитом, поэтому он является родителем почти всех алфавитных систем письма, появившихся после него. Он повился в Египте и Синае в 1900 году до н.э., и как уже говорилось, был вдохновлен египетскими… …   Универсальный дополнительный практический толковый словарь И. Мостицкого

  • финикийский скрипт — лингв.  Прото синайский скрипт был первым алфавитом, поэтому он является родителем почти всех алфавитных систем письма, появившихся после него. Он повился в Египте и Синае в 1900 году до н.э., и как уже говорилось, был вдохновлен египетскими… …   Универсальный дополнительный практический толковый словарь И. Мостицкого

  • китайский скрипт — лингв. Китайский скрипт, помимо того, что им пользуется огромное количество людей, примечателен еще и тем, что является одним из старейших регулярно используемых систем письма, потому как он начал свое существование еще со 2 тысячелетия до н.э.… …   Универсальный дополнительный практический толковый словарь И. Мостицкого

  • греческий язык — лингв. Появление греческого алфавита было огромным скачком в развитии алфавитов, потому как впервые в виде отдельных букв были включены гласные. Он существует с 800 года до н.э. и за свою долгую историю использовался для записи иврита, арабского …   Универсальный дополнительный практический толковый словарь И. Мостицкого

  • арабский язык — лингв. В связи с большим количеством людей, говорящих на этом языке, а также из за широкого влияния ислама, арабский алфавит является вторым по частоте использования в мире. Встречается он в основном в Северной Африке и в Центральной и Западной… …   Универсальный дополнительный практический толковый словарь И. Мостицкого

  • древнеегипетский скрипт — лингв. Считается, что египетские иероглифы возникли вскоре после шумерской клинописи, примерно в 3200 году до н.э. Наряду с известными иероглифами, существуют два других древнеегипетских скрипта: иератическое письмо (использовалось в основном в… …   Универсальный дополнительный практический толковый словарь И. Мостицкого

  • dic.academic.ru

    Скриптовый язык Вики

    Запрос «Сценарий (программирование)» перенаправляется сюда; см. также другие значения.

    Сценарный язык (язык сценариев, жарг. скриптовый язык; англ. scripting language) — высокоуровневый язык сценариев (англ. script) — кратких описаний действий, выполняемых системой. Разница между программами и сценариями довольно размыта. Сценарий — это программа, имеющая дело с готовыми программными компонентами[1].

    Согласно Джону Устерхауту, автору языка Tcl, высокоуровневые языки можно разделить на языки системного программирования (англ. system programming languages) и сценарные языки (англ. scripting languages). Последние он также назвал склеивающими языками (англ. glue languages) или языками системной интеграции (англ. system integration languages). Сценарии обычно интерпретируются, а не компилируются[2], хотя сценарные языки программирования один за другим обзаводятся JIT-компиляторами[3][4][5].

    В более узком смысле под скриптовым языком может пониматься специализированный язык для расширения возможностей командной оболочки или текстового редактора и средств администрирования операционных систем[6].

    Классификация[ | код]

    Языки программирования вообще и сценарные языки в частности могут быть классифицированы множеством различных способов.

    В плане быстродействия скриптовые языки можно разделить на языки динамического разбора (sh, COMMAND.COM) и предварительно компилируемые (Perl). Языки динамического разбора считывают инструкции из файла программы минимально требующимися блоками, и исполняют эти блоки, не читая дальнейший код. Предкомпилируемые языки транслируют всю программу в байт-код и затем исполняют его. Некоторые скриптовые языки имеют возможность компиляции программы «на лету» в машинный код (т. н. JIT-компиляция).

    По применению языки можно грубо разделить на три типа[7]:

    • командно-сценарные;
    • прикладные сценарные;
    • универсальные сценарные.

    Командно-сценарные языки[ | код]

    Появились ещё в 1960-х годах для управления заданиями в операционных системах. Из языков того времени наиболее известен JCL для OS/360. В этот класс входят языки пакетной обработки (англ. batch language) и языки командных оболочек, например sh, csh для Unix. Эти языки чаще всего используются в пакетном режиме обработки[7].

    Например, язык AppleScript операционной системы MacOS имеет редактор Script Editor, который позволяет записывать действия по мере их выполнения пользователем в системе в файл сценария (текстовый файл) и оформлять в виде исполняемой программы. Такой подход позволяет составлять простейшие сценарии непрограммирующим пользователем[8].

    Встроенные (прикладные сценарные) языки[ | код]

    Сценарные языки этого типа начали появляться в 1980-е годы, когда на промышленных персональных компьютерах стало возможным интерактивное общение с ОС. В клиент-серверной архитектуре такие языки работали в клиентской части программного обеспечения[7].

    Языки общего назначения[ | код]

    Этот тип сценарных языков наиболее известен (особенно в применении к веб-программированию). Языки этого типа стали возникать с 1990-х годов[7].

    Следует заметить, что многие языки этой категории имеют более широкое применение, чем в качестве просто языков сценариев, например JavaScript, который в некоторых случаях может выполнятся на сервере.

    Критика[ | код]

    Создатель Java Джеймс Гослинг отвёл динамическим языкам программирования (упомянув PHP и Ruby) роль сценарных языков, генерирующих веб-страницы, но непригодных для применения в более широкой нише приложений из-за проблем с масштабируемостью и производительностью[9]. Приверженцы динамических языков не оставили критику без ответа по всем пунктам, в частности о его старании представить современные динамические языки всего лишь «сценарными»[10].

    Плагины и скрипты[ | код]

    Для написания пользовательских расширений могут использоваться как скрипты (в терминологии некоторых программ «макросы»), так и плагины (независимые модули, написанные на компилируемых языках; в некоторых программах они могут называться «утилитами», «экспортёрами», «драйверами»).

    Скриптовый язык удобен в следующих случаях:

    1. Если нужно обеспечить программируемость без риска дестабилизировать систему. Так как, в отличие от плагинов, скрипты интерпретируются, а не компилируются, неправильно написанный скрипт выведет диагностическое сообщение, а не приведёт к системному краху;
    2. Если важен выразительный код. Во-первых, чем сложнее система, тем больше кода приходится писать «потому, что это нужно». Во-вторых, в скриптовом языке может быть совсем другая концепция программирования, чем в основной программе — например, игра может быть монолитным однопоточным приложением, в то время как управляющие персонажами скрипты выполняются параллельно или как сопрограммы. В-третьих, скриптовый язык имеет собственный проблемно-ориентированный набор команд, и одна строка скрипта может делать то же, что несколько десятков строк на традиционном языке.
    3. Скрипты известны низким порогом вхождения. На скриптовом языке может писать даже низкоквалифицированный программист.
    4. Если требуется кроссплатформенность. Например, JavaScript — его исполняют браузеры под самыми разными ОС.
    5. Скриптовые языки не применяются для написания программ, требующих оптимальности и быстроты исполнения. Но из-за простоты на них часто пишутся небольшие одноразовые («проблемные») программы. Многие скриптовые языки общего назначения работают достаточно медленно, поэтому их часто используют только в сочетании со сторонними библиотеками (например, NumPy в сочетании с Python).

    У плагинов также есть важные преимущества.

    1. Готовые программы, оттранслированные в машинный код, выполняются значительно быстрее скриптов, которые интерпретируются из исходного кода динамически при каждом исполнении. Большинство программ переносимы на уровне исходного кода и могут быть выполнены интерпретатором соответствующего языка подобно скриптам. Использование же байт-кода (Java, C#, llwm) позволяет хранить, переносить и исполнять программы более эффективным образом, нежели скрипты.
    2. Полный доступ к любому аппаратному обеспечению или ресурсу ОС (в скриптовом языке для этого должен существовать специальный API, написанный на компилируемом языке). Плагины, работающие с аппаратным обеспечением, традиционно называют драйверами.
    3. Если предполагается интенсивный обмен данными между основной программой и пользовательским расширением, для плагина его обеспечить проще.
    4. Если языки программирования созданы в разное время и для разных целей, их сравнение по выразительной силе некорректно. Совершенно естественно, что, например, алголоподобные языки (создавались в 60-х и 70-х) будут менее выразительны, чем современные скриптовые языки общего назначения. В сравнении же с "ровесниками" скрипты выглядят уже гораздо менее выгодно.
    5. Для компилируемых языков программирования характерно использование сильной статической системы типов, которая позволяет эффективно отлавливать ошибки. Использование же в современных скриптах динамической типизации обусловлено скорее техническими особенностями реализации.

    Примечания[ | код]

    1. ↑ Сузи Р. Сценарные языки: Python. «Мир ПК», 9, 2001
    2. ↑ Ousterhout, 1998.
    3. ↑ LuaJIT
    4. ↑ PyPy
    5. ↑ Joab Jackson (IDG News Service), Facebook releases a PHP just-in-time compiler
    6. ↑ Денисов Ю. А., Программирование для гуманитариев, 12. Лекция: Представление грамматик, интуит.ру
    7. ↑ 1 2 3 4 5 6 7 Богатырев, 2001.
    8. ↑ Трофимов, Трофимова, 1997.
    9. ↑ James Gosling: «Java Is Under No Serious Threat From PHP, Ruby or C#»
    10. ↑ Ryan Tomayko, Gosling Didn’t Get The Memo

    Литература[ | код]

    Ссылки[ | код]

    ru.wikibedia.ru