Архив документации OpenNet.ru / Раздел "Документация для Linux" / Индекс

14.2 Отличительные черты скриптовых языков

Эксперты расходятся в оценках отличий скриптовых языков от компилируемых. Ясно, что языки, подобные 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

Далее - Как определить, когда нужна программа, а когда - скрипт?
Назад - Скриптинг
Содержание


Архив документации на OpenNet.ru