Подтвердить что ты не робот

Когда язык считается языком сценариев?

Что делает язык сценарием? Я слышал, как некоторые люди говорят "когда интерпретируются, а не компилируются". Это сделает PHP (например) языком сценариев. Это единственный критерий? Или существуют другие критерии?

См. также:

4b9b3361

Ответ 1

Язык сценариев - это язык, который "создает сценарии" для других вещей. Основной упор делается не на создание собственных приложений, а на то, как заставить существующее приложение действовать так, как вы хотите. JavaScript для браузеров, VBA для MS Office.

Ответ 2

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

Ответ 3

Традиционно, когда речь идет о различиях в сценариях и программировании, скрипты интерпретируются и скомпилированы программы. Язык может быть выполнен по-разному - интерпретирован или скомпилирован (для байт-кода или машинного кода). Это не делает язык тем или иным.

В некоторых случаях способ использования языка делает его сценарием (например, разработчики игр, которые развиваются в основном на С++, будут script объекты в Lua). Опять же, линии размыты - язык может использоваться для программирования одним человеком, и один и тот же язык может использоваться для языка сценариев другим.

Это из статьи wikipedia о языках сценариев:

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

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

Ответ 4

"A script - это то, что вы даете актерам. Программа - это то, что вы даете аудитории". - Ларри Уолл

Я действительно больше не думаю, что есть какая-то разница. Так называемые "скриптовые" языки часто компилируются - очень быстро и во время выполнения. И некоторые языки программирования также компилируются во время выполнения (подумайте о JIT), а первый этап "компиляции" - это проверка синтаксиса и разрешение ресурсов.

Не подвешивайте на нем, это действительно не важно.

Ответ 5

Мое определение будет языком, который обычно распределяется как источник, а не как двоичный.

Ответ 6

Это как порно, вы знаете, когда вы его видите. Единственное возможное определение языка сценариев:

A language which is described as a scripting language.

Немного круговое, не так ли? (Кстати, я не шучу).

В принципе, нет ничего, что делает язык сценарием, за исключением того, что он называется таким, особенно его создателями. Основным набором современных языков сценариев является PHP, Perl, JavaScript, Python, Ruby и Lua. Tcl - первый крупный современный язык сценариев (это был не первый скриптовый язык, но я забыл, что это такое, но я был удивлен, узнав, что он предшествовал Tcl).

Я описываю особенности основных языков сценариев в моей статье:

 A Practical Solution for Scripting Language Compilers
 Paul Biggar, Edsko de Vries and David Gregg
 SAC '09: ACM Symposium on Applied Computing (2009), (March 2009)

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

Остается только вопрос: как определить, является ли новый язык скриптовым языком. Ну, если он называется сценарием, он один. Итак, Factor - это язык сценариев (или, по крайней мере, когда это было написано), но, скажем, Java не является.

Ответ 7

Здесь есть много возможных ответов.

Во-первых: это не вопрос разницы между языком сценариев и языком программирования, потому что язык сценариев является языком программирования. Это вопрос о том, какие черты делают язык программирования языком сценариев, в то время как другой язык программирования не является языком сценариев.

Во-вторых: действительно сложно сказать, что такое язык XYZ, будь то "сценарий", "функциональное программирование" , "объектно-ориентированное программирование" или что у вас есть. Определение того, что такое "функциональное программирование" , довольно ясно, но никто не знает, что такое "язык функционального программирования".

Функциональное программирование или объектно-ориентированное программирование - это стили программирования; вы можете писать в функциональном стиле или объектно-ориентированном стиле практически на любом языке. Например, виртуальный файловый системный коммутатор Linux и модель драйверов Linux сильно объектно ориентированы, несмотря на то, что написаны на C, тогда как много кода Java или С#, которое вы видите в Интернете, является очень процедурным, а не объектно-ориентированным. OTOH, я видел некоторый сильно функциональный Java-код.

Итак, если функциональное программирование и объектно-ориентированное программирование - это просто стили, которые могут быть выполнены на любом языке, то как вы определяете "объектно-ориентированный язык программирования"? Можно сказать, что объектно-ориентированный язык программирования - это язык, который позволяет объектно-ориентированное программирование. Но это не так много определения: все языки допускают объектно-ориентированное программирование, поэтому все языки объектно-ориентированы? Итак, вы говорите, ну язык объектно-ориентированный, если он заставляет вас программировать в объектно-ориентированном стиле. Но это не так много для определения: все языки допускают функциональное программирование, поэтому язык не является объектно-ориентированным?

