Скачиваний:
42
Добавлен:
03.02.2019
Размер:
347.65 Кб
Скачать

2.2 Классификация языков программирования

В настоящий момент существуют тысячи, если не десятки и сотни тысяч языков, диалектов и их реализаций. Более того, каждодневно рождаются новые или появляется диалект существующего [2].

Почти любой язык можно рассматривать как улучшенную версию какого-нибудь другого языка. Иногда очень трудно провести разграничительную линию, где кончается один язык и начинается другой. Взять, к примеру, «LISP», который начинался как отдельный язык и привел в итоге к целому семейству языков. Его диалекты такие как «Scheme» или «Common Lisp» имеют большие отличия. Его варианты такие как «Kyoto Common Lisp» или «Allegro CL» по большому счету одинаковы, но могут иметь некоторые черты, которые делают их несовместимыми.

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

Не всегда имя языка может однозначно идентифицировать его. Иногда язык может претерпеть значительные изменения в языке без смены названия. Иногда меняется только имя, а язык остается тем же «IAL» в «ALGOL», а затем в «ALGOL 58». А бывает, что одно имя используется для нескольких разных языков.

Обычно трудно бывает различить, что принадлежит к характеристике языка, а что к его окружению. Например, «SML» описывается в несколько этапов, сначала «синтаксис ядра», а потом его расширения. Что технически определяет два различных языка. Описания некоторых языков могут опускать такие важные черты, как файловый ввод/вывод, так как их не предполагается использовать без стандартной библиотеки, в случае Си, например, или без среды разработки в целом, или потому что это составляет командный язык какой-нибудь операционной системы или коммерческого продукта.

В то же время некоторые языки настолько по своей природе расширяемы как «Форт», и для них существует такое большое количество таких расширений как для «TeX», например, что каждое такое расширение можно считать отдельным зыком.

Часто известный производитель вносит расширения в базовый язык в своей реализации, например, «Turbo Pascal» или «Delphi» в реализациях фирмы «Borland» сильно отличается от устаревшего стандарта «ANSI». Эту же тенденцию особенно видно в различных реализациях «BASIC» или «Prolog». Часто реализации «Basic» одной фирмы могут сильно отличаться друг от друга, например «Microsoft» следующий список отличных друг от друга (в большей или меньшей степени) вариантов «Basic»: «Visual Basic», «Visual Basic for Applications», «Access Basic», «WordBasic», «TestBasic», «Basic PDS». Даже разные реализации такого хорошо стандартизованного языка как Си могут сильно отличаться друг от друга, так, например «Turbo C» и «Microsoft C» можно рассматривать как отдельные языки. Часто бывают так, что язык является неотъемлемой частью какой-нибудь коммерческой системы. Некоторые из них будут рассмотрены здесь. При классификации языков можно выделить следующие типы:

Рисунок 2 – Классификация языков программирования

2.2.1 С ц е н а р н ы е я з ы к и з а р о д и л и с ь е щ е в 1 9 6 0 – х г о д а х. Тогда возникла острая потребность в языках, обеспечивающих управление программами, иначе гово­ря, языках управления заданиями.

К командно-сценарному классу относятся Много­численные интерпретаторы команд «CLI», так называемые языки пакетной об­работки и языки для построения сис­темных командных оболочек, яркий пример — «sh», «csh» и их вариации для «UNIX». Как правило, такие языки ориентируются не на интерактивный, а на пакетный режим обработки, когда участие человека на этапе вы­полнения сведено к нулю и все работает в непрерыв­ном потоке. Эти языки не только могли непосредст­венно взаимодействовать с соответствующей операци­онной системой, но и снабжались средствами грамма­тического разбора программ и трансформации данных. С их помощью можно было создавать различные про­граммные фильтры, используемые, в частности, в кон­вейере системы «UNIX». В число известных язы­ков такого типа входит «Awk», впервые появившийся в «AT&T UNIX Version 7», а теперь ставший частью стан­дарта «POSIX Command Language and Utilities». К ключе­вым особенностям языка, нашедшим впоследствии широкое применение в среде универсальных сценар­ных языков, можно отнести механизм регулярных вы­ражений, без которого разбор текста производится не очень эффективно.

Языки этого класса ориентировались также на об­работку системных событий, генерирование текста и высокоуровневый доступ к базам данных. Здесь стоит отметить язык «RPG». Он до сего времени успешно применяется для создания отче­тов из корпоративных БД, работающих преимущест­венно на мэйнфреймах «RPG/400» для компьютеров «IBM AS/400».

