2009-03-13 2 views

ответ

1

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

7

Я хотел бы обратиться к Wikipedia за подробным объяснением.

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

Makefiles являются скрипт, который управляет «делать», или MSBuild и т.д.

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

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

+0

Есть некоторые переводчики ANSI C, к сожалению, они являются частными собственностью. –

+0

Правда - хорошая точка. Я больше пытался указать, что это не стандартный способ работы с C, но есть исключения. Я отредактирую, чтобы исправить. –

+0

Существует также TCC, библиотека, которая может скомпилировать исходный текст C (направленный на соответствие C99) и указатели возврата к функциям, подходящим для вызова. См. Http://bellard.org/tcc/, если вы осмелитесь ;-) Там даже привязка Lua! – RBerteig

3

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

Минимизация и осветление скрипта не означает компиляцию, и результат по-прежнему рассматривает сценарий.

0

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

+0

Есть языки сценариев, которые компилируются, например Python. Учитывая foo.py, вы можете скомпилировать файл foo.pyc, хотя вам нечего мешать вам просто использовать foo.py и не беспокоиться .pyc. –

+0

Согласен, хотя компиляция будет немного на бессмысленной стороне;) – hmcclungiii

1

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

Так что это было бы хорошо:

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

Но это не будет квалифицироваться, даже если файл небольшой:

javac HandyUtility.java 
java HandyUtility 
1

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

Некоторые языки сценариев относятся к категории Domain Specific Languages (DSL).Хорошими примерами DSL являются «makefile, многие другие типы файлов конфигурации, SQL, XSL и т. Д.

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

0

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

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

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

1

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

Смежные вопросы