Итак, для меня я нашел следующее определение:

Язык - это язык сценариев (объектно-ориентированный язык/функциональный язык), если он и

  • облегчает создание сценариев (объектно-ориентированное программирование/функциональное программирование), т.е. не только позволяет, но и упрощает и обеспечивает естественность и содержит функции, которые помогают с ним, И
  • поощряет и направляет вас к написанию сценариев (объектно-ориентированное программирование/функциональное программирование).

Итак, после пяти абзацев я пришел к: "язык сценариев - это язык для скриптинга". Какое отличное определение. NOT.

Очевидно, теперь нам нужно взглянуть на определение "scripting".

Здесь возникает третья проблема: в то время как термин "функциональное программирование" четко определен, и только термин "язык функционального программирования" является проблематичным, к сожалению, с помощью сценариев, как термин "скриптинг", так и термин "язык сценариев" не определен.

Ну, во-первых, скриптинг - это программирование. Это просто особый вид программирования. IOW: каждый script - это программа, но не каждая программа - это script; набор всех скриптов является правильным подмножеством множества программ.

В моем личном мнении, что делает сценарии сценариев и отличает его от других видов программирования, является то, что & hellip;

Скрипты в значительной степени управляют объектами, которые

  • не были созданы script,
  • имеют время жизни, не зависящее от script и
  • жить вне домена script.

Кроме того, используемые типы данных и алгоритмы обычно не определяются script, а внешней средой.

Подумайте о оболочке script: сценарии оболочки обычно обрабатывают файлы, каталоги и процессы. Большинство файлов, каталогов и процессов в вашей системе, вероятно, не были созданы в текущем запуске script. И они не исчезают, когда выходит script: их время жизни полностью не зависит от script. И они действительно не являются частью script, либо они являются частью системы. Вы не запустили свой script, написав классы File и Directory, эти типы данных не относятся к вашей проблеме: вы просто предполагаете, что они есть, и вы даже не знаете (и вам не нужно знать) как они работают. И вы не реализуете свои собственные алгоритмы, например, для обхода каталога вы просто используете find вместо того, чтобы реализовать свой собственный поиск по ширине.

Короче: a script присоединяется к более крупной системе, которая существует независимо от script, манипулирует некоторой небольшой частью системы и затем выходит.

Эта более крупная система может быть операционной системой в случае оболочки script, браузера DOM в случае браузера script, игры (например, World of Warcraft с Lua или Second Life с языком сценариев Linden), приложение (например, язык AutoLisp для макросов AutoCAD или Excel/Word/Office), веб-сервер, пакет роботов или что-то еще полностью.

Обратите внимание, что аспект скриптинга полностью ортогонален всем другим аспектам языков программирования: язык сценариев может быть строго или слабо типизирован, строго или свободно напечатан, статически или динамически типизирован, номинально, структурно или утка типизирован, черт возьми даже быть нетипизированным. Он может быть императивным или функциональным, объектно-ориентированным, процедурным или функциональным, строгим или ленивым. Его реализации можно интерпретировать, компилировать или смешивать.

Например, Mondrian - строго строго статически типизированный ленивый функциональный скриптовый язык с компилируемой реализацией.

Тем не менее, все это спорный вопрос, потому что путь этот термин скриптовый язык действительно используется в реальном мире, не имеет ничего общего с какой-либо из вышеперечисленного. Он чаще всего используется просто как оскорбление, и определение довольно просто, даже упрощено:

  • реальный язык программирования: мой язык программирования
  • язык сценариев: ваш язык программирования

Похоже, что этот термин чаще всего используется.

Ответ 8

"Язык сценариев" является одним из тех нечетких понятий, которые могут означать многие вещи. Обычно это относится к тому факту, что существует одноэтапный процесс, который приведет вас от исходного кода к выполнению.

Например, в Perl: perl my_source.pl

Учитывая приведенные выше критерии, PHP является языком сценариев (даже если вы можете иметь "процесс компиляции", например, при использовании Zend Encoder для "защиты" исходного кода).

PS. Часто (но не всегда) интерпретируются языки сценариев. Также часто (но опять же не всегда) языки сценариев динамически типизируются.

Ответ 9

Все языки сценариев - это языки программирования. Так что строго говоря, нет никакой разницы.

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

Ответ 10