Наиболее активно из языков этого класса в наши дни используется «Rexx», созданный в исследовательских лабораториях «IBM». По набору средств он мало, чем отличается от универсальных сценарных языков, однако вы­полнен в виде классического блочно-структурированного процедурного языка и предназначен преимущест­венно для интеграции и расширения функциональности приложений.

2.2.2 П р и к л а д н ы е с ц е н а р н ы е я з ы к и з а р о ж д а л и с ь в 1 9 8 0 – е г о д ы, в э п о х у п о я в л е н и я п р о м ы ш л е н н ы х П К. Тогда на первый план стали выходить задачи интерактивного общения с операционной системой, а также доступа к данным электронных таблиц и баз данных. Отличительная особенность сценарных языков данного класса — ориентация на клиентскую часть программного обеспечения.

Таблица 1 – Прикладные сценарные языки

Название

Год появления

Разработчик языка

Организация, где был создан язык

HyperTalk

1986

-

Apple Computer

Visual Basic

1990

-

Microsoft

JavaScript

1994

-

Netscape Communications, Microsoft

CorelScript

1995

-

Corel

LotusScript

1995

-

Lotus Development

VBScript

1995

-

Microsoft

Pnuts

2001

Тойоказу Томацу

Sun Microsystems

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

Среди прикладных сценарных языков резко выде­ляется «Visual Basic», в том числе и такая его разновид­ность для офисного программирования, как «VBA». «Visual Basic» — это тот са­мый «пограничный» язык, который скорее относится к сценарным, чем к традиционным. Он во многом за­дал тон такому классу языков, как прикладные сце­нарные языки. Более того, работа с пользовательским интер­фейсом и встраивание программных компонентов «VBX», «OCX», «ActiveX» стали едва ли не визитной кар­точкой данного языка. Стоит заметить, что в ходе эво­люции «VBA» поглотил другие специфические языки, в частности «Word Basic» и «Excel Macro Language», взяв на себя, их задачи. Под его влиянием были созданы такие языки, как «VBScript», особый диалект языка Visual Basic, ориентированный на создание OLE-компонентов и на работу в рамках браузеров и «LotusScript», сво­его рода аналог языков «VBA» и «CorelScript», предназна­ченный для решения задач автоматизации офиса в рамках «Lotus Notes».

Несколько особо в этом ряду стоит «JavaScript», став­ший стандартом де-факто в Интернет-программировании при реализации клиентской части. Его прототипом был язык «LiveScript», являвшийся частью серверного продукта «LiveWire» компании «Netscape» и первоначально встроенный в «Netscape Navigator 2.0». После появления языка «Java» корпорации «Sun Microsystems» он начал иг­рать роль самодостаточной надстройки над этим язы­ком, и его название сменилось на «JavaScript». Диалекты этого языка — «Jscript» корпорации Microsoft и «ECMAScript».

«JavaScript» может быть использован при формировании программного кода тестов входного и выходного контроля мультимедийного учебного пособия, созданного на основе Интернет-технологий.

Из новичков в данном классе языков упомянем экс­периментальный язык «Pnuts», основная идея которого — дать в рамках сценариев наиболее полный доступ к «Java API». Его можно использовать для самых разных задач, но, прежде всего для оперирования компонентным программным обеспечением.

2.2.3 Я з ы к и р а з м е т к и, и л и т е г и р о в а н н ы е я з ы к и, с т о- я т н е с к о л ь к о п о о д а л ь о т м а г и с т р а л ь н о й л и н и и р а з в и т и я с ц е н а р н ы х я з ы к о в. Им ближе всего по своей природе системы макрообработки, всевозможные макропроцес­ссоры, столь популярные в 1960—1970-е годы. Их главная от­личительная черта — встраивание специального кода в виде обособленных «команд» — тегов непосредственно в обычные тексты. Им родственны такие языки, как «Postscript» и «RTF» чаще воспринимаемый просто как осо­бый формат представления документов. Теги стали ис­пользоваться для самых разных целей: для отделения структуры информации от ее содержания, для вкрапле­ния команд форматирования и даже для задания динами­ческого поведения встроенных в документ интерактив­ных объектов.

Таблица 2 – Языки разметки

Название

Год появления

Разработчик языка

Организация, где был создан язык

GML

1969

Чарльз Гольдфарб

IBM

TeX

1979

Дональд Кнут

Stanford University

