Сценарные языки программирования (скрипт языки)

Главная > Информатика > Языки программирования > Скрипт языки

Языки передачи, хранения, обработки и представления информации

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

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

Скриптовые языки применяются как для клиентского (JScript, VBScript), так и для серверного (PHP) программирования веб-сайтов.

Имеются и универсальные скрипт-языки (Perl, Python, Ruby, Tcl). Последние создавались для некоторых определённых целей, но со временем расширялись и применялись для всё более широкого круга задач (например, Perl изначально создавалася как язык обработки текста, но затем был значительно усовершенствован). Сейчас их уже называют не скриптовыми, а динамическими языками программирования, т.к. они позволяют определять типы данных и осуществлять синтаксический анализ и компиляцию «на лету» — на этапе выполнения программы. Такие языки удобны для быстрой разработки приложений.

Помимо упомянутых, к динамическим языкам относят также Smalltalk и JavaScript. Некоторыми динамическими чертами обладает и Visual Basic.

Технологии Perl, SSI, PHP предназначены для разработки динамических веб-сайтов и доступны на любой платформе.

Разделы страницы о сценарных языках программирования (скрипт-языках):


Виды сценарных языков

Типы скриптовых языков:

  1. Языки обработки текста: AWK, Perl (последний изначально был таким, но затем был значительно усовершенствован и стал универсальным).
  2. Командные оболочки: AppleScript, sh, csh, bash. AppleScript в 2007 году встроен в Mac OS X.
  3. Языки для веб-разработки: серверные (PHP), клиентские (JavaScript - считающийся "встроенным" сценарным языком), универсальные (ниже).
  4. Универсальные (Perl, Python, Tcl, Ruby). Обычно эти языки создавались для каких-то конкретных целей, но со временем расширялись и применялись для всё более и более широкого круга задач (в т.ч. веб-разработки). Сейчас их уже называют "динамическими" языками программирования.
  5. Встроенные в прикладные программы (VBA, ActionScript). В прикладной программе скрипт — это программа, которая автоматизирует некоторую задачу, которую без сценария пользователь делал бы вручную, используя интерфес программы.

Справочники скриптовых языков и библиотеки веб-скриптов

Встроенные (прикладные) сценарные языки

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

Это такие языки как:

Командно-сценарные языки (в т.ч. скрипт-оболочки ОС)

Они появились ещё в 1960-х годах для управления заданиями в операционных системах (самый известный - JCL для OS/360). В этот класс входят языки пакетной обработки (англ. batch language) и языки командных оболочек, например sh (и его разновидности bash, csh, ksh) для Unix. Эти языки чаще всего используются в пакетном режиме обработки.

Другие известные командно-сценарные языки:

Юникс-оболочки Shell (sh, csh, bash)

Bourne shell (часто sh по имени исполняемого файла) — ранняя командная оболочка UNIX, разработанная 1978 г. Стивеном Борном из Bell Labs и выпущенная в составе 7-го издания операционной системы UNIX (UNIX Version 7). Даннаяоболочка является де-факто стандартом и доступна почти в любом дистрибутиве *nix. Существует много командных оболочек, основанных (идейно или напрямую) на Bourne shell.

C shell (csh) — командная оболочка UNIX со встроенным скриптовым языком, разработанная Биллом Джоем, активным разработчиком BSD UNIX, в 1979 году. Базировался на коде командного интерпретатора шестой версии UNIX. Скриптовый язык не уступает шеллу Борна по мощности, но отличается синтаксисом. В то время как Борн скопировал все основные операторы с языка Algol 68, Билл Джой использовал в качестве макета язык C, вероятно, руководствуясь своими предпочтениями и предпочтениями других пользователей BSD UNIX.

Bash (от англ. Bourne again shell, каламбур «Born again» shell — «Возрождённый» shell) — усовершенствованная и модернизированная вариация командной оболочки Bourne shell. Одна из наиболее популярных современных разновидностей командной оболочки UNIX. Особенно популярна в среде GNU/Linux, где она часто используется в качестве предустановленной командной оболочки. Bash — это акроним от Bourne-again-shell, «еще-одна-командная-оболочка-Борна». Название — игра слов: Bourne-shell — одна из популярных разновидностей командной оболочки для UNIX (sh), автором которой является Стивен Борн (1978), усовершенствована в 1987 году Брайаном Фоксом. Фамилия Bourne (Борн) перекликается с английским словом born, означающим «родившийся», отсюда: рождённая-вновь-командная оболочка.