Я думаю, что у Роберто Иерусульского есть очень хороший ответ или вопрос в "Программирование в Луа":

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

Ответ 11

Одно деление

  • scripting = динамически интерпретируемый
  • normal = скомпилировано

Динамически интерпретируемый язык интерпретируется во время выполнения, тогда как скомпилированный язык компилируется перед выполнением.

Я должен добавить, что, как указал Йорг, интерпретируемое/скомпилированное различие не является признаком языка, а механизма выполнения.

Вас также может заинтересовать это объяснение Тип системы, которая связана и больше фокусируется на аспекте языка, а не на выполнении двигатель. Большинство языков сценариев динамически типизируются, тогда как "нормальные" языки в основном статически типизируются.

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

Ответ 12

Я вижу язык сценариев как что-то, что не требует явного подхода "скомпилировать" тяжелый вес. Главная особенность с точки зрения программистов заключается в том, что вы редактируете код и запускаете его сразу.

Таким образом, я бы рассматривал JavaScript и PHP как языки сценариев, тогда как ActionScript 3/Flex на самом деле.

Ответ 13

Обычно язык сценариев:

  • Динамически типизированный
  • Интерпретируется с небольшим акцентом на производительность, но хорошая переносимость.
  • Требуется гораздо меньше шаблонный код, что приводит к очень быстрому прототипированию
  • Используется для небольших задач, подходящих для записи одного файла для запуска некоторого полезного "script".

В то время как язык, не относящийся к скрипту, обычно:  1. Статически типизированный  2. Составлено с акцентом на производительность  3. Требуется более шаблонный код, что приводит к более медленному прототипированию, но более читабельному и долговечному обслуживанию  4. Используется для больших проектов, адаптируется ко многим шаблонам проектирования

Но это скорее историческое различие в наши дни, на мой взгляд. Javascript и Perl были написаны с учетом небольших простых сценариев, в то время как С++ был написан с учетом сложных приложений; но оба они могут использоваться в любом случае. И многие языки программирования, как современные, так и старые, все равно размывают линию (и в первую очередь это было нечетким!).

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

Ответ 14

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

В частности, оболочка script была автоматизацией процессов в ядре ОС (традиционно AppleScript на Mac); роль, которая все больше и больше переходила в руки Перла, а затем из нее в Python в последнее время. Я видел, что Scheme (особенно в реализации Guile) используется для объявления сцен трассировки лучей; и в последнее время Lua очень популярен как язык программирования для игр script - до такой степени, что единственная жестко закодированная вещь во многих новых играх - это графический/физический движок, в то время как вся логика игры закодирована в Lua. Таким же образом JavaScript считал script поведение веб-браузера.

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

Однако "языки сценариев" определенно не являются синонимами "интерпретируемых языков" - например, BASIC интерпретировался большую часть своей жизни (т.е. до того, как он потерял свою акронимность и стал Visual Basic), но никто не думает это как скриптинг.

ОБНОВЛЕНИЕ: Чтение материалов как обычно доступно в Википедии.

Ответ 15

Первая точка, язык программирования не является "языком сценариев" или чем-то другим. Это может быть "скриптовый язык" и что-то еще.

Вторая точка, разработчик языка скажет вам, является ли это языком сценариев.

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

Тем не менее, я буду рассматривать язык как язык сценариев, если он используется для предоставления некоторого типа среднего предмета. Например, я бы рассмотрел большинство реализаций JavaScript-скриптового языка. Если JavaScript был запущен в ОС, а не в браузере, то это не был бы скриптовый язык. Если PHP работает внутри Apache, это язык сценариев. Если он запускается из командной строки, это не так.

Ответ 16

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

Популярным аргументом является то, что языки программирования скомпилированы и интерпретируются языки сценариев. Однако я считаю, что этот аргумент полностью ложный... почему?

  • Chakra и V8 (механизмы Microsoft и Google JavaScript) компилируют код перед выполнением
  • QBasic интерпретируется - делает ли это Qbasic "скриптовым" языком?

На этом основании это мой аргумент в пользу разницы между языком программирования и языком сценариев:

Язык программирования работает на уровне машины и имеет доступ к самому компьютеру (память, графика, звук и т.д.).

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

Ответ 17

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

Я имею в виду, что вы не можете сказать что-то вроде Python, или Ruby - это "скриптовые" языки в этот день и возраст (у вас даже есть такие вещи, как IronPython и JIT-ваш-любимый язык, разница размыта еще больше).

