<<
>>

Общие характеристики скриптовых языков

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

Пакетное и интерактивное использование.

В некоторых скриптовых языках (например, в языке Рег!) используется компиляция «на лету», при которой для

Скриптовые языки

81

генерации любого результата читается весь исходный текст программы. Большинство других языков ориентировано на построчную компиляцию или интерпретацию. Например, Python, Tcl, Guile и Ruby (с коротким вспомогательным скриптом) воспринимают все команды с клавиатуры.

Экономичность выражений. Для поддержки быстрой разработки и интерактивного использования скриптовые языки ориентированы на применение минимума «шаблонов». Некоторые интенсивно используют пунктуацию и очень короткие идентификаторы (язык Perl), в то время как другие (Tcl, AppleScript) ориентированы на синтаксис естественной речи, с большим количеством слов и небольшим количеством пунктуации.

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

Отсутствие объявлений; простые правила видимости данных. Большинство скриптовых языков обходится без объявления, в них предоставляются простые правила видимости имен. В некоторых языках (например, в языке Perl) все конструкции являются глобальными по умолчанию; редкие объявления задают для переменной вложенную область видимости. В других языках (например, PHP и Tcl) все данные считаются локальными по умолчанию; глобальные переменные должны быть явно импортированы.

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

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

Эта контекстная интерпретация похожа на неявное приведение типа данных, за исключением того, что нет понятия «естественного» типа, из которого должен быть преобразован объект; все различные возможные интерпретации считаются «одинаково естественными».

Легкий доступ к другим программам. Большинство языков программирования предоставляет возможность посылки из одной программы запроса на запуск другой программы. Этот запрос адресуется операционной системе. В скриптовых языках, однако, эти запросы более фундаментальны и имеют более развитую прямую поддержку. Язык Perl, например, предлагает более 100 встроенных команд для доступа к функциям ввода-вывода операционной системы, манипуляций с файлами и каталогами, управления процессами, доступа к базе данных и сокетам, взаимодействию и синхронизации процессов, защите и авторизации, службе времени и сетевому взаимодействию. Эти встроенные команды более просты для использования, чем соответствующие вызовы из библиотек на ^подобных языках.

82

Глава 3. Виды языков программирования

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

Высокоуровневые типы данных. Высокоуровневые типы данных, такие как множества, мультимножества, словари, списки и кортежи, широко представлены в стандартных библиотечных пакетах традиционных языков программирования. Некоторые языки (особенно C++) позволяют пользователям переопределять стандартные инфиксные операции так, чтобы сделать обработку этих категорий столь же удобной, как и в случае примитивных данных аппаратного уровня. Скриптовые языки идут на один шаг дальше, встраивая высокоуровневые типы в синтаксис и семантику самого языка. Для большинства скриптовых языков, например, совершенно обычно наличие массивов, которые индексируются строками символов, с базовой реализацией на основе хеш-таблиц. Для памяти обеспечивается сборка мусора. Наиболее быстрые изменения в языках программирования сегодня происходят именно в скриптовых языках. Это объясняется несколькими причинами: непрерывным ростом веб-сети, динамизмом сообщества разработчиков ПО с открытым исходным кодом и сравнительно низкими затратами на создание нового языка скриптов. Там, где компилируемый язык промышленного качества (Java или C#) требует многолетних затрат и очень большой группы разработчиков, один талантливый разработчик, работая в одиночку, может создать пригодную для использования реализацию нового языка скриптов за год.

Отчасти благодаря этим быстрым изменениям последние скриптовые языки интегрировали в себя новейшие концепции в проектировании языков. Ruby, например, имеет универсальную объектную модель (подобно Smalltalk), настоящие итераторы (как в Clu), сечения массивов (как в Fortran 90), структурированную обработку исключений, множественное присваивание и рефлексию. Python также предоставляет некоторые из этих характеристик, вместе с анонимными функциями первого класса и представлениями списков в стиле языка Haskell.

<< | >>

Еще по теме Общие характеристики скриптовых языков:

  1. 3.1. ОБЩИЕ ХАРАКТЕРИСТИКИ
  2. Общие характеристики
  3. Общие характеристики
  4. 3.4.1. Общие характеристики
  5. 3.9.1. Общие характеристики
  6. 3.8.АСЦЕНДЕНТвЗНАКЕСКОРПИОНА.3.8.1. Общие характеристики
  7. 3.11.1. Общие характеристики знака
  8. 3.12.АСЦЕНДЕНТвЗНАКЕРЫБ Общие характеристики
  9. АСЦЕНДЕНТвЗНАКЕКОЗЕРОГА 3.10.1. Общие характеристики знака
  10. Асцендент в знаке Льва Общие характеристики
  11. Асцендент в знаке Девы Общие характеристики
  12. АСЦЕНДЕНТ В ЗНАКЕ ВЕСОВ Общие характеристики
  13. НАИБОЛЕЕ ОБЩИЕ ЭМОЦИОНАЛЬНЫЕ, ФИЗИЧЕСКИЕ И ПСИХОЛОГИЧЕСКИЕ ХАРАКТЕРИСТИКИ НИЗКОЙ САМООЦЕНКИ