Эксперты расходятся в оценках отличий скриптовых языков от компилируемых. Ясно, что языки, подобные Python, размывают границы, прежде казавшиеся четкими.
Изначально скрипты представляли собой небольшие текстовые файлы, в которых вызывались системные команды. Скрипты исполнялись интепретаторами команд, которые умеют перебирать строки с командами одну за другой.
Современные скриптовые языки, вроде Tcl, разбирают скрипт во время запуска и преобразуют текст в промежуточный байт-код. Однажды скомпилированный, скрипт уже трудно отличить от программы.
В скриптовых языках:
* Нет нужды в компиляции. Инерпретатор может уметь преобразовывать текст в промежуточный код, но этого не требуется делать в отдельной стадии. Такой код, если это предусмотрено конструкцией языка, будет сгенерирован при первом запуске скрипта.
* Возможности скриптового языка обычно представлены в виде более высокого уровня абстрагирования от системы, чем в компилируемом языке программирования. Например, программирование сокетов требует в Tcl существенно меньше кода, чем на С. Tcl предоставляет более высокоуровневые интерфейсы для работы с сетью, поэтому код намного проще.
* Команды в сценарии - это в большинстве своем команды, доступные оператору в командной строке операционной системы. Скрипты могут также содержать свои собственные команды.
* Язык, на котором пишут скрипты, называется скриптовым. А какой язык считать таковым? Это скорее соглашение большинства, чем что-то более серьезное.
В таблице представлены короткие списки скриптовых языков и языков программирования (компилируемых). Впрочем, эти списки не могут запретить вам программировать на Perl или Python.
Скриптовые языки |
Языки программирования |
Bash (Bourne Again shell), Csh (C shell), JavaScript, Ksh (Korn shell), Lua, MS-DOS batch files, Perl, Python, Ruby, Sh (Bourne shell), Tcl |
Assembler, C, C++, C#, FORTRAN, Forth, Java, LISP, Modula-2, Modula-3, Oberon, Pascal |
Далее - Как определить, когда нужна программа, а когда - скрипт?
Назад - Скриптинг
Содержание