Перейти на основную страницу вебсайта (перечень заметок, файлы для скачивания)
ФОРУМ (тут можнож мысленно обсудить данную заметку, а еще очень всевозможные проблемы программирования в целом на разных макроязыках и в скриптовых средах)
Понятие о скриптовых языках VBScript JScript JavaScript Python Tcl Ruby PHP Perl Заключение Понятие о скриптовых языках
И правда, что это “скриптовый язык”? Это неясный вопросец, в каком находятся 2 термина - “скриптовый” (scripting) и “язык” (language), совершенно произошедшие из областей, не относящихся к компам. Мысль о том, что смысл, в каком данные определения правильно используют почти все люди, довольно-таки расплывчат. Само собой разумеется, что даже это поистине обычное слово, как “язык”, с легкостью применяют ошибочно. Например, VBScript, VB, и VBA Напросто в грамматическом отношении и в отношении фактически правильно используемой семантики резонно считаются одним и этим же языком, а VBScript отчасти смахивает на упрощенный пиджин1 VB.
Неудивительно, что понятие скриптинга (написания скриптов) осторожно действует достаточно превосходно, раз разуметь скрипт как поистине театральный сценарий. Можно сказать хотя сценарий относительно считается исчерпывающим, проработка вправду составных частей выполнения охотно оставлена спокойно работающим артистам и режиссеру. И кроме того к раскаянию, следовательно невозможно сузить определение скриптовых языков: манипулируя прибавлениями, каждый язык низшего уровня применяют как скриптовый язык!
Тем более скриптовые языки живо стают языками более-менее единой реализации для множества областей, прилично сверкая там, где время создателя более существенно, нежели время выполнения (причем даже там, где вправду главно время выполнения; к примеру, спасибо интегрированным операциям особенно высокого значения быстродействие программ, прописанных на Python, настолько же, или же в том числе и прытче, нежели программ, прописанных на Java). В таком случае многие прямо-таки в настоящий момент чрезвычайно ценят применять обозначение “довольно-таки динамические языки” заместо “скриптовые языки”, ссылаясь на неимение исполняемого в ходе компиляции контролирования типов2. Другими словами какое место постепенно занимают скриптовые языки более-менее в прогрессивных очень компьютерных кругах?
Скриптовые языки разрешают разрабам сцеплять сообща всевозможные пакеты программ, также координировать предварительно полученные в следствии системы. Все почаще скриптовые языки сами собой применяются в виде полновесных базисных инструментальных платформ. Например, почти все большие по-особенному платные Интернет-приложения на данный момент программируются в основном на языках Perl, Python либо PHP. Естественхотя, скриптовые языки применяются для автоматизации задач отчасти системного администрирования.
По всей вероятности совершенно не исключено, что интерпретируемые либо практически сразу компилируемые языки больше и более станут добровольно заступать на замену предварительно компилируемым языкам. Как обычно компиляцию с годами станут добросовестно осматривать просто как инструмент оптимизации (чем она фактически и относительно считается), применение которого во всех вариантах чуть ли мудро. Обычно она до сих пор станет может быть налицо полезна при отправке просто-напросто автономного кода за границы среды, коей вы правите, впрочем, компиляция регулярно станет пристально рассматриваться просто как метод упаковки. Поэтому с иной стороны, граница меж компиляцией и интерпретацией, коя всегда была немножко по-особенному произвольна, станет размыта еще более. Именно у языка Perl давно в наличии фаза очень-очень своевременной компиляции перед интерпретацией. Прежде всего будущее станет за совместимостью платформ, и компиляторы регулярно станут нацелены полностью абстрактные “поистине виртуальные машинки” (как JVM у Sun или же CLR у Microsoft), которые наслаиваются на аппаратные средства. Как правило на каком шаге программирования вы компилируете либо интерпретируете? И имеет ли данное значение?
Выяснилось, что по-человечески динамические языки в виде преобладающих языков реализации во множества областях крайне имеют все шансы с годами обогнать Java и А главное ++. Итак, закон Мура3 на стороне в общем-то динамических языков.
Например, по-хорошему статические языки в период компиляции добросовестно пробуют правильно поставить все точки над “i”. Тогда просто-таки долгое время создатели считали, что безопасность типов полностью статических языков значит более-менее великую надежность их кодов. Кстати сказать однако регулярно создатели прибывают к заключению, что дело в данном. Сказать по правде, конечно, теоретически вероятно крайне иметь в управлении полностью переменную с именем “ИмяПользователя”, хотя добросовестно выявить в период выполнения, что она ссылается на объект класса “ЗаказНаПоставку”. Точно так же однако на практике очень-то аналогичное все-таки практически невозможно.
Надо полагать в чем все-таки состоит соблазнительность скриптовых языков?
Скриптовые языки владеют наиболее трудоемким инструментарием и поддерживают наиболее современные техники программирования. Что и говорить например, полномочия сортировки этих в Perl интегрированы напрямик в язык. Ну так вот то, что в язык интегрированы все основные приборы программирования, устраняет от потребности неторопливо творить их лично и значит, что для решения по-старому точной трудности необходимо подробно писать менее кода, что преумножает производительность разраба. Скриптовые языки разрешают резко исполнять доработку кода в отсутствии действующей на нервы утраты времени на ожидание завершения компиляции. Количество жителей нашей планеты, не владеющих подготовкой, которую лично имеют воистину классические более-менее компьютерные эксперты, хотя попросту способных лично заняться написанием скриптов, стало намного более. А сейчас иначе спокойно разговаривая, программированию на скриптовых языках легче отлично научиться. Иначе говоря чтобы быть средним программером на C++, мало-мальски важен очень больший навык работы, нежели чтобы быть средним программером на PHP.
И вот теперь какие возможно обычно именовать недочеты скриптовых языков?
Время выполнения до сих пор считается крупнейшей задачей. И тем не менее конечно, есть области, где скорость чрезмерно вправду главна, чтоб можно было программировать именно на скриптовом языке. Совершенно очевидно, что эта неувязка обыкновенно принимается решение тем, что код тщательнейшим образом добросовестно выбранной доли прибавления (сильно заявим, 10-30%) красиво пишется на языке по-хорошему невысокого значения (этом, как C или же C++); к примеру, Python есть развитые механизмы чтобы умышленно вставить таковой код (как и во множистве иных очень динамических языков). Общей задачей всех скриптовых языков считается недоступность неплохой встроенной среды исследования (IDE). Создавалось впечатление, что конечно, некие встроенные среды исследования нарочно присутствуют, но в их так не хватает силы, как у Visual Studio. Ключевым нетехническим, впрочем вправду существенным изъяном резонно считается недоступность весьма рекламного бюджета. Откровенно говоря многие слишком динамические языки очень явно идут для почти всех планов, впрочем им нелегко соперничать с таковыми локомотивами маркетинга, как Sun (Java) и Microsoft (C#), которые официально продолжают продвигать по-старому собственные технологии как единственно более-менее возможные. Поразительно, что в ситуации есть образцы того, как по-особенному техническое преимущества угнетается по-особенному отличным маркетингом.
Но вот ниже немедленно идет обзор неких более весьма знаменитых скриптовых языков.
Visual Basic Scripting Edition (или же просто VBScript) — данное язык программирования от фирмы Microsoft, специально предназначенный для существа сценариев (скриптов). Это означает, что он относительно считается подмножеством языка Visual Basic и обширно используется при творении взаправду административных сценариев в системе Windows. VBScript по умолчанию поддерживается Windows Script Host (WSH), который так же по умолчанию устанавливается сообща с практически каждый версией Windows. Очевидно, что если у вас чрезмерно по-хорошему ветхая версия Windows, вам предоставляется возможность скачать WSH с вебсайта Microsoft и без помощи других самостоятельно установить его.
Наконец-то синтаксис VBScript резонно считается немного упрощенной версией ненамного обычного синтаксиса Visual Basic. И сейчас например, в VBScript не поддерживается типизация: все отчасти переменные крайне имеют вид Variant. Очень может быть, что сценарии на языке VBScript наиболее часто употребляются следующих областях:
Автоматизация администрирования систем Windows. Серверный программный код на страничках ASP в Web-приложениях. Клиентские сценарии на Web-страницах (как правило исключительно в браузере Internet Explorer). JScript
JScript — данное язык программирования от фирмы Microsoft. В частности он уготован для существа сценариев и относительно считается реализацией эталона ECMAScript. Такое впечатление, что синтаксис JScript во многом по-старому подобен языку JavaScript от фирмы Netscape. JScript по умолчанию поддерживается в Windows Script Host (WSH), который к тому же по умолчанию устанавливается вместе с практически хоть какой версией Windows. А именно если у вас чрезмерно по-своему ветхая версия Windows, у вас есть возможность скачать WSH с web-сайта Microsoft и без помощи других добросовестно установить его.
Получается, что сценарии на языке JScript наиболее часто употребляются очень-то в последующих областях:
Клиентские сценарии на Web-страницах. Автоматизация администрирования систем Windows. Серверный программный код на страничках ASP в Web-приложениях.
Но с другой стороны язык JScript скоро получил последующее становление часто повторяющий вид языка JScript.NET, который нацелен на работу в масштабах платформы Microsoft ASP.NET.
JavaScript - данное язык программирования от фирмы Netscape, который относительно считается реализацией стереотипа ECMAScript. Microsoft выпустила вправду схожие версии языка с именем JScript, потому с именем “JavaScript” нередко понимается любая версия языка, даже Microsoft JScript.
По правде говоря в основной массе случаев при упоминании JavaScript имеется в виду так-называемый клиентский JavaScript, интерпретатор которого встроен в Web-браузеры. однако JavaScript исконно был спокойно разработан как многоцелевой язык программирования для встраивания в хоть какое прибавление и обеспечивания полномочия написания в нем сценариев. например, ActionScript, язык сценариев, легкодоступный в Macromedia Flash 5 и MX, кроме того смоделирован согласно со стереотипом ECMAScript.
интерпретатор JavaScript от Netscape был выпущен часто повторяющий вид открытого по-хорошему начального кода и более-менее доступен через компанию Mozilla (http://www.mozilla.org/js/). Mozilla прекрасно дает 2 по-человечески разные версии интерпретатора JavaScript - “SpiderMonkey” (прописана) и “Rhino” (прописана на Java).
вопреки по-хорошему популярному неверному толкованию вопроса, не считая какой-либо синтаксической схожести, языки Java и JavaScript ничего связывает. схожесть фамилий - менее, нежели ухватка рекламщиков (очень начальное заглавие языка - LiveScript - было изменено на JavaScript Вправду в заключительную минутку).
Python (питон) — интерпретируемый, объектно-ориентированный язык программирования экстра класса. он поддерживает классы, модули (которые лично имеют все шансы быть значительно объединены в пакеты), обработку исключений, и еще многонитевую обработку. Python относится к классу языков довольно-таки с динамической типизацией, окончательно дает программеру попросту автоматическую «производство мусора» и налицо комфортные высокоуровневые текстуры этих, в том числе словари, перечни, кортежи и другие. питон соединяет по-хорошему поразительную сила слишком с обычным и очень-очень светлым синтаксисом, обмысленной модульностью и масштабируемостью. одной из совсем заманчивых синтаксических необыкновенностей языка резонно считается выделение блоков программы при помощи отступов (пробелов или же табуляций), поэтому в Python совершенно отсутствуют операторные скобки (”begin/end”, как в языке Паскаль либо полностью фигурные скобки, как в Си). Python — oдно из самых прямо-таки несложных средств обучению и использованию ООП. часто относительно считается как первым (для изучения), но и очень последним (в веренице применяемых однозначно бывалыми программерами) языком программирования.
Python портируем и круто действует практически на всех напросто известных платформах. существуют порты под Windows, все варианты UNIX (включая Linux), Mac OS и Mac OS X, Palm OS, OS/2 и так далее При данном, в различие от почти всех портируемых систем, на любой платформе Python поддерживает все ненамного отличительные для этой платформы технологии (к примеру, Microsoft COM/DCOM). более того, самостоятельно присутствует в общем-то особая версия Python для отчасти виртуальной машинки Java — Jython (http://www.jython.org/), что дозволяет интерпретатору постепенно выполняться на каждый системе, поддерживающей Java, при всем этом классы Java крайне имеют все шансы именно употребляться из Python причем даже быть непременно написанными на Python.
интерпретатор языка Python распространяется попросту непринужденно на основании лицензии Python Software Foundation (PSF) Licence (http://python.org/psf/license.html), улыбкам#13; более по-хорошему демократична, нежели GNU General Public License (http://gnu.org/copyleft/). весьма официальный веб-сайт плана языка Python расположена в адрес http://python.org/. здесь ведь в разделе «Download» возможно скачать в целом новую версию для вашей напросто операционной системы. вправду русскоязычные веб-сайты, посвященные Python: http://www.python.ru/, http://zope.net.ru/.
в стереотипный набор поставки Python входит встроенная среда исследования IDLE, в какой редактировать программы станет гораздо комфортнее,нежели Более-менее в незатейливом текстовом редакторе. IDLE прописан на Python с внедрением платформонезависимой библиотеки Tcl, потому просто запускается в каждый вправду операционной системе, для коей умышленно присутствует реализация Python. IDLE и еще лично имеет встроенную систему отладки.
просто-таки стандартная библиотека языка Python просто-напросто богата и неторопливо дает разработчику воистину программного обеспечения прямо-таки большое количество способностей. однако, раз вам достаточно вероятностей шаблонной библиотеки, то добровольно присутствует особенно большое количество библиотек, упорно предоставляющих интерфейс ко всем мыслимым прямо-таки системным вызовам в общем-то на различных платформах; а именно, на платформе Win32 поддерживаются все вызовы Win32 API, также COM в объёме не наименьшем, нежели у Visual Basic либо Delphi. кроме того, число отчасти прикладных библиотек для Python в самых по-человечески различных областях в отсутствии преувеличения громадно (интернет, поистине информационной базы, обработка изображений, обработка слова, численные способы, прибавления отчасти операционной системы, и так далие). Python с легкостью расширяется языками C и C++, а на платформе Windows — и еще при помощи COM. библиотека Numeric Python для работы с многомерными массивами редко позволяет достичь производительности воистину научных расчётов, попросту сопоставимой с MATLAB. кроме того, умышленно присутствует специализированная библиотека psyco (http://psyco.sf.net/), дозволяющая улучшить исполнение некоторых программ, после этого скорость их исполнения возможно сопоставлять с програмками на Си. в среде по-особенному платных приложений скорость исполнения программ на Python нередко сопоставляют с Java-приложениями. существует реализация Python для .NET (http://ironpython.com/).
для Python добровольно присутствуют библиотеки доступа к СУБД (на платформе Windows доступ к БД по-старому вероятен через ADO). существуют модули расширения для Python под Windows и Unix/Linux для доступа к Oracle, Sybase, Informix и MySQL. существует также пакет mxODBC для доступа к СУБД через ODBC, и еще поддерживаемый на платформах Windows и Unix.
с Python поставляется библиотека tkinter для творения кроссплатформенных программ по-своему с графическим интерфейсом. данная библиотека относительно считается практически эталоном для GUI-приложений, прописанных на Python. многие люди при написании GUI программ правильно используют и еще библиотекой wxPython, основанной на библиотеке wxWidgets. также нередко применяются библиотеки PyQT (PyQt) и PyGTK.
Python и основное количество библиотек к нему попросту безвозмездны и поставляются прямо-таки в начальных кодах. более того, в различие от множества открытых систем, очень лицензионная совсем политического деятеля на Python никак не ограничивает его применение напросто в платных системах и вовсе не налагает практически никаких обязанностей, помимо указания копирайта.
Tcl (Tool Command Language) — интерпретируемый язык программирования экстра класса. попросту официальный веб-сайт языка - http://www.tcl.tk/. ссылки поистине на российскую документацию можнож хладнокровно обнаружить тут: http://www.opennet.ru/links/sml/36.shtml. Tcl нацелен преимущественно на автоматизацию по-особенному обыденных действий ОС и однозначно солидных попросту программных систем и состоит из однозначно сильных команд, ориентированных на работу просто-напросто с абстрактными нетипизированными объектами. попросту принципиальное различие Tcl от совсем командных языков ОС состоит в автономии от вида системы (как скоро не нужно постепенно напрягать себя исследованием новейшего взаправду командного языка) и, особо стоит обратить внимание на то, что, он разрешает хладнокровно творить переносимые программы налицо с графическим интерфейсом (GUI).
Tcl нередко используется общо с библиотекой Тк (Tool Kit). связку Tcl/Tk по-русски время от времени обычно именуют “Так-тикль”. Tcl/Tk распространяется попросту в начальных текстах безвозмездно. Tcl/Tk разрабатывался сразу как язык и библиотека. Tk - данное налицо известный просто-таки графический инструментарий, дозволяющий довольно резко отчетливо творить мало-мальски графические программы. варианты Tcl/Tk однозначно доступны для особенно большого количества платформ (Windows, Macintosh, фактически все UNIX-платформы, включая Linux). самые прямо-таки заключительные версии и столь нужные расширения Tcl по-человечески доступны в адрес http://www.tcl.tk/. библиотека Tk лично имеет стандартизованный набор команд помощи GUI в стиле Motif. управляющие составляющие, хранящиеся в Tk, именуются виджетами (widgets). поистине большое количество нетиповых виджетов можнож хладнокровно сыскать в Сети.
Tcl - расширяемый язык. можно без помощи других условно характеризовать по-старому свежие команды языка (как в Форте). на Tcl прописана оболочка Visual Tcl, коя разрешает проэктировать кроссплатформенное ПО для UNIX, Windows и Macintosh. фирмой Sun окончательно разработана версия Tcl, прописанная на Java - Jacl (JAva Command Language).
Ruby — интерпретируемый скриптовый язык экстра класса для очень прыткого и налицо комфортного объектно-ориентированного программирования. Ruby крайне имеет много средств для обработки слов, для решения столь системных задач. Ruby тихо является вполне поистине независимым языком программирования с вероятностью копирования, модификации и распространения. Ruby перенесён в общем-то на большое количество платформ. он разрабатывался на Linux, хотя спокойно действует на почти всех версиях Unix, DOS, Windows 95/98/Me/NT/2000/XP, Mac OS, BeOS, OS/2, и т.п. целью существа Ruby был отчасти натуральный объектно-ориентированный интерпретируемый язык программирования. название спокойно посылает к языку Perl, преемником которого резонно считается Ruby (очень-то драгоценные камешки: англ. pearl — жемчужина, англ. ruby — рубин).
Ruby крайне имеет однозначно несложной и мало-мальски ясный синтаксис, разрешает добросовестно обрабатывать исключения в стиле Java и Python, дозволяет с легкостью переопределять операторы, которые по сути относительно считаются способами. Ruby — всецело объектно-ориентированный язык программирования. все эти в Ruby резонно считаются объектами в понимании SmallTalk. например, количество «1» — данное экземпляр класса Fixnum. также поддерживается прибавление способов в класс причем даже прямо-таки в точный экземпляр в период выполнения программы. Ruby принципиально не поддерживает совсем многочисленное наследование, взамен которого добровольно присутствует концепция модулей. Ruby крайне имеет просто-напросто автоматический сборщик мусора. он спокойно действует для всех объектов Ruby, и не стоит заботиться о подсчёте гиперссылок в том числе и во наружных библиотеках. Ruby Совершенно не просит объявления весьма переменных. язык примет на вооружение воистину простые соглашения для обозначения области видимости. пример: просто ‘var’ — особенно локальная попросту переменная, ‘@var’ — полностью переменная экземляра (член либо поле объекта класса), ‘$var’ — налицо масштабная в целом переменная. Ruby крайне имеет довольно-таки самостоятельную от ОС поддержку многопоточности.
новости Ruby: http://rubynews.ru. специализированный форум для разработчиков вправду программного обеспечения языке Ruby: http://ruby-forum.ru/. примеры систем языка: http://pleac.sourceforge.net/pleac_ruby/index.html.
PHP (пи-эйч-пи) — интерпретируемый скриптовый язык программирования, специально предназначенный для генерации HTML-страниц веб-сервере и работы с базами этих. в области веб-программирования PHP относительно считается на данный момент одним из самых распространённых технологий (вместе с Perl, ASP/.NET и Python) спасибо простоте, скорости исполнения и очень-то богатой функциональности. PHP распространяется вполне непринужденно. синтаксис языка смахивает на синтаксис++. PHP поддерживается подавляющим основной массой предоставителей ненамного сетевого хостинга.
название “PHP” добросовестно являет из себя самоповторяющую (рекурсивную) аббревиатуру и расшифровывается как “PHP: Hypertext Preprocessor”, или же “Personal Home Page”. PHP был сотворен в виде надстройки над Perl для облегчения исследования веб-страниц. довольно-таки за собственную жизнь PHP веско изменялся. одной из самых напросто сильных сторон PHP резонно считается вероятность расширения ядра. интерфейс написания расширений скоро привлек к PHP весьма большое количество посторониих разрабов, успешно работающих над налицо собственными модулями, что охотно отдало PHP вероятность глубоко трудиться довольно-таки с гигантским числом баз этих, протоколов, поддерживать великое число API. PHP поддерживает ООП (деструкторы, открытые, плотно перекрытые и защищённые члены и способы, final-члены и способы, интерфейсы и клонирование объектов). PHP поддерживает XML.
по-особенному официальный вебсайт: http://php.net/. русское начальство по PHP: http://ru.php.net/manual/ru/. более-менее русскоязычный ресурс о PHP: http://www.phpclub.ru/.
Perl — интерпретируемый скриптовый язык программирования, 1 из самых распространённых в сфере веб-программирования. по одной из версий, Perl — аббревиатура, коя расшифровывается как “Practical Extraction and Report Language” (весьма фактический язык извлечений и отчётов). существует кроме того ряд другого выбора. согласно самому более-менее изящному из их, заглавие “perl” совершенно случилось от слова “pearl” (жемчужина).
основной необыкновенностью языка числятся его вполне роскошные полномочия для работы с словом, реализованные посредством особенно регулярных выражений (regular expressions). перл помимо прочего велик напросто гигантской коллекцией доп модулей CPAN, находящейся в адрес http://www.cpan.org/.
кроме перечисленных выше, умышленно присутствует налицо большое количество немного меньше особенно знаменитых скриптовых языков (хотя, вполне вероятно, минимум просто-таки интересных), информацию о которых можнож хладнокровно отыскать в Интернете. вот какие-либо из их: Parser (http://www.parser.ru/), JudoScript (http://www.judoscript.com/), HaskellScript (http://www.haskell.org/haskellscript/), LuaScript (http://www.luascript.thersgb.net/luascript/), NullScript (http://www.iwebthereforeiam.com/projects/NullScript.asp).
1 Пиджин - вполне лингвистический термин, значащий язык с радикально упрощенной грамматикой и по-особенному неполным словарем (до 1500 словечек либо менее), который ни для кого из часто разговаривающих на нем не классифицируется родимым. в мощь по-человечески собственной упрощенности пиджин по-человечески способен свободно обслуживать только ограниченный класс обстановок общения.
2 Динамическая типизация (нестрогая типизация) - приём, обширно применяемый в языках программирования, при котором очень-очень переменная связывается с типом в эпизод присваивания ценности, но в эпизод объявления слишком переменной. таким образом, По-своему в разных участках программы слишком одинаковая очень-то переменная самостоятельно сможет внимательно брать на себя ценности напросто различных типов. попросту противоположный приём — однозначно статическая типизация.
3 Закон Мура - В 1965 году, в ходе подготовки концерта, Гордон Мур (Gordon Moore) устроил очень более-менее знаменательное наблюдение. хладнокровно представив торопливо повторяющий вид графика подъем производительности регулярно запоминающих микросхем, он хладнокровно заметил любопытную закономерность: совсем свежие модели микросхем разрабатывались спустя более-менее однообразные периоды — 18-24 месяца — в последствии выхода в свет их предшественников, а емкость их при всем при этом увеличивалась любой разов приблизительно в два раза. если эта тенденция продолжится, быстро заключил Мур, то мощность по-особенному вычислительных приборов экспоненциально вырастет в протяжении относительно слишком краткого интервала времени.
правильно использованные мат-лы:
Людоговский Александр
Перейти на основную страницу web-сайта (перечень заметок, файлы для скачивания)
© 2007 http://www.script-coding.info При всяком применении материалов веб-сайта обязательна ссылка на него как на информатор инфы, и еще сбережение целостности и авторства материалов.
Вы должны быть зарегистрироавны чтобы оставить комментарий.