Википедия

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

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

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

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

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

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

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

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

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

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

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

  • AutoHotkey
  • JCL
  • sh
    • bash
    • csh
    • ksh
  • Pilot
  • REXX
  • AppleScript
  • COMMAND.COM и cmd.exe
  • VBScript
  • PowerShell
  • AutoIt

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

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

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

  • AutoLISP
  • ECMAScript и его диалекты (JScript, JavaScript, ActionScript)
  • Emacs Lisp
  • ERM
  • Game Maker Language
  • LotusScript
  • Lua
  • script
  • VBA
  • Встроенный язык программирования 1С:Предприятие

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

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

  • Tcl (Tool command language)
  • Lua
  • Perl
  • PHP
  • Python
  • REBOL
  • Ruby
  • JavaScript

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

Критика

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

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

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

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

  • Если нужно обеспечить программируемость без риска дестабилизировать систему. Так как, в отличие от плагинов, скрипты интерпретируются, а не компилируются, неправильно написанный скрипт выведет диагностическое сообщение, а не приведёт к системному краху. Контрпримером могут служить, например, JVM и CLR, причём если первая была разработана из соображений переносимости кода (безопасность — побочный эффект), то вторая — именно из соображений безопасности.
  • Если важен выразительный код.
    • Во-первых, чем сложнее система, тем больше кода приходится писать «потому, что это нужно». Скрипт может перенести часть подобного шаблонного кода (инициализация, уничтожение, межпоточная синхронизация и так далее) в среду исполнения скриптов.
    • Во-вторых, в скриптовом языке может быть совсем другая концепция программирования, чем в основной программе — например, игра может быть монолитным однопоточным приложением, в то время как управляющие персонажами скрипты выполняются параллельно или как сопрограммы. Такой подход хорош с точки зрения масштабируемости системы (сценарии не зависят от реализации процедур, пишутся гораздо быстрее и легче отлаживаются), но не очень хорош с точки зрения качества кода, поскольку неизбежно приводит к его дублированию.
      • Гораздо более рациональным подходом является создание файлов ресурсов (как вариант, xml-файлов, структур, баз данных), описывающих поведение «по существу» (в декларативном стиле), как это делается с другими свойствами внутриигровых объектов (текстуры, модели, эффекты, звуки).
    • В-третьих, скриптовый язык имеет собственный проблемно-ориентированный набор команд, и одна строка скрипта может делать то же, что несколько десятков строк на традиционном языке. Однако стоит заметить, что бо́льшая выразительность кода на сценарных языках является следствием их ограниченности и/или новизны и сравнивать C (1970-е) и PHP (1990-е) и/или Fortran (1950-е) и Python (1990-е) неуместно.
  • Скрипты известны низким порогом вхождения, на скриптовом языке может писать даже низкоквалифицированный программист. Это одновременно и плюс, и минус. С одной стороны, это позволяет нанимать дешёвую рабочую силу (освобождать специалистов от рутинной работы и повышать скорость разработки экстенсивно), а с другой критически снижает производительность и надёжность (из-за ориентированности обучения таким языкам на решение конкретных задач, а не на понимание сущности производимых действий).
    • Проблема высокого порога вхождения возникает, в основном, в языках с избыточным синтаксисом (C++, C#) и может быть полностью решена лишь отказом от них в пользу более удачных (что, разумеется, далеко не всегда возможно). В этом случае скрипты выполняют роль паллиатива. Собственно, они и возникли когда масштабируемость Си-подобных языков стала недостаточной для повседневной работы и порог вхождения новичков в отрасль резко возрос.
    • Проблема большого количества рутины, вообще говоря, неразрешима, но в большинстве случаев может быть сглажена более надёжными дополнительными средствами, например, автоматической кодогенерацией.
  • Если требуется кроссплатформенность. Например, JavaScript — его исполняют браузеры под самыми разными ОС.
    • Проблема с кроссплатформенностью напрямую вытекает из стандарта языка: стандарт Си, например, указывает «sizeOf (short) <= sizeOf (int) <= sizeOf (long)», но не указывает какую именно разрядность они должны иметь (эту проблему решают прикладные библиотеки, например, Glib). Современные не-сценарные языки (Java, C#, Haskell) этой проблемы полностью лишены именно по причине хорошей стандартизации.
  • Скриптовые языки применяются для написания программ, не требующих оптимальности и быстроты исполнения. Из-за простоты на них часто пишутся небольшие одноразовые («проблемные») программы.
    • Многие скриптовые языки общего назначения работают достаточно медленно, поэтому их часто используют только в сочетании со сторонними библиотеками (например, NumPy в сочетании с Python).
      • Например, NumPy основывается на фортрановской библиотеке LAPACK и GSL, код которой, проверен временем и регулярно дополняется современными функциями, а множество специальных версий Лапака (AOML, , ATLAS, cuBLAS) очень хорошо оптимизированных под современные архитектуры позволяют гарантировать практически пиковую производительность работы функций этой библиотеки.
    • Более правильный пример: язык Lua является классическим встраиваемым языком сценариев общего назначения, для его работы достаточно минимальной реализации Си (везде, где есть Си, может работать и Lua).
    • Также скриптовые языки хороши для визуализации данных: создания сложных графиков и презентаций, а также простых программ (например, Python используется в графических оболочках Gnome и Cinnamon для создания апплетов и небольших настроечных утилит).

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

  • Готовые программы, оттранслированные в машинный код, выполняются значительно быстрее скриптов, которые интерпретируются из исходного кода динамически при каждом исполнении. Большинство программ переносимы на уровне исходного кода и могут быть выполнены интерпретатором соответствующего языка подобно скриптам. Использование же байт-кода (Java, C#, LLVM) позволяет хранить, переносить и исполнять программы более эффективным образом, нежели скрипты.
    • JIT-компиляция также позволяет оптимизировать общий код под конкретную платформу (в перспективе, под конкретное семейство процессоров и имеющееся оборудование).
  • Полный доступ к любому аппаратному обеспечению или ресурсу ОС (в скриптовом языке для этого должен существовать специальный API, написанный на компилируемом языке). Плагины, работающие с аппаратным обеспечением, традиционно называют драйверами.
  • Если предполагается интенсивный обмен данными между основной программой и пользовательским расширением, для плагина его обеспечить проще.
  • Для компилируемых языков программирования характерно использование сильной статической системы типов, которая позволяет эффективно отлавливать ошибки и лучше оптимизировать код. Использование же в современных скриптах динамической типизации обусловлено скорее техническими особенностями реализации и историческими причинами. Также у статически типизированных языков есть потенциал для роста, а именно, переход с традиционной мономорфной типизации на полиморфную. Расширения мономорфизма в современных Си-подобных языках (перегрузка, ad-hoc-полиморфизм) и полиморфизм подтипов, а также параметрический полиморфизм и классы типов в экспериментальных языках (например, Haskell) сценарным языкам недоступен (статическая типизация во время исполнения скрипта приведёт к существенной потере производительности).

Примечания

  1. A. B. Makar, K. E. McMartin, M. Palese, T. R. Tephly. Formate assay in body fluids: application in methanol poisoning // Biochemical Medicine. — 1975-06. — Т. 13, вып. 2. — С. 117–126. — ISSN 0006-2944. — doi:10.1016/0006-2944(75)90147-7. Архивировано 2 октября 2020 года.
  2. Сузи Р. Сценарные языки: Python. «Мир 2001», 9, 2001. Дата обращения: 9 октября 2012. Архивировано 17 января 2013 года.
  3. Сценарные языки: Python (англ.). Издательство «Открытые системы». Дата обращения: 14 сентября 2023. Архивировано 24 мая 2022 года.
  4. Ousterhout, 1998.
  5. LuaJIT. Дата обращения: 9 октября 2012. Архивировано 2 октября 2012 года.
  6. PyPy. Дата обращения: 9 октября 2012. Архивировано 12 мая 2008 года.
  7. Joab Jackson (IDG News Service), Facebook releases a PHP just-in-time compiler. Дата обращения: 9 октября 2012. Архивировано 11 июня 2012 года.
  8. Денисов Ю. А., Программирование для гуманитариев, 12. Лекция: Представление грамматик, интуит.ру
  9. Богатырев, 2001.
  10. Трофимов, Трофимова, 1997.
  11. James Gosling: «Java Is Under No Serious Threat From PHP, Ruby or C#». Дата обращения: 9 октября 2012. Архивировано 24 октября 2012 года.
  12. Ryan Tomayko, Gosling Didn’t Get The Memo. Дата обращения: 9 октября 2012. Архивировано 18 января 2012 года.

Литература

  • Богатырев Р. Природа и эволюция сценарных языков // Мир ПК. — 2001. — № 11.
  • Ousterhout J. Scripting: Higher-Level Programming for the 21st Century (англ.) // IEEE Computer. — 1998. — Vol. 31, no. 3. — P. 23—30.
  • Георгиев В.О., Еникеев А.И. Сценарный подход в создании диалоговых систем // Программные продукты и системы. — 1991. — № 3.
  • Трофимов М. И., Трофимова М. П. В поисках компьютерного эсперанто // Открытые системы. — 1997. — № 3.

Ссылки

  • Lynn Greiner, Q&A: The state of the scripting universe: Scripting languages are becoming more popular, www.computerworld.com, 2008

Википедия, чтение, книга, библиотека, поиск, нажмите, истории, книги, статьи, wikipedia, учить, информация, история, скачать, скачать бесплатно, mp3, видео, mp4, 3gp, jpg, jpeg, gif, png, картинка, музыка, песня, фильм, игра, игры, мобильный, телефон, Android, iOS, apple, мобильный телефон, Samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Сеть, компьютер, Информация о Сценарный язык, Что такое Сценарный язык? Что означает Сценарный язык?

Zapros Scenarij programmirovanie perenapravlyaetsya syuda sm takzhe drugie znacheniya Scenarnyjyazyk yazyk scenariev skriptovoj yazyk angl scripting language vysokourovnevyj yazyk scenariev angl script kratkih opisanij dejstvij vypolnyaemyh sistemoj Raznica mezhdu programmami i scenariyami dovolno razmyta Scenarij eto programma imeyushaya delo s gotovymi programmnymi komponentami kotorye odnazhdy zagruzhennye v svoej rabote ne zavisyat ot dalnejshego nalichiya otsutstviya podklyucheniya k Seti Soglasno avtoru yazyka Tcl Dzhonu Austerhautu vysokourovnevye yazyki mozhno razdelit na yazyki sistemnogo programmirovaniya angl system programming languages i scenarnye yazyki angl scripting languages Poslednie on takzhe nazval skleivayushimi yazykami angl glue languages ili yazykami sistemnoj integracii angl system integration languages Scenarii obychno interpretiruyutsya a ne kompiliruyutsya hotya scenarnye yazyki programmirovaniya odin za drugim obzavodyatsya JIT kompilyatorami V bolee uzkom smysle pod skriptovym yazykom mozhet ponimatsya specializirovannyj yazyk dlya rasshireniya vozmozhnostej komandnoj obolochki ili tekstovogo redaktora i sredstv administrirovaniya operacionnyh sistem KlassifikaciyaYazyki programmirovaniya voobshe i scenarnye yazyki v chastnosti mogut byt klassificirovany mnozhestvom razlichnyh sposobov V plane bystrodejstviya skriptovye yazyki mozhno razdelit na yazyki dinamicheskogo razbora sh COMMAND COM i predvaritelno kompiliruemye Perl Yazyki dinamicheskogo razbora schityvayut instrukcii iz fajla programmy minimalno trebuyushimisya blokami i ispolnyayut eti bloki ne chitaya dalnejshij kod Predkompiliruemye yazyki transliruyut vsyu programmu v bajt kod i zatem ispolnyayut ego Nekotorye skriptovye yazyki imeyut vozmozhnost kompilyacii programmy na letu v mashinnyj kod t n JIT kompilyaciya Po primeneniyu yazyki mozhno grubo razdelit na tri tipa komandno scenarnye prikladnye scenarnye universalnye scenarnye Komandno scenarnye yazyki Osnovnaya statya Scenarij komandnoj stroki Poyavilis eshyo v 1960 h godah dlya upravleniya zadaniyami v operacionnyh sistemah Iz yazykov togo vremeni naibolee izvesten JCL dlya OS 360 V etot klass vhodyat yazyki paketnoj obrabotki angl batch language i yazyki komandnyh obolochek naprimer sh csh dlya Unix Eti yazyki chashe vsego ispolzuyutsya v paketnom rezhime obrabotki AutoHotkey JCL sh bash csh ksh Pilot REXX AppleScript COMMAND COM i cmd exe VBScript PowerShell AutoIt Naprimer yazyk AppleScript operacionnoj sistemy MacOS imeet redaktor Script Editor kotoryj pozvolyaet zapisyvat dejstviya po mere ih vypolneniya polzovatelem v sisteme v fajl scenariya tekstovyj fajl i oformlyat v vide ispolnyaemoj programmy Takoj podhod pozvolyaet sostavlyat prostejshie scenarii neprogrammiruyushim polzovatelem Vstroennye prikladnye scenarnye yazyki Osnovnaya statya Predmetno orientirovannyj yazyk Vstraivaemye yazyki Scenarnye yazyki etogo tipa nachali poyavlyatsya v 1980 e gody kogda na promyshlennyh personalnyh kompyuterah stalo vozmozhnym interaktivnoe obshenie s OS V klient servernoj arhitekture takie yazyki rabotali v klientskoj chasti programmnogo obespecheniya AutoLISP ECMAScript i ego dialekty JScript JavaScript ActionScript Emacs Lisp ERM Game Maker Language LotusScript Lua script VBA Vstroennyj yazyk programmirovaniya 1S PredpriyatieYazyki obshego naznacheniya Etot tip scenarnyh yazykov naibolee izvesten osobenno v primenenii k veb programmirovaniyu Yazyki etogo tipa stali voznikat s 1990 h godov Tcl Tool command language Lua Perl PHP Python REBOL Ruby JavaScript Sleduet zametit chto mnogie yazyki etoj kategorii imeyut bolee shirokoe primenenie chem v kachestve prosto yazykov scenariev naprimer JavaScript kotoryj v nekotoryh sluchayah mozhet vypolnyatsya na servere KritikaSozdatel Java Dzhejms Gosling otvyol dinamicheskim yazykam programmirovaniya upomyanuv PHP i Ruby rol scenarnyh yazykov generiruyushih veb stranicy no neprigodnyh dlya primeneniya v bolee shirokoj nishe prilozhenij iz za problem s masshtabiruemostyu i proizvoditelnostyu Priverzhency dinamicheskih yazykov ne ostavili kritiku bez otveta po vsem punktam v chastnosti o ego staranii predstavit sovremennye dinamicheskie yazyki vsego lish scenarnymi Plaginy i skriptyOsnovnaya statya Plagin Dlya napisaniya polzovatelskih rasshirenij mogut ispolzovatsya kak skripty v terminologii nekotoryh programm makrosy tak i plaginy nezavisimye moduli napisannye na kompiliruemyh yazykah v nekotoryh programmah oni mogut nazyvatsya utilitami eksportyorami drajverami Skriptovyj yazyk udoben v sleduyushih sluchayah Esli nuzhno obespechit programmiruemost bez riska destabilizirovat sistemu Tak kak v otlichie ot plaginov skripty interpretiruyutsya a ne kompiliruyutsya nepravilno napisannyj skript vyvedet diagnosticheskoe soobshenie a ne privedyot k sistemnomu krahu Kontrprimerom mogut sluzhit naprimer JVM i CLR prichyom esli pervaya byla razrabotana iz soobrazhenij perenosimosti koda bezopasnost pobochnyj effekt to vtoraya imenno iz soobrazhenij bezopasnosti Esli vazhen vyrazitelnyj kod Vo pervyh chem slozhnee sistema tem bolshe koda prihoditsya pisat potomu chto eto nuzhno Skript mozhet perenesti chast podobnogo shablonnogo koda inicializaciya unichtozhenie mezhpotochnaya sinhronizaciya i tak dalee v sredu ispolneniya skriptov Vo vtoryh v skriptovom yazyke mozhet byt sovsem drugaya koncepciya programmirovaniya chem v osnovnoj programme naprimer igra mozhet byt monolitnym odnopotochnym prilozheniem v to vremya kak upravlyayushie personazhami skripty vypolnyayutsya parallelno ili kak soprogrammy Takoj podhod horosh s tochki zreniya masshtabiruemosti sistemy scenarii ne zavisyat ot realizacii procedur pishutsya gorazdo bystree i legche otlazhivayutsya no ne ochen horosh s tochki zreniya kachestva koda poskolku neizbezhno privodit k ego dublirovaniyu Gorazdo bolee racionalnym podhodom yavlyaetsya sozdanie fajlov resursov kak variant xml fajlov struktur baz dannyh opisyvayushih povedenie po sushestvu v deklarativnom stile kak eto delaetsya s drugimi svojstvami vnutriigrovyh obektov tekstury modeli effekty zvuki V tretih skriptovyj yazyk imeet sobstvennyj problemno orientirovannyj nabor komand i odna stroka skripta mozhet delat to zhe chto neskolko desyatkov strok na tradicionnom yazyke Odnako stoit zametit chto bo lshaya vyrazitelnost koda na scenarnyh yazykah yavlyaetsya sledstviem ih ogranichennosti i ili novizny i sravnivat C 1970 e i PHP 1990 e i ili Fortran 1950 e i Python 1990 e neumestno Skripty izvestny nizkim porogom vhozhdeniya na skriptovom yazyke mozhet pisat dazhe nizkokvalificirovannyj programmist Eto odnovremenno i plyus i minus S odnoj storony eto pozvolyaet nanimat deshyovuyu rabochuyu silu osvobozhdat specialistov ot rutinnoj raboty i povyshat skorost razrabotki ekstensivno a s drugoj kriticheski snizhaet proizvoditelnost i nadyozhnost iz za orientirovannosti obucheniya takim yazykam na reshenie konkretnyh zadach a ne na ponimanie sushnosti proizvodimyh dejstvij Problema vysokogo poroga vhozhdeniya voznikaet v osnovnom v yazykah s izbytochnym sintaksisom C C i mozhet byt polnostyu reshena lish otkazom ot nih v polzu bolee udachnyh chto razumeetsya daleko ne vsegda vozmozhno V etom sluchae skripty vypolnyayut rol palliativa Sobstvenno oni i voznikli kogda masshtabiruemost Si podobnyh yazykov stala nedostatochnoj dlya povsednevnoj raboty i porog vhozhdeniya novichkov v otrasl rezko vozros Problema bolshogo kolichestva rutiny voobshe govorya nerazreshima no v bolshinstve sluchaev mozhet byt sglazhena bolee nadyozhnymi dopolnitelnymi sredstvami naprimer avtomaticheskoj kodogeneraciej Esli trebuetsya krossplatformennost Naprimer JavaScript ego ispolnyayut brauzery pod samymi raznymi OS Problema s krossplatformennostyu napryamuyu vytekaet iz standarta yazyka standart Si naprimer ukazyvaet sizeOf short lt sizeOf int lt sizeOf long no ne ukazyvaet kakuyu imenno razryadnost oni dolzhny imet etu problemu reshayut prikladnye biblioteki naprimer Glib Sovremennye ne scenarnye yazyki Java C Haskell etoj problemy polnostyu lisheny imenno po prichine horoshej standartizacii Skriptovye yazyki primenyayutsya dlya napisaniya programm ne trebuyushih optimalnosti i bystroty ispolneniya Iz za prostoty na nih chasto pishutsya nebolshie odnorazovye problemnye programmy Mnogie skriptovye yazyki obshego naznacheniya rabotayut dostatochno medlenno poetomu ih chasto ispolzuyut tolko v sochetanii so storonnimi bibliotekami naprimer NumPy v sochetanii s Python Naprimer NumPy osnovyvaetsya na fortranovskoj biblioteke LAPACK i GSL kod kotoroj proveren vremenem i regulyarno dopolnyaetsya sovremennymi funkciyami a mnozhestvo specialnyh versij Lapaka AOML ATLAS cuBLAS ochen horosho optimizirovannyh pod sovremennye arhitektury pozvolyayut garantirovat prakticheski pikovuyu proizvoditelnost raboty funkcij etoj biblioteki Bolee pravilnyj primer yazyk Lua yavlyaetsya klassicheskim vstraivaemym yazykom scenariev obshego naznacheniya dlya ego raboty dostatochno minimalnoj realizacii Si vezde gde est Si mozhet rabotat i Lua Takzhe skriptovye yazyki horoshi dlya vizualizacii dannyh sozdaniya slozhnyh grafikov i prezentacij a takzhe prostyh programm naprimer Python ispolzuetsya v graficheskih obolochkah Gnome i Cinnamon dlya sozdaniya appletov i nebolshih nastroechnyh utilit U plaginov takzhe est vazhnye preimushestva Gotovye programmy ottranslirovannye v mashinnyj kod vypolnyayutsya znachitelno bystree skriptov kotorye interpretiruyutsya iz ishodnogo koda dinamicheski pri kazhdom ispolnenii Bolshinstvo programm perenosimy na urovne ishodnogo koda i mogut byt vypolneny interpretatorom sootvetstvuyushego yazyka podobno skriptam Ispolzovanie zhe bajt koda Java C LLVM pozvolyaet hranit perenosit i ispolnyat programmy bolee effektivnym obrazom nezheli skripty JIT kompilyaciya takzhe pozvolyaet optimizirovat obshij kod pod konkretnuyu platformu v perspektive pod konkretnoe semejstvo processorov i imeyusheesya oborudovanie Polnyj dostup k lyubomu apparatnomu obespecheniyu ili resursu OS v skriptovom yazyke dlya etogo dolzhen sushestvovat specialnyj API napisannyj na kompiliruemom yazyke Plaginy rabotayushie s apparatnym obespecheniem tradicionno nazyvayut drajverami Esli predpolagaetsya intensivnyj obmen dannymi mezhdu osnovnoj programmoj i polzovatelskim rasshireniem dlya plagina ego obespechit proshe Dlya kompiliruemyh yazykov programmirovaniya harakterno ispolzovanie silnoj staticheskoj sistemy tipov kotoraya pozvolyaet effektivno otlavlivat oshibki i luchshe optimizirovat kod Ispolzovanie zhe v sovremennyh skriptah dinamicheskoj tipizacii obuslovleno skoree tehnicheskimi osobennostyami realizacii i istoricheskimi prichinami Takzhe u staticheski tipizirovannyh yazykov est potencial dlya rosta a imenno perehod s tradicionnoj monomorfnoj tipizacii na polimorfnuyu Rasshireniya monomorfizma v sovremennyh Si podobnyh yazykah peregruzka ad hoc polimorfizm i polimorfizm podtipov a takzhe parametricheskij polimorfizm i klassy tipov v eksperimentalnyh yazykah naprimer Haskell scenarnym yazykam nedostupen staticheskaya tipizaciya vo vremya ispolneniya skripta privedyot k sushestvennoj potere proizvoditelnosti PrimechaniyaA B Makar K E McMartin M Palese T R Tephly Formate assay in body fluids application in methanol poisoning Biochemical Medicine 1975 06 T 13 vyp 2 S 117 126 ISSN 0006 2944 doi 10 1016 0006 2944 75 90147 7 Arhivirovano 2 oktyabrya 2020 goda Suzi R Scenarnye yazyki Python Mir 2001 9 2001 neopr Data obrasheniya 9 oktyabrya 2012 Arhivirovano 17 yanvarya 2013 goda Scenarnye yazyki Python angl Izdatelstvo Otkrytye sistemy Data obrasheniya 14 sentyabrya 2023 Arhivirovano 24 maya 2022 goda Ousterhout 1998 LuaJIT neopr Data obrasheniya 9 oktyabrya 2012 Arhivirovano 2 oktyabrya 2012 goda PyPy neopr Data obrasheniya 9 oktyabrya 2012 Arhivirovano 12 maya 2008 goda Joab Jackson IDG News Service Facebook releases a PHP just in time compiler neopr Data obrasheniya 9 oktyabrya 2012 Arhivirovano 11 iyunya 2012 goda Denisov Yu A Programmirovanie dlya gumanitariev 12 Lekciya Predstavlenie grammatik intuit ru Bogatyrev 2001 Trofimov Trofimova 1997 James Gosling Java Is Under No Serious Threat From PHP Ruby or C neopr Data obrasheniya 9 oktyabrya 2012 Arhivirovano 24 oktyabrya 2012 goda Ryan Tomayko Gosling Didn t Get The Memo neopr Data obrasheniya 9 oktyabrya 2012 Arhivirovano 18 yanvarya 2012 goda LiteraturaBogatyrev R Priroda i evolyuciya scenarnyh yazykov rus Mir PK 2001 11 Ousterhout J Scripting Higher Level Programming for the 21st Century angl IEEE Computer 1998 Vol 31 no 3 P 23 30 Georgiev V O Enikeev A I Scenarnyj podhod v sozdanii dialogovyh sistem Programmnye produkty i sistemy 1991 3 Trofimov M I Trofimova M P V poiskah kompyuternogo esperanto Otkrytye sistemy 1997 3 SsylkiLynn Greiner Q amp A The state of the scripting universe Scripting languages are becoming more popular www computerworld com 2008Dlya uluchsheniya etoj stati zhelatelno Ispravit statyu soglasno stilisticheskim pravilam Vikipedii Proverit dostovernost ukazannoj v state informacii Na stranice obsuzhdeniya dolzhny byt poyasneniya Pozhalujsta posle ispravleniya problemy isklyuchite eyo iz spiska parametrov Posle ustraneniya vseh nedostatkov etot shablon mozhet byt udalyon lyubym uchastnikom

NiNa.Az

NiNa.Az - Абсолютно бесплатная система, которая делится для вас информацией и контентом 24 часа в сутки.
Взгляните
Закрыто