SGML

1986

-

ISO

HTML

1991

Тим Бернерс-Ли

CERN

CFML (Cold Fusion)

1995

-

Allaire

DHTML

1996

-

Microsoft, Netscape Communications

XML

1997

-

W3C

XHTML

2001

-

W3C

Идея отделения структуры информации от содержа­ния возникла давно. Первым осознанным решением стал запуск проекта «GenCode». В сентябре 1967 года Уильям Танниклифф, председатель Комитета по композиционным решениям ассоциации «Graphic Communications Association», предложил провести четкую границу между содержанием и форматом представления информации. Руководитель «GCA» Норман Шарпф при­нял решение приступить к реализации соответствующего проекта «GenCode».

Под влиянием «GenCode» в 1969 году американский ученый Чарльз Гольдфарб возглавил работу исследова­тельской группы в «IBM», целью которой была прора­ботка принципов интегрированных информационных систем в области законодательства. Плодом усилий этого коллектива, куда входили также Эдвард Мошер и Реймонд Лори, стал «GML» — обобщенный язык раз­метки. Он является мощным языком разметки стандартизованным «ISO 8879». «Sgmls» - это «SGML» анализатор, потомок «ARCSGML» анализатора написанного Чарльзом Голдфарбом. Выдает простое, легко разбираемое, построчное, «ASCII» представление «SGML» стрктуры «Element Structure Information Set». Используется для приложений с управляющими структурами в виде «SGML». «SGML» - важный шаг в направлении перехода к разделению информации от его представления. Многие решения этой группы нашли примене­ние в различных издательских системах «IBM». На осно­ве «GML» и идей системы «Scribe», разработанной Брайа­ном Рейдом, Международная организация по стандар­тизации «ISO» разработала метаязык «SGML», стандарт «ISO-8879:1986».

Наиболее значительными достижениями в области языков разметки стали «ТеХ», «HTML» и «XML». Язык «ТеХ», разработанный в 1979 году Дональдом Кнутом, на три года опередил «Postscript», созданный Джоном Уорноком в компании «Adobe» и предназначенный для точного описания внешней формы документов с композицией произвольной сложности. В отличие от низкоуровневого «Postscript», язык «ТеХ» ориен­тировался на работу пользователей, не имеющих навыков программирования. Наиболее широко этот язык стал применяться в научной среде, где предъявляются самые высокие требования к качеству построения формул сложной структуры.

Язык «HTML», с появлением которого понятие «гипер­текст» стало простым и обыденным, создавался на базе «SGML» путем максимального упрощения его структуры и свойств. Вряд ли имеет смысл описывать его подробно: это основной язык представления информации в Интернет-среде. По этой причине данный язык программирования может быть применен для создания мультимедийного проекта, так как это дает возможность опубликовать данный проект посредством Интернет.

Метаязык «XML», созданный во многом с подачи Джо­на Босака, руководителя рабочей группы «SGML ERB», также основывался на «SGML», но для него характерно куда более бережное отношение к идеям своего предка, да и выполняет он совсем иную роль, нежели «HTML». Это своего рода язык транспорти­рования и промежуточного хранения данных при обмене ими между разнородными и распределенными система­ми. На его основе можно проводить сколь угодно слож­ные преобразования документов и текстовой информа­ции, а главное, в унифицированном виде хранить дан­ные реляционно-иерархической структуры, в том числе по настройкам и программированию компонентов. Это, правда, не мешает использовать его и не совсем по на­значению — для задания динамики поведения всевоз­можных объектов. В 2001 г. появилась ревизия «HTML», которая получила название «XHTML», где были учтены требования «XML».

«Postscript» реализация «Ghostscript» - общедоступный «Postscript» интерпретатор с возможностью просмотра для многих систем и многими шрифтами. Используется под операционными системами: «Unix», «MS-DOS».

«CFML» и «DHTML» — языки разметки, напрямую предназначенные для динамического созда­ния Интернет-страниц и доступа к БД. Оба они являются рас­ширениями «HTML», но «CFML» — чисто коммерческий язык компании «Allaire», не имеющий других реализации, а «DHTML», возникший из «Dynamic HTML», — результат многочисленных компромиссов и конкуренции «Netscape» и «Microsoft», которые были подытожены консорциумом «W3C». Тот же «ASP» по сути, не что иное, как сценарий на «VBScript», который исполняет­ся на сервере.

Соседние файлы в папке Специальные электрические машины с внедрением в учебный процесс