Универсальные сценарные языки (общего назначения)

Для человека с молотком любая проблема кажется гвоздем.

Язык CGI-программирования Perl

Одногорбый верблюд дромадер - символ Перла

PHP — это малое зло, созданное некомпетентными любителями, а Perl — это громадное и хитроумное зло, созданное опытными и извращёнными профессионалами. (Jon Ribbens, программист)

Два девиза Perl:

  1. есть больше одного способа сделать это;
  2. простые вещи должны быть простыми, а сложные вещи — возможными.

Perl — высокоуровневый интерпретируемый динамический язык программирования общего назначения, созданный Ларри Уоллом, лингвистом по образованию. Название языка представляет собой аббревиатуру от Practical Extraction and Report Language («практический язык для извлечения данных и составления отчётов»). Сначала аббревиатура состояла из 5 символов и совпадала с английским словом pearl ("жемчужина"). А когда стало известно, что такой язык существует, букву «а» убрали.

Основной особенностью языка считаются его богатые возможности для работы с текстом, в том числе реализованные при помощи регулярных выражений. Perl унаследовал много свойств от языков С, shell script, AWK.

На сегодняшний день Perl стал неотъемлемым инструментом в инструментарии web-программистов. В отличии от таких технологий как JavaScript и VBScript, perl-скрипты выполняются на сервере [альтернатива PHP], что позволяет создавать полноценные интерактивные приложения, управлять базами данных, почтой, создавать баннерные сети, счетчики, гостевые книги, форумы и многое, многое другое.

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

Язык функционального программирования Python

Питон - символ скриптового языка Python

Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход... Одной из интересных синтаксических особенностей языка является выделение блоков программы с помощью отступов.

Появился в: 1990 г. Автор(ы): Гвидо ван Россум. Испытал влияние: ABC, Modula-3, Lisp, Smalltalk, C, Java, Icon. Повлиял на: Ruby, Boo, Groovy, ECMAScript.

Groovy - объектно-ориентированный язык программирования, разработанный для платформы Java как дополнение к языку Java с возможностями Python, Ruby и Smalltalk.

Python (Питон) — высокоуровневый язык программирования общего назначения с акцентом на производительность разработчика и читаемость кода. Синтаксис ядра Python минималистичен. В то же время стандартная библиотека включает большой объём полезных функций. Python поддерживает несколько парадигм программирования [!], в т.ч. структурное, объектно-ориентированное, функциональное, императивное, аспектно-ориентированное.

Основные архитектурные черты — динамическая типизация, автоматическое управление памятью, полная интроспекция, механизм обработки исключений, поддержка многопоточных вычислений и удобные высокоуровневые структуры данных. Код в Python организовывается в функции и классы, которые могут объединяться в модули (которые в свою очередь могут быть объединены в пакеты).

Python пригодится в случаях, когда задачи, связанные с анализом данных, вплетаются в работу веб-приложений, или если статистический код требуется инкорпорировать в рабочую базу данных. Python, будучи полнофункциональным языком программирования, отлично подходит для реализации алгоритмов с их последующим практическим использованием. Обязательно установите NumPy /SciPy (научные вычисления) и pandas (манипуляции с данными), чтобы приспособить Python для анализа данных. Кроме того, обратите внимание на библиотеку matplotlib для создания графики и scikit-learn для машинного обучения.

Контекстный интерпретатор REBOL

REBOL (Relative Expression Based Object Language) — контекстно-зависимый объектный язык программирования, созданный специально для распределенных вычислений в Web. Позиционируется как язык обмена сообщениями.

REBOL (Ребол) — это высокоуровневый мета-язык. Основные концепции языка: скрипты (тексты), выражения, серии, блоки, файлы, функции, объекты, модули, порты, протоколы, синтаксический анализ, математика, ошибки, графика нижнего уровня, графические диалекты. Язык прост в понимании, ему можно учить школьников и немедленно начинать программировать. Но, одновременно, он достаточно мощный благодаря своей универсальности, а отдельные приемы и методологии могут быть предметом глубокого университетского курса.

