Читайте также:
|
|
Представители этого класса языков наиболее широко известны. Именно их чаще всего и ассоциируют с термином «сценарный язык», причем применительно к Web-среде. При этом нередко упускается из виду тот факт, что создавались самые популярные из них совсем не для Web-программирования: языки Perl, Tcl и Python появились еще тогда, когда не было даже первой версии HTML.
Подавляющее большинство универсальных сценарных языков используются для реализации серверной части Web-систем, причем поддержка классов и объектов в том или ином виде присутствует практически во всех этих языках.
1.4 Структура |
Рассмотрим структуру макрокоманды (программы, написанной на макроязыке) на примере макроса VBA, среды программирования, разработанной специально для создания макросов в программах офисного пакета Microsoft Office.
Итак, результатом записи макроса является так называемая подпрограмма (subprogram). Если рассмотреть несколько записанных макросов, то можно заметить, что все они имеют общую структуру. Каждый макрос VBA начинается со слова Sub (сокращение слова subprogram – подпрограмма), следом за которым идет имя макроса. Строку с ключевым словом Sub и именем макроса называют строкой объявления макроса. Имя макроса должно начинаться с буквы, но может содержать и числа. Имя макроса не может включать в себя пробелы или знаки препинания. В Excel максимальная длина имени макроса – 64 символа, а в Word она может составлять до 80 символов. За именем макроса всегда следуют пустые круглые скобки. Сразу за объявлением макроса следует тело макроса, которое может содержать, либо не содержать комментарии. Комментарий – это строка в макросе VBA, которая не содержит инструкций, это поясняющий текст. Строки комментариев начинаются с прямого апострофа ('), который находится на той же клавише, где кавычки. Используются комментарии для того, чтобы код подпрограммы был более понятен при чтении.
Каждая строка в теле макроса состоит из одного или нескольких операторов VBA. Оператор VBA – это последовательность ключевых слов и других символов, которые совместно составляют одну полную инструкцию. На одной строке можно записать несколько инструкций, разделив их двоеточием, но, как правило, каждую инструкцию начинают с новой строки, это улучшает наглядность текста программ. За телом макроса следует строка, содержащая ключевые слова End Sub, что свидетельствует о том, что достигнут конец макроса. При выполнении инструкции End Sub никаких видимых действий не происходит, но при этом освобождается вся память, которая использовалась для выполнения подпрограммы. При просмотре макросов можно заметить, что различные части текста макроса отображаются различными цветами. Так, например, комментарии имеют зеленый цвет шрифта, а ключевые слова, имеющие строго определенный смысл отображаются синим цветом. Остальной текст макроса отображается черным цветом. При возникновении ошибок в программе, часть кода подкрашивается красным цветом. Для выделения различных секций макроса используются отступы в коде. Каждый уровень отступа помогает отделять одну часть макроса от другой. Отступы делать не обязательно, макросы будут выполняться независимо от них, размещение строк с отступом выполняется макрорекордером и хорошими программистами для более легкого чтения их программ. В коде макроса зачастую можно встретить сочетание пробела и символа подчеркивания (_) в конце строки. Эта комбинация называется символом продолжения строки и сообщает о том, что следующая строка макроса должна быть присоединена к текущей строке для образования единого оператора.
1.5 Реализация |
Макроязыки могут быть реализованы как компилируемые и интерпретируемые.
Программа на компилируемом языке при помощи компилятора (особой программы) преобразуется (компилируется) в машинный код (набор инструкций) для данного типа процессора и далее собирается в исполнимый модуль, который может быть запущен на исполнение как отдельная программа. Другими словами, компилятор переводит исходный текст программы с языка программирования высокого уровня в двоичные коды инструкций процессора.
Если программа написана на интерпретируемом языке, то интерпретатор непосредственно выполняет (интерпретирует) исходный текст без предварительного перевода. При этом программа остаётся на исходном языке и не может быть запущена без интерпретатора. Процессор компьютера, в этой связи, можно назвать интерпретатором для машинного кода.
Разделение на компилируемые и интерпретируемые языки является условным. Так, для любого традиционно компилируемого языка можно написать интерпретатор, а для любого интерпретируемого языка можно создать компилятор — например, язык Лисп, изначально интерпретируемый, может компилироваться без каких бы то ни было ограничений. Создаваемый во время исполнения программы код может так же динамически компилироваться во время исполнения.
Как правило, скомпилированные программы выполняются быстрее и не требуют для выполнения дополнительных программ, так как уже переведены на машинный язык. Вместе с тем, при каждом изменении текста программы требуется её перекомпиляция, что замедляет процесс разработки. Кроме того, скомпилированная программа может выполняться только на том же типе компьютеров и, как правило, под той же операционной системой, на которую был рассчитан компилятор. Чтобы создать исполняемый файл для машины другого типа, требуется новая компиляция.
Интерпретируемые языки обладают некоторыми специфическими дополнительными возможностями, кроме того, программы на них можно запускать сразу же после изменения, что облегчает разработку. Программа на интерпретируемом языке может быть зачастую запущена на разных типах машин и операционных систем без дополнительных усилий.
Однако интерпретируемые программы выполняются заметно медленнее, чем компилируемые, кроме того, они не могут выполняться без программы-интерпретатора.
1.6 Преимущества |
Скриптовые языки обладают более сложным инструментарием и поддерживают более прогрессивные техники программирования. Например, возможности сортировки данных в Perl встроены прямо в язык. То, что в язык встроены все основные инструменты программирования, избавляет от необходимости создавать их самостоятельно и означает, что для решения конкретной проблемы нужно писать меньше кода, что увеличивает производительность разработчика. Скриптовые языки позволяют быстро выполнять доработку кода без раздражающей потери времени на ожидание окончания компиляции. Количество людей, не обладающих подготовкой, которую имеют традиционные компьютерные специалисты, но могущих заняться написанием скриптов, стало на порядок больше. Иначе говоря, программированию на скриптовых языках проще научиться. Чтобы стать средним программистом на C++, необходим больший опыт работы, чем для того, чтобы стать средним программистом на PHP.
1.7 Недостатки |
Время исполнения все еще является главной проблемой. Конечно, есть области, где скорость слишком важна, чтобы можно было программировать непосредственно на скриптовом языке. Эта проблема обычно решается тем, что код тщательно выбранной части приложения (скажем, 10-30%) пишется на языке низкого уровня (таком, как C или C++); например, в Python есть развитые механизмы для того, чтобы вставить такой код (как и в большинстве других динамических языков). Общей проблемой всех скриптовых языков является отсутствие хорошей интегрированной среды разработки (IDE). Конечно, какие-то интегрированные среды разработки существуют, однако в них недостает мощности, как у Visual Studio. Ключевым нетехническим, однако, важным недостатком является отсутствие маркетингового бюджета. Многие динамические языки идеально подходят для многих проектов, однако им тяжело конкурировать с такими локомотивами маркетинга, как Sun (Java) и Microsoft (C#), которые продолжают продвигать свои технологии как единственно возможные. В истории есть примеры того, как техническое превосходство подавляется превосходным маркетингом.
Заключение |
Но по какому же пути пойдет развитие макроязыков, какие идеи будут служить катализаторами процесса дальнейшего их совершенствования? В определенном смысле ответы на эти вопросы содержатся в словах знаменитого Дж. Бэкуса (1977): «Имеются многочисленные свидетельства того, что функциональный стиль программирования может по своей мощи превзойти стиль фон Неймана. Поэтому для программистов представляет большое значение разработка нового класса исторически чувствительных моделей компьютерных систем, которые воплощают такой стиль и не страдают неэффективностью, по-видимому, присущей системам, основанным на лямбда-исчислении. Только когда такие системы и их функциональные языки докажут свое превосходство над традиционными языками, мы получим экономическую основу для разработки нового вида компьютера, который сможет наилучшим образом реализовать их».
Список литературы |
1. Эро Х. Мир лиспа: В 2 т.: Т.1: Введение в язык лисп и функциональное программирование/ Хювенен Эро, Йоуко Сеппянен. - Москва: Мир, 1990. - 447 с.
2. Назаров С.В. Программирование на MS Visual Basic: учеб. пособие для студ. эконом. вузов, обуч. по спец. «Финансы и кредит»/ С.В. Назаров, П.П. Мельников; Ред. С.В. Назаров. - Москва: Финансы и статистика, 2003. - 320 с.
3. Оформляем документы на персональном компьютере: грамотно и красиво: ГОСТ P.6.30-2003: возможности Microsoft Word/ И. В. Журавлева, М. В. Журавлева. - Москва: Инфра-М, 2011. - 187 с.; 21 см. - (Просто, кратко, быстро). - Библиогр.: с. 182-183.
4. Электронные вычислительные машины: в 8 кн.: учебное пособие. - Москва: Высшая школа. Кн. 4: Языки программирования (Фортран 4, пл/1). - 1987. - 159 с.
5. Инструментальное ПО. Классификация языков программирования / Gendocs – 2012. URL www.do.gendocs.ru/docs/index-4912.html. Дата последнего обращения 18.12.2012.
6. Скрипт./ URL www.russika.ru/ef.php?s=3786. Дата последнего обращения 18.12.2012.
7. Языки описания сценариев /
URL www.csom.ru/category/articles/yazyki_opisaniya_scenariev.html. Дата последнего обращения 18.12.2012.
8. Биггс М. Языки сценариев - новое средство от давней болезни. // Computerworld Россия, № 03, 1999, с. 49-51.
9. Богатырев Р. Природа и эволюция сценарных языков. // Мир ПК, № 11, 2001, с.144-154.
Дата добавления: 2015-08-27; просмотров: 61 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Языки разметки | | | Дикий зверь |