Общие характеристики скриптовых языков
Пакетное и интерактивное использование.
В некоторых скриптовых языках (например, в языке Рег!) используется компиляция «на лету», при которой для
Скриптовые языки |
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.
Еще по теме Общие характеристики скриптовых языков:
-
Windows -
Архитектура компьютера -
Интернет -
Информатика -
Компьютер -
Компьютерные и телекоммуникационные системы -
Программирование -
Социальные сети -
-
Английский язык -
Астрология -
Астрономия -
Биология -
Военная литература -
Журналистика -
Компьютерная инженерия -
Педагогика -
Право -
Психология -
Социология -
Lecture.Center
|