Интерпретатор Ruby

Ruby - рубин программирования?

Ruby - универсальный скрипт-язык для ООП, пришедшего на смену Perl + Python, и сочетающего также достоинства языков Smalltalk, Eifel, Ada, Java. Используется для быстрого программирования прототипов систем и в других областях.

История языка Ruby началась в 1993 году, когда Якихиро Мацумото (известный как “matz”) взялся за реализацию собственного скриптового языка, который бы был таким же мощным и удобным, как Perl, и более объектно-ориентированным, чем Python [концептуально повлияли также языки искусственного интеллекта].

Первая общедоступная версия 0.95 увидела свет в 1995 году. После этого Ruby быстро получил широкое распространение в Японии — это легко объяснимо происхождением языка и отсутствием языкового барьера между первыми пользователями Ruby и его создателем. За период с 1995 по 2002 год в Японии вышло около двадцати книг о Ruby, и Ruby стал в этой стране более популярным языком, чем Python. После 2000 года началось распространение Ruby по всему миру... Сейчас, по данным компании Black Duck Software, Ruby — четвёртый по их количеству язык программирования после Java, C/C++ и C#... Тем не менее, это говорит не о популярности Ruby, а об активном и заинтересованном сообществе разработчиков вокруг языка, которые так страстно и трепетно относятся к последнему...

Регулярные выражения — спасение от всех бед для одних и ночной кошмар для других разработчиков, а если говорить объективно, то это мощнейший инструмент, требующий, однако, большой осторожности при применении. Регулярные выражения (регексы, регекспы, регулярки) в языке Ruby основаны на синтаксисе Perl 5 и потому в основных чертах знакомы всем, кто использовал Perl, Python или PHP. Но Ruby тем и хорош, что каждый компонент языка реализован со своим собственным подходом, упрощающим использование данного инструмента и увеличивающим его мощность.

Главная цель Ruby - эффективность разработки программ, и пользователи найдут, что программирование на нем эффективно и даже забавно. Этот язык хорошо приспособлен для таких проблемных областей, как обработка текста, программирование CGI и XML, программирование для сети, приложения с графическим интерфейсом, прототипирование и обучение программированию.

Ruby – это тщательно сбалансированный язык. Его создатель, Yukihiro Matsumoto, соединил конструкции его любимых языков (Perl, Smalltalk, Eiffel, Ada и Lisp), чтобы сформировать новый язык, в котором функциональное программирование уравновешено императивным (процедурным). Он часто повторял, что он “старается сделать Ruby естественным, но не простым языком в том плане, как он отображает жизнь. Основываясь на этом, он добавляет: "Ruby прост на вид, но очень сложен внутри, подобно нашему человеческому телу."

Порталы о языке Ruby

Обзоры и статьи о Ruby

Сценарный интерпретатор R со статанализом и графопостроением

R — интерпретируемый язык программирования, основным способом работы с которым является командный интерпретатор. Язык является регистрозависимым, в плане синтаксиса он похож, с одной стороны, на функциональные языки типа Scheme, с другой — на типичные современные сценарные языки, с простым синтаксисом и небольшим набором основных конструкций. Язык объектный: любой программный объект в нём имеет набор атрибутов — именованный список значений, определяющих его.

В целом, как язык программирования, R довольно прост и даже примитивен. Его наиболее сильная сторона — возможность неограниченного расширения с помощью пакетов. В базовую поставку R включен основной набор пакетов, а всего по состоянию на 2019 год доступно более 15 316 пакетов. В R реализованы практически все актуальные средства универсальных статистических вычислений, такие как регрессионный анализ и анализ временных рядов, а также множество специфических алгоритмов для решения узкоспециализированных задач и исследований в отдельных областях.

