Все сценарии написаны на языках сценариев? - PullRequest
5 голосов
/ 13 марта 2009

Я смущен концепцией сценариев.

Могу ли я сказать, что makefile является своего рода скриптом?

Существуют ли сценарии, написанные на C или Java?

Ответы [ 8 ]

7 голосов
/ 13 марта 2009

Я бы сослался на Википедию для подробного объяснения.

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

Makefiles - это скрипт, который запускается "make" или MSBuild и т. Д.

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

Java (и особенно .net) немного отличается. Типичная Java-программа компилируется и запускается как исполняемый файл, но это серая область. Можно выполнить компиляцию во время выполнения «сценария», написанного на Java, и выполнить его.

3 голосов
/ 13 марта 2009

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

Сокращение и создание сценария не считается компиляцией, а результат по-прежнему считается сценарием.

1 голос
/ 14 марта 2009

Да, можно делать скрипты на Java. Я видел это много раз:)
(это был сарказм за плохой код спагетти)

1 голос
/ 13 марта 2009

Термин «сценарии» может охватывать довольно широкий спектр видов деятельности. Примерами являются программирование на императивных интерпретируемых языках, таких как VBScript, Python или сценарии оболочки, такие как csh или bash, или выражение задачи на декларативных языках , таких как XSL, SQL или Erlang.

Некоторые языки сценариев относятся к категории, именуемой Специфичные для домена языки (DSL). Хорошими примерами DSL являются make-файлы, многие другие типы файлов конфигурации, SQL, XSL и так далее.

То, что вы спрашиваете, довольно субъективно, сценарий одного человека - это приложение другого человека. Если ваша интерпретация сценариев означает, что использование языков сценариев не должно заставлять пользователя следовать традиционному циклу компиляции -> ссылка -> выполнения, тогда вы можете составить мнение, что вы не можете писать «сценарии» на C или Java.

1 голос
/ 13 марта 2009

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

Так что все будет в порядке:

bash backup_my_home_dir.sh
perl munge_some_text.pl
python download_url.py

Но это не подходит, даже если файл небольшой:

javac HandyUtility.java
java HandyUtility
1 голос
/ 13 марта 2009

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

0 голосов
/ 14 марта 2009

Я пишу сценарии на F #. Недавний - это небольшой загрузчик данных, который принимает некоторый набор данных, выполняет небольшую обработку и помещает их в БД. ~ 40 строк. Не требуется отдельный этап компиляции; Я могу просто заставить F # Interactive запускать его напрямую.

Преимущество заключается в том, что я получаю полностью работающий язык с отличной IDE и всей статической проверкой безопасности, в то время как логический вывод не дает многословия, как, скажем, Java или C #.

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

0 голосов
/ 13 марта 2009

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

...