Сценарный язык

Поделись знанием:


Ты - не раб!
Закрытый образовательный курс для детей элиты: "Истинное обустройство мира".
http://noslave.org

(перенаправлено с «Скрипт»)
Перейти к: навигация, поиск

Сцена́рный язы́к (язык сценариев, жарг. скрипто́вый язык, от англ. 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].

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

Критика

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

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

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

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

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

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

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

Напишите отзыв о статье "Сценарный язык"

Примечания

  1. [http://www.osp.ru/pcworld/2001/09/162237/ Сузи Р. Сценарные языки: Python. «Мир ПК», 9, 2001]
  2. Ousterhout, 1998.
  3. [http://luajit.org/luajit.html LuaJIT]
  4. [http://pypy.org/ PyPy]
  5. [http://www.techworld.com.au/article/409887/facebook_releases_php_just-in-time_compiler/ Joab Jackson (IDG News Service), Facebook releases a PHP just-in-time compiler]
  6. [http://www.intuit.ru/department/se/proghum/12/1.html Денисов Ю. А., Программирование для гуманитариев, 12. Лекция: Представление грамматик], интуит.ру
  7. 1 2 3 4 5 6 7 Богатырев, 2001.
  8. Трофимов, Трофимова, 1997.
  9. [http://java.sys-con.com/node/193146 James Gosling: «Java Is Under No Serious Threat From PHP, Ruby or C#»]
  10. [http://lesscode.org/2006/03/12/someone-tell-gosling/ Ryan Tomayko, Gosling Didn’t Get The Memo]

Литература

  • Богатырев Р. [http://www.osp.ru/pcworld/2001/11/162500/ Природа и эволюция сценарных языков] (рус.) // Мир ПК. — 2001. — № 11.
  • Ousterhout J. [http://www.stanford.edu/~ouster/cgi-bin/papers/scripting.pdf Scripting: Higher-Level Programming for the 21st Century] (англ.) // IEEE Computer. — 1998. — Vol. 31, no. 3. — P. 23-30.
  • Георгиев В.О., Еникеев А.И. [http://www.swsys.ru/index.php?page=article&id=1332 Сценарный подход в создании диалоговых систем] // Программные продукты и системы. — 1991. — № 3.
  • Трофимов М. И., Трофимова М. П. [http://www.osp.ru/os/1997/03/179161/ В поисках компьютерного эсперанто] // Открытые системы. — 1997. — № 3.

Ссылки

  • [http://www.computerworld.com/s/article/9114040/Q_A_The_state_of_the_scripting_universe Lynn Greiner, Q&A: The state of the scripting universe: Scripting languages are becoming more popular, www.computerworld.com, 2008]

Отрывок, характеризующий Сценарный язык

Но он лишь дружески улыбнулся, не отвечая и ничего не объясняя. А я продолжала завороженно смотреть на удивительную женщину, в руках которой так просто и легко «рождались» планеты!.. Я никогда не видела Землю со стороны, лишь на рисунках, но почему-то была абсолютно уверена, что это была именно она. А в это время уже появилась вторая планета, потом ещё одна... и ещё... Они кружились вокруг Магдалины, будто волшебные, а она спокойно, с улыбкой что-то объясняла собравшимся, вроде бы совершенно не уставая и не обращая внимания на удивлённые лица, будто говорила о чём-то обычном и каждодневном. Я поняла – она учила их астрономии!.. За которую даже в моё время не «гладили» по голове, и за которую можно было ещё всё так же легко угодить прямиком в костёр... А Магдалина играючи учила этому уже тогда – долгих пятьсот лет тому назад!!!
Видение исчезло. А я, совершенно ошеломлённая, никак не могла очнуться, чтобы задать Северу свой следующий вопрос...
– Кто были эти люди, Север? Они выглядят одинаково и странно... Их как бы объединяет общая энергетическая волна. И одежда у них одинаковая, будто у монахов. Кто они?..
– О, это знаменитые Катары, Изидора, или как их ещё называют – чистые. Люди дали им это название за строгость их нравов, чистоту их взглядов и честность их помыслов. Сами же катары называли себя «детьми» или «Рыцарями Магдалины»... коими в реальности они и являлись. Этот народ был по-настоящему СОЗДАН ею, чтобы после (когда её уже не будет) он нёс людям Свет и Знание, противопоставляя это ложному учению «святейшей» церкви. Они были самыми верными и самыми талантливыми учениками Магдалины. Удивительный и чистый народ – они несли миру ЕЁ учение, посвящая этому свои жизни. Они становились магами и алхимиками, волшебниками и учёными, врачами и философами... Им подчинялись тайны мироздания, они стали хранителями мудрости Радомира – сокровенных Знаний наших далёких предков, наших Богов... А ещё, все они несли в своём сердце негаснущую любовь к их «прекрасной Даме»... Золотой Марии... их Светлой и загадочной Магдалине... Катары свято хранили в своих сердцах истинную историю прерванной жизни Радомира, и клялись сохранить его жену и детей, чего бы им это ни стоило... За что, позже, два столетия спустя, все до одного поплатились жизнью... Это по-настоящему великая и очень печальная история, Изидора. Я не уверен, нужно ли тебе её слушать.
– Но я хочу узнать о них, Север!.. Скажи, откуда же они появились, все одарённые? Не из долины ли Магов, случаем?
– Ну, конечно же, Изидора, ведь это было их домом! И именно туда вернулась Магдалина. Но было бы неправильно отдавать должное лишь одарённым. Ведь даже простые крестьяне учились у Катаров чтению и письменности. Многие из них наизусть знали поэтов, как бы дико сейчас для тебя это не звучало. Это была настоящая Страна Мечты. Страна Света, Знания и Веры, создаваемая Магдалиной. И эта Вера распространялась на удивление быстро, привлекая в свои ряды тысячи новых «катар», которые так же яро готовы были защищать даримое им Знание, как и дарившую его Золотую Марию... Учение Магдалины ураганом проносилось по странам, не оставляя в стороне ни одного думающего человека. В ряды Катар вступали аристократы и учёные, художники и пастухи, землепашцы и короли. Те, кто имели, легко отдавали катарской «церкви» свои богатства и земли, чтобы укрепилась её великая мощь, и чтобы по всей Земле разнёсся Свет её Души.
– Прости, что прерву, Север, но разве у Катар тоже была своя церковь?.. Разве их учение также являлось религией?
– Понятие «церковь» очень разнообразно, Изидора. Это не была та церковь, как понимаем её мы. Церковью катаров была сама Магдалина и её Духовный Храм. То бишь – Храм Света и Знания, как и Храм Радомира, рыцарями которого вначале были Тамплиеры (Тамплиерами Рыцарей Храма назвал король Иерусалима Болдуин II. Temple – по-французски – Храм.) У них не было определённого здания, в которое люди приходили бы молиться. Церковь катар находилась у них в душе. Но в ней всё же имелись свои апостолы (или, как их называли – Совершенные), первым из которых, конечно же, была Магдалина. Совершенными же были люди, достигшие самых высших ступеней Знания, и посвятившие себя абсолютному служению ему. Они непрерывно совершенствовали свой Дух, почти отказываясь от физической пищи и физической любви. Совершенные служили людям, уча их своему знанию, леча нуждающихся и защищая своих подопечных от цепких и опасных лап католической церкви. Они были удивительными и самоотверженными людьми, готовыми до последнего защищать своё Знание и Веру, и давшую им это Магдалину. Жаль, что почти не осталось дневников катар. Всё, что у нас осталось – это записи Радомира и Магдалины, но они не дают нам точных событий последних трагичных дней мужественного и светлого катарского народа, так как происходили эти события уже спустя две сотни лет после гибели Иисуса и Магдалины.
– Скажи, Север, как же погибла Золотая Мария? У кого хватило столь чёрного духу, чтобы поднять свою грязную руку на эту чудесную женщину?..
– Церковь, Изидора... К сожалению, всё та же церковь!.. Она взбесилась, видя в лице катар опаснейшего врага, постепенно и очень уверенно занимавшего её «святое» место. И осознавая своё скорое крушение, уже не успокаивалась более, пытаясь любым способом уничтожить Магдалину, справедливо считая её основным виновником «преступного» учения и надеясь, что без своей Путеводной Звезды катары исчезнут, не имея ни вождя, ни Веры. Церковь не понимала, насколько сильно и глубоко было Учение и Знание катар. Что это была не слепая «вера», а образ их жизни, суть того, ДЛЯ ЧЕГО они жили. И поэтому, как бы ни старались «святые» отцы привлечь на свою сторону катар, в Чистой Стране Окситании не нашлось даже пяди земли для лживой и преступной христианской церкви...
– Получается, подобное творил не только Караффа?!.. Неужели же такое было всегда, Север?..
Меня объял настоящий ужас, когда я представила всю глобальную картину предательств, лжи и убийств, которые свершала, пытаясь выжить, «святая» и «всепрощающая» христианская вера!..
– Как же такое возможно?! Как вы могли наблюдать и не вмешиваться? Как вы могли с этим жить, не сходя с ума, Север?!!
Он ничего не ответил, хорошо понимая, что это всего лишь «крик души» возмущённого человека. Да и я ведь прекрасно знала его ответ... Потому мы какое-то время молчали, как заблудшие в темноте, одинокие души...
– Так как же всё-таки погибла Золотая Мария? Можешь ли ты рассказать мне об этом? – не выдержав затянувшейся паузы, снова спросила я.
Север печально кивнул, показывая, что понял...
– После того, как учение Магдалины заняло большую половину тогдашней Европы, Папа Урбан II решил, что дальнейшее промедление будет смерти подобно для его любимой «святейшей» церкви. Хорошенько продумав свой дьявольский план, он, не откладывая, послал в Окситанию двух верных «выкормышей» Рима, которых, как «друзей» катар, знала Магдалина. И опять же, как это слишком часто бывало, чудесные, светлые люди стали жертвами своей чистоты и чести... Магдалина приняла их в свои дружеские объятия, щедро предоставляя им еду и крышу. И хотя горькая судьба научила её быть не слишком доверчивым человеком, подозревать любого было невозможно, иначе её жизнь и её Учение потеряли бы всякий смысл. Она всё ещё верила в ДОБРО, несмотря ни на что...
И тут я опять увидела их… У выхода из пещеры стояли Магдалина и её златовласая дочурка, которой в тот момент было уже лет 11-12. Они стояли, обнявшись, всё такие же друг на друга похожие и красивые, и наблюдали последнее захватывающее мгновение изумительного окситанского заката. Пещера, на входе в которую они стояли, находилась очень высоко в горах, открываясь прямо на крутой обрыв. А вдалеке, сколько охватывал взор, укутанные дымкой вечернего тумана, величаво синели горы. Гордо застывшие, как гигантские памятники вечности и природе, они помнили мудрость и мужество Человека... Только не того, что жил сейчас, убивая и предавая, властвуя и руша. А помнили они Человека сильного и творящего, любящего и гордого, что создал чудное царство Ума и Света на этом маленьком, но прекрасном клочке Земли...