Ещё одна особенность языка — возможность создания качественной графики типографского уровня, которая может быть экспортирована в распространённые графические форматы и использована для презентаций или публикаций. Имеются готовые пакеты, связывающие R с GUI-фреймворками (например, основанными на Tcl/Tk) и позволяющие создавать специализированные утилиты статистического анализа с графическим интерфейсом пользователя и отображением результатов в виде графиков и диаграмм. Язык R просто создан для визуализаций. Обязательно ознакомьтесь с пакетами для визуализации ggplot2, ggvis, googleVis и rCharts.

Событийный язык прототипов Tcl (Tool command language)

Перо - символ скрипт-языка Tcl

Интерпретируемый язык программирования высокого уровня Tcl ориентирован преимущественно на автоматизацию рутинных процессов ОС и крупных программных систем, состоя из мощных команд, ориентированных на работу с абстрактными нетипизированными объектами.

Принципиальное отличие Tcl от командных языков ОС состоит в независимости от типа системы и, самое главное, он позволяет создавать переносимые программы с графическим интерфейсом (GUI).

Tcl (Tool Command Language — «командный язык инструментов», читается «тикль») — скриптовый язык высокого уровня. Tcl часто применяется совместно с графической библиотекой Tk (Tool Kit). Связку Tcl/Tk по-русски иногда называют «Так-тикль».

Области применения языка — быстрое прототипирование, создание графических интерфейсов для консольных программ (пакетов программ), встраивание в прикладные программы, тестирование. Иногда Tcl применяется для создания CGI скриптов. Tcl, наряду с Perl и Python, стал одним из 3 классических скриптовых языков общего назначения. Эта троица фигурирует не только в качестве списка свободных дистрибутивов, собираемых в ActiveState, но и, например, как языки, на которых (помимо диалекта PL/pgSQL) можно писать триггеры и хранимые процедуры сервера БД PostgreSQL.

Особенностью языка является отсутствие ключевых слов. Понятие команды в Tcl аналогично понятию процедуры или функции распространённых языков программирования. Это относится и к управляющим конструкциям языка. В сочетании с элементарным синтаксисом это обеспечивает хорошую расширяемость языка, в том числе и библиотеками, написанными на других языках, таких как C/C++ или Java.

В Tcl также качественно реализована модель управления программой на основе событий. События могут генерироваться таймером, при появлении данных в канале, изменении значения переменной, при завершении какой-либо внешней программы, или просто при работе пользователя с интерфейсом Tk. Можно задавать свои события и управлять ими.

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

На Tcl легко программировать в функциональном стиле: он обеспечивает такие механизмы, как функции высшего порядка и абстракции функций, хотя Tcl редко используют таким образом.

Специальные сценарные языки

Язык тиражирования Lua

Lua ([лу́а], порт. «луна») — интерпретируемый язык программирования, разработанный подразделением Tecgraf (Computer Graphics Technology Group) Католического университета Рио-де-Жанейро (Бразилия). Интерпретатор языка является свободно распространяемым, с открытыми исходными текстами на языке Си. По возможностям, идеологии и реализации язык ближе всего к JavaScript, однако Lua отличается более мощными и гораздо более гибкими конструкциями [поэтому, несмотря на его изначально узкое предназначение, он считается уже языком общего назначения].

Язык широко используется для создания тиражируемого программного обеспечения (например, на нём написан графический интерфейс пакета Adobe Lightroom). Также получил известность как язык программирования уровней и расширений во многих играх (в том числе World of Warcraft) из-за удобства встраивания, скорости исполнения кода и лёгкости обучения.


Главная

Языки программирования: 1GL и 2GL | 3GL (Яву) | Пионеры ООП | 4GL и RAD | Визуально-объектные | Сценарные (скриптовые) | Ява-подобные Парадигмы информатики

Алгоритмы | Бизнес-анализ | Жизненный цикл программ | Интернет | IT-стандарты | ОС | СУБД | Искусственный интеллект и 5GL

ИТ-менеджмент | Электроника | Математика | Эвристика | Компьютерные игры

На правах рекламы (см. условия): [an error occurred while processing this directive]    


© «Сайт Игоря Гаршина», 2002, 2005. Автор и владелец - Игорь Константинович Гаршин (см. резюме). Пишите письма (Письмо И.Гаршину).
Страница обновлена 22.03.2024
Яндекс.Метрика