Честно говоря, лично я не чувствую, что PHP - это язык сценариев. Я бы не ожидал, что люди захотят классифицировать PHP иначе, чем сказать Java в своем резюме.

Ответ 18

В своем мнении я бы сказал, что динамически интерпретируемые языки, такие как PHP, Ruby и т.д., все еще являются "нормальными" langauges. Я бы сказал, что примерами "скриптовых" языков являются такие вещи, как bash (или ksh или tcsh или что-то еще) или sqlplus. Эти языки часто используются для объединения существующих программ в систему в ряд последовательных и связанных с ними команд, таких как:

  • скопировать A.txt в /tmp/work/
  • запустить процесс ночной очистки на сервере базы данных
  • запишите результаты и отправьте их в sysdamin

Итак, я бы сказал, что разница (для меня, во всяком случае) больше в том, как вы используете язык. Языки, такие как PHP, Perl, Ruby, могут использоваться как "языки сценариев", но я обычно вижу, что они используются как "нормальные языки" (за исключением Perl, который, кажется, проходит в обоих направлениях.

Ответ 19

Я просто продолжу и перенесу свой ответ из дублированного вопроса


Название "Язык сценариев" относится к очень конкретной роли: язык, на который вы пишете команды для отправки в существующее программное приложение. (например, традиционное телевидение или фильм "script" )

Например, когда-то веб-страницы HTML были скучными. Они всегда были статичными. Тогда однажды, Netscape подумал: "Эй, что, если мы позволяем браузеру читать и действовать на небольших командах на странице?" И вот так, был создан Javascript.

Простая команда javascript - это команда alert(), которая инструктирует/управляет браузером (программным приложением), который читает веб-страницу, для отображения предупреждения.

Теперь, alert() связан каким-либо образом с С++ или каким-либо другим языком кода, который браузер фактически использует для отображения предупреждения? Конечно нет. Кто-то, кто пишет "alert()" на странице .html, не понимает, как браузер действительно отображает предупреждение. Он просто пишет команду, которую интерпретирует браузер.

Посмотрите простой код javascript

<script>
var x = 4
alert(x)
</script>

Это инструкции, которые отправляются в браузер, чтобы браузер интерпретировал сам по себе. Язык программирования, который браузер просматривает, чтобы фактически установить переменную в 4, и поместить ее в предупреждение... он полностью не связан с javascript.

Мы называем последнюю серию команд "script" (поэтому она заключена в теги <script>). Просто по определению "script" , в традиционном смысле: Ряд инструкций и команд, присланных актерам. Всем известно, что сценарий (фильм script), например, представляет собой script.

Сценарий (script) - это не актеры, камеры или спецэффекты. Сценарий просто говорит им, что делать.

Теперь, что такое скриптовый язык, точно?

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

Javasript - это очевидный пример; существует очень мало приложений Javascript, которые не входят в сферу сценариев.

ActionScript (язык флеш-анимаций) и его производные являются скриптовыми языками, поскольку они просто выдают команды Flash-плееру/интерпретатору. Конечно, есть абстракции, такие как объектно-ориентированное программирование, но все это просто средство до конца: отправить команды флеш-плееру.

Python и Ruby обычно также используются в качестве языков сценариев. Например, я когда-то работал в компании, которая использовала команды Ruby для script для отправки в браузер, который был по очереди, "перейдите на этот сайт, нажмите эту ссылку...", чтобы выполнить базовое автоматическое тестирование. Я не был "разработчиком программного обеспечения" каким-либо образом, на этой работе. Я просто написал сценарии, которые отправили команды на компьютер для отправки команд в браузер.

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

Даже приложения GUI, созданные из Python и Ruby, представляют собой скрипты, отправленные в API, написанные на С++ или C. Он сообщает C-приложению, что делать.

Конечно, есть линия неопределенности. Почему вы не можете сказать, что Machine Language/C - это языки сценариев, потому что они являются сценариями, которые компьютер использует для взаимодействия с базовой материнской платой/видеокартами/чипами?

Есть несколько строк, которые мы можем сделать, чтобы уточнить:

  • Когда вы можете писать язык сценариев и запускать его без "компиляции", это скорее нечто вроде direct- script. Например, вам не нужно ничего делать с помощью сценария, чтобы рассказать актерам, что с ним делать. Это уже есть, используется, как есть. По этой причине мы исключаем скомпилированные языки из вызываемых языков сценариев, хотя в некоторых случаях их можно использовать для создания сценариев.

  • Язык сценариев подразумевает команды, отправленные в сложное программное приложение; что вся причина заключается в том, что мы пишем сценарии в первую очередь - так что вам не нужно знать сложностей того, как программное обеспечение работает для отправки команд на него. Таким образом, языки сценариев, как правило, являются языками, которые посылают (относительно) простые команды для сложных программных приложений... в этом случае машинный язык и код сборки не сокращают его.

Ответ 20

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

Ответ 21

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

Каждый компилируемый язык может быть превращен в язык script, и наоборот, все зависит от реализации интерпретатора или компилятора, в качестве примера С++ имеет интерпретатор, поэтому его можно назвать языком script, если он используется так ( не очень практичный вообще, поскольку С++ - очень сложный язык), одним из наиболее полезных языков script в настоящее время является Python...

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

Ответ 22

Я предпочитаю, чтобы люди не использовали термин "скриптовый язык", поскольку я думаю, что он уменьшает усилия. Возьмите такой язык, как Perl, часто называемый "скриптовый язык".

  • Perl - это язык программирования!
  • Perl скомпилирован как Java и С++. Он просто скомпилировался намного быстрее!
  • Perl имеет объекты и пространства имен и блокировки.
  • Perl имеет IDE и отладчики и профилировщики.
  • Perl имеет обучение и поддержку и сообщество.
  • Perl - это не просто веб-сайт. Perl - это не просто системный администратор. Perl - это не только клейкая лента в Интернете.

Почему нам даже нужно различать язык, подобный Java, который был скомпилирован, а Ruby - нет? Какая ценность в маркировке?

Подробнее об этом см. http://xoa.petdance.com/Stop_saying_script.

Ответ 23

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

Ответ 24

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

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

Ответ 25

Для немного другого вопроса. Язык сценариев - это язык программирования, но язык программирования не обязательно является языком сценариев. Для управления или script используется система сценариев. Эта система может быть операционной системой, где язык сценариев будет bash. Системой может быть веб-сервер с PHP скриптовый язык. Языки сценариев предназначены для заполнения конкретной ниши; они являются доменными языками. Интерактивные системы интерпретировали языки сценариев, порождая представление о том, что языки сценариев интерпретируются; однако это является следствием системы, а не самого скриптового языка.

Ответ 26

Язык сценариев - это язык, который настраивает или расширяет существующую программу.
Язык сценариев - это язык программирования.

Ответ 27

Определение "скриптовый язык" довольно нечеткое. Я бы основывал его на следующих соображениях:

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

  • Программы в языках сценариев обычно передаются в исходной форме.

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

  • Языки сценариев, как правило, кросс-платформенные, а не машинные.

  • Языки скриптов облегчают вызов других программ и интерфейса с операционной системой.

  • Языки сценариев обычно легко встраиваются в более крупные системы, написанные на более традиционных языках программирования.

  • Языки сценариев обычно предназначены для простоты программирования и с меньшим учетом скорости выполнения. (Если вы хотите быстро выполнить, обычный совет состоит в том, чтобы закодировать трудоемкие части в чем-то вроде C и вставлять язык в C или вызывать C бит из языка.)

Некоторые из характеристик, перечисленных выше, верны для реализаций, и в этом случае я имею в виду более общие реализации. Там были С-интерпретаторы, с (AFAIK) нет очевидного шага компиляции, но это не относится к большинству реализаций C. Вы могли бы скомпилировать Perl-программу для собственного кода, но это не так, как обычно. Некоторые другие характеристики носят социальный характер. Некоторые из вышеперечисленных критериев несколько перекрываются. Как я уже сказал, определение нечеткое.

Ответ 28

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

Ответ 29

Я бы сказал, что язык сценариев - это тот, который сильно манипулирует объектами, которые он сам не определяет. Например, JavaScript манипулирует объектами DOM, предоставляемыми браузером, PHP управляет огромной библиотекой функций на основе C и т.д. Конечно, не точное определение, больше способ думать, если он.

Ответ 30

Ваши критерии звучат правильно, но всегда немного размыты. Например, Java компилируется (в байт-код), а затем интерпретируется (с помощью JVM). Однако он обычно не классифицируется как язык сценариев.

Возможно, это связано с тем, что Java статически типизирован. В то время как JavaScript, Ruby, Python, Perl и т.д. Не являются (все из которых часто называются языками сценариев).