ЯЗЫК ПРОГРАММИРОВАНИЯ [programming language]

Язык программирования - это, Что такое язык программирования, Определение термина язык программирования, Язык высокого уровня, Язык низкого уровня, Алгоритмический язык, Неалгоритмический язык, Автономный язык, Базовый язык, Гибридный язык, Графический язык, Декларативный язык, Императивный язык, Исходный язык, Машино-ориентированный язык, Машинонезависимый язык, Язык ЭВМ, Общесетевой командный язык, Общий язык, Проблемно-ориентированный язык, Процедурный язык, Символический язык, Системный язык, Специализированный язык, Сценарный язык, Формальный язык, Эталонный язык, Язык ассемблера, Язык конструирования интерактивных технологий, Язык манипулирования данными, Язык меню, Язык обработки списков, Язык общего назначения, Язык ориентированный на пользователя, Язык описания данных, Язык описания хранения данных, Язык описания страниц, Язык представления знаний, Язык публикаций, Язык реального времени, Язык спецификаций, Язык управления заданиями, Язык управления пакетом, Язык функционального программирования, Ада, Алгол, Бейсик, Кобол, Лисп, Лого, Паскаль, Оберон, Пролог, Си, Си++, C#, Фортран, AppleScript, Clipper, DBASE, FoxPro, Java, JavaScript, Occam, Perl, PostScript, Python, SQL, OQL, Tel, ТеХ, UML, DHTML, DSML, HDML, HTML, SAUL, SGML, UIML, VoiceXML, VRML, WML, XACML, XHTML, XML, XSLT

Формализованный язык, предназначенный для описания программ и алгоритмов решения задач на ЭВМ. Языки программирования являются искусственными; в них синтаксис и семантика строго определены, поэтому они не допускают свободного толкования выражения, что характерно для естественного языка. Языки программирования разделяются на две основные категории языки высокого уровня и языки низкого уровня:
 - язык высокого уровня [high-level language] —язык программирования, средства которого обеспечивают описание задачи в наглядном, легко воспринимаемом виде, удобном для программиста. Он не зависит от внутренних машинных кодов ЭВМ любого типа, поэтому программы, написанные на языках высокого уровня, требуют перевода в машинные коды программами транслятора либо интерпретатора. К языкам высокого уровня относят Фортран, ПЛ/1, Бейсик, Паскаль, Си, Ада и др.;
 - язык низкого уровня [low-level language] — язык программирования, предназначенный для определенного типа ЭВМ и отражающий его внутренний машинный код.
Различают также следующие виды языков программирования:
 - Алгоритмический язык [algorithmic language] — совокупность символов, соглашений и правил, используемых для однозначного описания алгоритмов и обычно являющаяся часть языка программирования;
 - Неалгоритмический язык [nonalgorithmic language] —язык программирования, тексты которого не содержат указаний на порядок выполнения операций и служат лишь исходным материалом для синтеза алгоритма решения задачи;
 - Автономный язык [freestanding language] — специализированный язык высокого уровня, в замкнутых СУБД ("СУБД с автономным языком");
 - Базовый язык [base language]
1. Машинный язык, общий для семейства ЭВМ;
2. Язык программирования в СУБД с автономным языком.
 - Гибридный (комбинированный) язык [hybrid language] —язык программирования, использующий также средства другого языка;
 - Графический язык [graphic language] — язык программирования, предназначенный для написания программ машинной графики и пользования ими;
 - Декларативный (непроцедурный) язык [declarative (nonprocedural) language] —язык программирования, который позволяет задавать связи и отношения между объектами и величинами, но не определяет последовательность выполнения действий (например, языки Пролог, QBE);
 - Императивный (процедурный) язык [imperative language] — язык программирования, который позволяет в явной форме (при помощи задания выполняемых операторов) определять действия и порядок (последовательность) их выполнения;
 - Исходный язык [source language] —язык программирования, на котором написана программа, в отличие от машинного языка, на котором программы выполняются компьютером. Исходные языки классифицируются на языки высокого уровня и языки низкого уровня;
 - Машинозависимый (машино-ориентированный) язык, машинозависимый язык программирования
[computer-sensitive (computer-oriented) language] —язык программирования, учитывающий структуру и характеристики ЭВМ определенного типа или конкретной ЭВМ;
 - Машинонезависимый язык [machine-independent language] —язык программирования, структура и средства которого не связаны ни с конкретной ЭВМ и позволяют выполнять составленные на нем программы на любой ЭВМ, снабженной трансляторами с этого языка;
 - Машинный (абсолютный) язык, язык ЭВМ [computer (machine) language]—язык программирования, предназначенный для представления программ в форме, обеспечивающей возможность их выполнения техническими средствами;
 - Общесетевой командный язык [CNCL, Common Network-Command language] — стандартный в рамках вычислительной сети язык диалогового (интерактивного) поиска данных, предназначенный для унификации работы пользователей с неоднородными базами данных, управляемых различными СУБД;
 - Общий язык [common language] — машинный язык, общий для группы ЭВМ и используемых ими внешних устройств;
 - Проблемно-ориентированный язык [problem-oriented language] — язык программирования, предназначенный для решения определенного класса задач (проблем);
 - Процедурный (процедурно-ориентированный) язык [procedure-oriented language] — проблемно-ориентированный язык программирования, который облегчает выражение процедуры, как точного алгоритма;
 - Символический язык, язык символического кодирования [symbolic language] —язык программирования, ориентированный на конкретные ЭВМ и основанный на кодировании машинных операций при помощи определенного набора символов;
 - Системный язык [system language] — язык общения оператора ЭВМ с вычислительной системой, представляющий собой совокупность команд оператора и сообщений системы;
 - Специализированный язык [special language] — язык программирования, ориентированный на решение определенного круга задач;
 - Сценарный язык [script language] — язык, предназначенный для написания "сценариев": программ, управляющих несколькими другими программами, в том числе написанными на разных языках программирования. Сценарные языки часто применяются для реализации системной интеграции разнородных программных компонентов и сред. К сценарным языкам относятся RHP, Python, Perl, Tel, Lua, Rep, Ruby и Pike.
 - Формальный язык [formal language]
1. Язык программирования, построенный по правилам некоторого логического исчисления или формальной грамматики [formal grammar], представляющей собой систему правил построения в заданном алфавите конечных знаковых последовательностей, множество которых образует формальный язык;
2. Алгоритмический язык;
 - Эталонный язык [reference language] —язык программирования, являющийся основой для всех его конкретных версий, являющихся вариантами адаптации эталонного языка к определенным условиям применения и назначения;
 - Язык ассемблера, ассемблер [assembler language] — универсальный язык программирования, относящийся к категории языков низкого уровня, структура которого определяется форматами команд, данными машинного языка и архитектурой ЭВМ. Используется программистами в тех случаях, когда невозможно применение языка высокого уровня или требуются эффективные программы в машинных кодах.
 - Язык конструирования интерактивных технологий —в СУБД: язык программирования, предназначенный для описания технологических процессов обработки данных с учетом разделения характера операций по их типам, а также обеспечения диалога с администратором системы;
 - Язык манипулирования данными, ЯМД [DHL, Data Manipulation Language] — в СУБД: язык программирования, предназначенный для обращения к базе данных и выполнения поиска, чтения и модификации ее записей;
 - Язык меню [menu language] —язык диалога пользователя с системой, основанный на использовании меню;
 - Язык обработки списков [list language] — специализированный язык программирования, предназначенный для описания процессов обработки данных, представленных в виде списков объектов;
 - Язык общего назначения, универсальный язык [universal programming language] — язык программирования, ориентированный на решение задач практически из любой области и объединяющий на единой методической основе наиболее существенные свойства и средства современных машино- и проблемноориентированных языков программирования (например, язык ассемблера, ПЛ/1 и др.);
 - Язык ориентированный на пользователя [user-oriented language] —сла-боформализованный язык программирования, близкий к естественному языку;
 - Язык описания данных [DDL, Data Description Language] — язык программирования, предназначенный для описания "концептуальной схемы" базы данных, создавался под большим влиянием XML Schema Language и RDF (Resource Description Framework);
 - Язык описания хранения данных [DSDL, Data Storage Description Language] —язык программирования, предназначенный для описания физической структуры (схемы) базы данных;
 - Язык описания страниц [PDL, Page Description Language]
1. Специализированный язык программирования, предназначенный для печатающих устройств. Предусматривает возможность использования изображений в формате, независимом от параметров устройства отображения. Наиболее известным языком такого типа является PostScript.
2. Система для кодировки документов, которая позволяет точно описать ее внешний вид после подготовки к выводу на печать или на дисплей. Примером использования такого языка служит PDF (Portable Document Format), разработанный Adobe для хранения и представления изображений страниц;
 - Язык представления знаний [KRL, Knowledge Representation Language] —декларативный или декларативно-процедурный язык программирования, предназначенный для представления знаний в памяти ЭВМ (например, языки Лисп и Пролог);
 - Язык публикаций [publication language] —язык программирования, используемый для публикации алгоритмов и программ;
 - Язык реального времени [real-time language] —язык программирования, используемый для программирования задач, в которых критическим является время реакции ЭВМ на сигналы, требующие от нее немедленных действий (например, язык Ада);
 - Язык спецификаций [specification language] — декларативный язык программирования для задания спецификаций программ;
 - Язык управления заданиями [job-control language] —язык программирования, на котором записывается последовательность команд, управляющих выполнением задания. В отличие от обычных языков программирования, в которых объектами описания являются элементы, связанные с решением отдельной задачи, в языках управления заданиями преобразуемыми объектами являются целые программы и выходные потоки данных, обработанных этими программами.
 - Язык управления пакетом [batch control language] —набор команд, директив, квалификаторов и правил их использования для управления пакетной обработкой данных;
 - Язык функционального программирования, функциональный язык [functional language] — декларативный язык программирования, основанный на понятии функций, которые задают зависимость, но не определяют порядок вычислений.
Разработки и наименования языков программирования
 - Ада [Ada] —язык программирования высокого уровня, ориентированный на применение в системах реального времени и предназначенный для автоматизации задач управления процессами и/или устройствами, например, в бортовых (корабельных, авиационных и др.) ЭВМ. Разработан по инициативе министерства обороны США в 1980-х гг. Назван в честь английского математика Ады Августы Байрон (Лавлейс), жившей в 1815-1851 гг. Ожидается, что вскоре действующая версия языка (Ada 95) будет заменена на Ada 2005, в которой наряду с другими новыми возможностями будет поддержан интерфейс к Java-модулям. Соответствующий стандарт готовится в ISO. К этому событию компания AdaCore (http://www.gnat.com) приурочила выпуск системы программирования GNAT Pro Ada 2005.
 - Алгол [ALGOL, ALGOrithmic Language] — язык программирования высокого уровня, ориентированный на описание алгоритмов решения вычислительных задач. Был создан в 1958 г. специалистами западно-европейских стран для научных исследований. Версия этого языка Ал гол-60 была принята Международной конференцией в Париже (1960 г.) и широко использовалась на ЭВМ 2-го поколения. Версия Алгол-68, разработанная группой специалистов Международной федерации по обработке информации (ИФИП) в 1968 г., получила статус международного универсального языка программирования, ориентированного на решение не только вычислительных, но и информационных задач. Хотя в настоящее время Алгол практически не используется, он послужил основой или оказал существенное влияние на разработку более современных языков, например, Ада, Паскаль и др.
 - Бейсик [BASIC, Beginner’s All-purpose Symbolic Instruction Code] —язык программирования высокого уровня, разработанный в 1963-1964 гг. в Дартмутском колледже Томасом Куртом и Джоном Кемени. Первоначально предназначался для обучения программированию. Отличается простотой, легко усваивается начинающими программистами благодаря наличию упрощенных конструкций языка Фортран и встроенных математических функций, алгоритмов и операторов. Существует множество различных версий Бейсика, которые не полностью совместимы друг с другом. Некоторые реализации Бейсика включают средства обработки данных и наборов данных. Большинство версий Бейсика используют интерпретатор, который преобразует его компоненты в машинный код и позволяет запускать программы без промежуточной трансляции. Некоторые более совершенные версии Бейсика позволяют использовать для этой цели трансляторы. На IBM PC широко используются Quick Basic корпорации Microsoft, Turbo Basic фирмы Borland и Power Basic (усовершенствованная версия Turbo Basic, распространяемая фирмой Spectra Publishing). В начале 1999 г. корпорация Microsoft выпустила версию языка Visual Basic (VB 6.0), предназначенного для создания многокомпонентных программных приложений для систем уровня предприятий.
 - Кобол [COBOL, COmrnon Business-Oriented Language]— язык программирования высокого уровня, разработанный в конце 1950-х гг. ассоциацией КАДА-СИЛ для решения коммерческих и экономических задач. Отличается развитыми средствами работы с файлами. Поскольку команды программ, написанных на этом языке, активно используют обычную английскую лексику и синтаксис, Кобол рассматривается как один из самых простых языков программирования. В настоящее время используется для решения экономических, информационных и других задач.
 - Лисп [LISP, LISt Processing] — алгоритмический язык программирования, разработанный в 1960 г. Дж. Маккарти и предназначенный для манипулирования перечнями элементов данных. Используется преимущественно в университетских лабораториях США для решения задач, связанных с искусственным интеллектом. В Европе для работ по искусственному интеллекту предпочитают использовать Пролог.
 - Лого [LOGO — от греч. logos — слово] — язык программирования высокого уровня, разработан в Массачусетском технологическом институте в ориентировочно 1970 г. для целей обучения математическим понятиям. Используется также в школах и пользователями ПЭВМ при написании программ для создания чертежей на экране монитора и управления перьевым графопостроителем.
 - Паскаль [PASCAL, Program Applique a la Selection et la Compilation Au-tomatique de la Litterature] — акроним с франц. процедурно- и модульно-ори-ентированный язык программирования высокого уровня, разработанный в конце 1960-х гг. швейцарским программистом профессором и (в последствии) нобелевским лауреатом Ни Клаусом Виртом (Niklaus Virth), первоначально для обучения программированию в университетах. Назван в честь французского математика XVII века Блеза Паскаля. В своей начальной версии Паскаль имел довольно ограниченные возможности, поскольку предназначался для учебных целей, однако последующие его доработки позволили сделать его хорошим универсальным языком, широко используемым, в том числе для написания больших и сложных программ. Существует ряд версий языка (например, ETH Pascal, USD Pascal, Turbo Pascal) и систем программирования на этом языке для разных типов ЭВМ. Для IBM PC наиболее популярной является система Turbo Pascal фирмы Borland (США).
 - Оберон [Oberon] — язык структурного программирования, первая версия которого была разработана в период с 1985 по 1990 г. Ни Клаусом Виртом и Юр-гом Гуткнехтом. Он поддерживает возможности процедурного, модульного, компонентного, рефлективного и системного программирования, а также программирования абстрактных типов данных (ADT programming). Весь ввод/вывод, параллельное программирование и обработка исключений вынесены на уровень внешних библиотек. Считается значительно более простым и мощным, чем Паскаль. Имеются следующие версии языка: Oberon-2 (1995 г.), Component Pascal (2001 г.), Active Oberon (2004 г.) и Zonnon (2004 г.).
 - Пролог [PROLOG, PROgramming in LOGic]—язык программирования высокого уровня декларативного типа, предназначенный для разработки систем и программ искусственного интеллекта. Относится к категории языков пятого поколения. Был разработан в 1971 г. в университете г. Марсель, относится к числу широко используемых и постоянно развиваемых языков. Последняя его версия Prolog 6.0.
 - Си [С]— многоцелевой язык программирования высокого уровня, разработанный Денисом Ритчи в начале 1970-х гг. на базе языка BCPL. Используется на миниЭВМ и ПЭВМ. Является базовым языком операционной системы Unix, однако применяется и вне этой системы, для написания быстродействующих и эффективных программных продуктов, включая и операционные системы. Для IBM PC имеется ряд популярных версий языка Си, в том числе —Turbo С (фирмы Borland), Microsoft С и Quick С (фирмы Microsoft), а также Zortech С (фирмы Symantec). Многие из указанных версий обеспечивают также работу с Си и Си++.
 - Си++ [C++] —язык программирования высокого уровня, созданный Бьярном Страустрапом на базе языка Си. Является его расширенной версией, реализующей принципы объектно-ориентированного программирования. Используется для создания сложных программ. Для IBM PC наиболее популярной является система Turbo C++ фирмы Borland (США).
 - C# (С Sharp) —"Си Шарп": объектно-ориентированный язык программирования, о разработке которого в 2000 г. объявила корпорация Microsoft. По своему характеру он напоминает языки C++ и Java и предназначен для разработчиков программ, использующих языки С и C++ для того, чтобы они могли более эффективно создавать Интернет-приложения. Указывается, что C# будет тесно интегрирован с языком XML.
 - Фортран [FORTRAN, FORmula TRANslation] — язык программирования высокого уровня, разработанный фирмой IBM в 1956 г. для описания алгоритмов решения вычислительных задач. Относится к категории процедурно-ори-ентированных языков. Наиболее распространенными версиями этого языка являются Фортран IV, Фортран 77 и Фортран 90. Используется на всех классах ЭВМ. Последняя его версия также применяется на ЭВМ с параллельной архитектурой.
 - AppleScript —машинозависимый язык программирования (ориентирован на работу с ПК типа Макинтош фирмы Apple) близкий к естественному английскому языку, предназначенный для автоматизации повторяющихся задач, преимущественно связанных с процессами компьютерной графики (в том числе обработки результатов сканирования, ввода изображений, цветоделения, составления каталогов, передачи печатных документов в World Wide Web и др.). Планировалась разработка версии этого языка для PowerPC.
 - Clipper —язык программирования высокого уровня и система программирования, предназначенные для разработки программ для ПК, преимущественно —систем управления большими объемами данных. Владельцем и разработчиком языка и системы Clipper является фирма Nantucket (США). Начало работ по их созданию связано с разработкой компилятора для dBase и относится к 1984 г. (год основания фирмы Nantucket Барри Ребел-лом и Брайаном Расселом). Первые программные продукты Clipper —Clipper-Winter’84 (май 1985 г.), CIipperWinter’85 (январь 1986 г.), МсМах (версия для ПК Macintosh —сентябрь 1986 г.) и CIipperSummer’87 (декабрь 1987 г.). Летом 1990 г. была выпущена версия языка Clipper 5.0, получившая широкое распространение в России. Она реализует концепцию открытой архитектуры и представляет собой язык, компилятор и систему разработки программ для ПК, включающую набор команд и функций, препроцессор, компоновщик, набор утилит (в том числе отладчик и встроенную документацию).
 - DBASE
1. Язык программирования высокого уровня, предназначенный для создания пакетов прикладных программ, связанных с манипулированием большими объемами данных (Xbase). Первая версия языка dBASE II вышла в свет в начале 1980-х гг., в августе 1994 г. была выпущена версия dBASE 5.0 for Windows;
2. Семейство программ для ПЭВМ, предназначенное для манипулирования большими объемами данных.
 - FoxPro — объектно-ориентированный язык программирования, предназначенный для создания пакетов прикладных программ, в том числе для современных операционных систем, например —версия этого языка FoxPro for Windows.
 - Java —объектно-ориентированный язык программирования интерпретирующего типа, разработанный фирмой Sun Microsystems в 1994 г. Он во многом сходен с языком C++ и нашел широкое применение для написания разного рода программных продуктов ("приложений"), ориентированных на работу в сетевых системах типа "клиент-сервер" и "файл-сервер" под управлением современных операционных систем (Windows, OS/2 и др.). Язык рассчитан на передачу по Интернет текстов программ, которые на всех компьютерах должны выполняться одинаковым образом. Основное достоинство, привлекшее к этому языку специалистов, заключается в предоставляемой им возможности разработки платформо-независимых программ. Считается, что своим успехом этот язык обязан в первую очередь фирме Netscape Communication, которая лицензировала его интерпретатор в свой самый популярный в мире браузер Web-страниц (Navigator 2.0). Общими характеристиками языка Java являются: простота, значительный объем библиотеки подпрограмм, возможность распространения на любой тип ЭВМ, независимость от ее архитектуры, высокая защищенность создаваемых программ, динамичность языка, обеспечивающая гибкое введение изменений в программы, и др. В настоящее время язык Java лицензировали такие фирмы, как IBM, Microsoft, Borland, Symantec, Macromedia и др. В феврале 1997 г. фирма JavaSoft выпустила новую версию усовершенствованного инструментального пакета разработки программ на языке Java —JDK 1.1 (Java Development Kit). Он облегчает работу по составлению программ, поддерживает средства работы с национальными кодировками и имеет улучшенный оконный интерфейс. Последующие версии языка Java — JavaOne’98 (март), JavaOne’99 (май), Java0ne7000 (май), JavaOne’2001 (июнь) и Java0ne’2002 (март).
 - JavaScript — объектно-ориентированный и машинонезависимый язык программирования, предназначенный для создания приложений в Интернете. Совместим со всеми типами компьютеров, работающих в глобальной сети. Программы на языке JavaScript включаются в состав HTML-документа. В указанном плане этот язык может считаться расширением состава команд HTML. Каждая вставка, написанная на JavaScript, в HTML-документе начинается командой <SCRIPT> с необязательным параметром LANGUAGE и заканчивается командой </SCRIPT>. Для создания программ на JavaScript не требуется никаких дополнительных средств: необходим лишь браузер, поддерживающий JavaScript (Netscape Navigator 2.0 и выше или Microsoft Internet Explorer), а также редактор для создания HTML документов.
 - Occam —язык программирования высокого уровня, предназначенный для выполнения параллельного программирования и создания транспьютеров. Является результатом совместной разработки фирмы INMOS (Великобритания) и Оксфордского университета (Дэвид Мэй). Концепция Оккама базируется на теории связанных последовательных процессов, созданной профессором Оксфордского университета С. Хора. Свое название язык получил в честь английского философа XIV века Уильяма Оккама, поскольку в основе разработки языка был использован провозглашенный им принцип: "Сущность не должна превышать необходимость" ("Бритва Оккама"). В соответствии с упомянутым принципом из двух одинаково эффективных вариантов решений принимается наиболее простое. Язык Оккама используется в транспьютерах первых и всех последующих выпусков.
 - Perl (Practical Extraction and Report Language) —"Практический язык извлечения данных и формирования отчетов": сценарный язык, широко используемый Web-мастерами и системными администраторами. Впервые создан Ларри Уоллом в конце 1980-х гг. (версия 1.0 вышла в 1987 г.). Распространяется бесплатно. Первоначально он применялся в среде ОС UNIX, однако в настоящее время используется и за ее пределами. Наиболее активно им пользуются для написания CGI-сценариев для Web.
 - PostScript — объектно-ориентированный язык программирования, разработанный фирмой Adobe Systems (США). Является одним из основных стандартов для печати и передачи документов, работает с изображениями, включая шрифты. Поэтому относится также к классу специализированных языков описания страниц. Представляет собой набор команд по формированию сложных геометрических фигур из набора простейших заготовок (круги, прямоугольники, прямые и кривые линии и т.д.). Шрифты и чертежи, выполненные с использованием векторной графики языка PostScript, могут масштабироваться без потери качества их печати или отображения на экране монитора. Используется для управления лазерными принтерами при печати документов и другими устройствами вывода данных.
 - Python — сценарный и объектно-ориентированный язык программирования, разработанный в начале 1990-х гг. Гвидо ван Россумом. В его основу положены следующие принципы: простота и удобство программирования, наглядный синтаксис, возможность расширения, встраиваемость, переносимость и свободное распространение. Язык также был задуман для его использования опытными пользователями-непрограммистами. Одним из недостатков языка считается невысокое быстродействие написанных на нем программ. На Phython создано значительное число коммерческих программ. Им также широко пользуется МО США.
 - SQL (Structured Query Language) —"Язык структурированных запросов": предназначен для обеспечения доступа к реляционным базам данных. Создан корпорацией IBM. Большинство файловых серверов и многие СУБД используют SQL в качестве стандартного средства доступа к данным из приложений-клиентов.
 - OQL (Object Query Language) — "Объектный язык запросов": расширенная версия языка SQL, дополненная объектными свойствами, средствами описания типов данных и итераций с объектами в базах данных.
 - Tel, Icl/Ik (Tool Command Language) —"Язык команд для инструментов": сценарный язык программирования, созданный Джоном К. Устераутом (John К. Ousterhout) сотрудником компании Interwoven в конце 1990-х —начале 2000-х гг. Целью разработки являлось создание хорошо интерпретируемого языка, который можно было бы вставлять в другие программы для управления ими. Используется для управления работой многих видов научного, коммерческого и бесплатного ПО, а также в ряде оболочек как для текстового (подобного Turbo Vision и Norton Commander), так и графического интерфейса. Существует объектно-ориентированная версия Ncl — incr Tel (incr обозначает инкремениро-вание).
 - ТеХ — язык программирования, разработанный фирмой Donald Knuth еще в 1980 г. Он предназначен для обеспечения высококачественной печати. Особое внимание в нем уделяется возможности кодировки математических знаков с использованием ASCII для выдачи, обработки и хранения их на ЭВМ. До настоящего времени он считается незаменимым дополнением других языков (например, PostScript) при подготовке материалов по математике и смежным специальностям.
 - UML (Unified Modelling Language) — "Унифицированный язык моделирования": язык программирования для спецификации, просмотра и документирования элементов программных систем, предназначенный для описания "бизнес-объекта", как компонента прикладной системы. Является стандартом для моделирования (включая определение и представление типов метаданных в OIM).
Языки разметки гипертекста, используемые в сетевых технологиях
 - DHTML (Dynamic HTML) —"Динамическая HTML": развитие языка HTML для создания движущихся ("динамических") эффектов на Web-страницах.
 - DSML (Directory Services Markup Language) — "Язык разметки службы каталогов" предназначен для поддержки служб администрации сетей, работающих с каталогами. Специализированные каталоги позволяют эффективно хранить сведения об абонентах сети, необходимым им сервисным услугам, а также сетевым ресурсам и др. данные, сопоставление которых обеспечивает возможность администраторам сети оптимизировать предоставление абонентам необходимых им услуг в реальном масштабе времени. DSML был предложен в 1999 г. рабочей группой (DSML Working Group), представленной фирмами IBM, Microsoft, Novell, Sun/Netscape, Oracle и др. для создания унифицированного формата разработки таких каталогов, их публикации и обмена их содержимым.
 - HDML (Handheld Device Markup Language) —язык разметки документов для мобильных телефонов и компьютеров, разработанный фирмой Unwired Planet в качестве альтернативы языку WML. Браузеры, работающие на этом языке, могут интерпретировать язык WML.
 - HTML, html (HyperText Markup Language) "Язык разметки гипертекста": разработан в исследовательском центре CERN в 1992 г. Он является производным от SGML. HTML устанавливает формат гипермедийных документов, в сети WWW. HTML-документы представляют собой ASCII-файлы, доступные для просмотра и редактирования в любом текстовом редакторе. Отличием от обычного текстового файла является наличие в HTML-документах специальных команд —тэгов, которые указывают правила форматирования документа. Полное описание HTML можно получить по сетевому адресу: http://www.access.digex.net/ ^werbach/barebone.html.
 - HTML 2.0 — стандарт утвержден в ноябре 1944 г. организацией IETF (Internet Engineering Task Force). В нем были расширены возможности предыдущей версии языка и он получил широкое распространение как у профессионалов, так и любителей.
 - HTML 3.0 —проект версии языка опубликован в марте 1995 г. В нем были произведены радикальные изменения предыдущих версий включены дополнительные возможности, включая таблицы, математические выражения и т.д. Это стало причиной того, что он не стал официальной спецификацией и был заменен спецификацией HTML 3.2.
 - HTML 3.2 (кодовое наименование проекта: "Wilbur") —опубликован и начал широко использоваться с мая 1996 г., официально утвержден в 1997 г. Получил популярность из-за совместимости с HTML 2.0.
 - HTML 4.0 (кодовое наименование проекта: "Cougar") —последняя версия языка. В нем реализованы многие распространенные концепции Web-дизайна и приняты некоторые средства HTML 3.2. Самым значительным отличием HTML 4.0 от предыдущих версий является кодировка Unicode, тег "OBJECT", позволяющий работать с мультимедиа (в том числе с видеоклипами и звуком) и др.
 - OWL (Web Ontology Language) "Язык онтологий Веба" разработан в 2002 г. Консорциумом W3C. Представляет собой язык разметки для публикации и совместного использования онтологий (определения словарных терминов и их взаимосвязей) в Web. Является производным от DAML + OIL и RDF. Утверждения OWL определяют классы, свойства и индивидуальности (individuals) совместно с типами связей (такими, как subclassOf, subPropertyOf, domain, range, inverseOf) и набором аксиом, определяющих ограничения (например, cardinality, oneOf, disjointWith и intersectionOf). Имеется встроенный наиболее общий класс с именем Thing и специальный "нижний" класс Nothing (пустой). Термин, который будет использоваться для описания связей между индивидуальностями, рассматривается как свойство. Упрощенная версия (OWL Lite) содержит обычно используемые опции DAML + OIL и достаточна для простых приложений. Классы OWL Lite могут определяться только в терминах, поименованных суперклассов, и использоваться с определенными ограничениями. Онтологии OWL представляют собой документы, на которые можно ссылаться с помощью URL. Официальный синтаксис обмена сообщениями—RDF.
 - RDFS, RDF(S), RDF Schema (RDF Vocabulary Description Language 1.0: RDF Schema) Объектно-ориентированный язык представления моделей (структур) данных в синтаксисе XML как ресурсов Web. Разработан Консорциумом W3C в 1999 г. Является частью спецификаций языка RDF, стандартизующей описание словаря понятий, используемых в RDF-спецификации. Основные сущности RDFS: класс (Class) и свойство (Property), рассматриваемые как независимые конструкции. Классы и свойства могут связываться отношениями наследования (Sub-ClassOf и SubPropertyOf), для спецификации субклассов и субсвойств могут использоваться ограничения области определения (Range) и принадлежности свойства классу (Domain). Для спецификации структуры классов и свойств используется также спецификация вложенности (container) типов: bag — неупорядоченного множества элементов, seq —упорядоченного множества элементов и alt — одного из элементов. Важной особенностью языка является его описательный, а не предписывающий характер. Это означает, что состав перечисленных структурных элементов может использоваться не для того, чтобы наложить ограничения на применение свойств, а для предоставления дополнительной информации приложению, обрабатывающему эти данные.
 - SAUL (Security Assertion Markup Language) —"Язык разметки утверждений безопасности": расширение языка XML, предназначенное для обмена данными по безопасности, присвоенными субъектам и находящимися в домене (динамической библиотеке). Сведения о субъектах разделяются на три типа так называемых утверждений [assertions]; аутентификационное утверждение [authentication assertion], которое точно указывает, как и когда было установлено, что субъект является тем, за кого он себя выдает; атрибутивное утверждение [attribute assertion], которое указывает дополнительные служебные сведения о субъекте, и сертифицирующее утверждение [authorization assertion], подтверждающее право доступа субъекта к определенным ресурсам сети. Язык разработан организацией OASIS, в которую входят многие корпорации и крупные фирмы, включая такие, как Boeing, Citrix, IBM, Hewlett-Packard, Microsoft и др.
 - SGML (Standardized General Markup Language) — "Стандартизованный обобщенный язык разметки": разработка языка была вызвана необходимостью создания средств описания документов и правил их построения. Для задания структуры документа используются специальные метки —"теги", которые отделяют друг от друга элементы документа и файлы определения типа документа (Document Type Definition, DTD), выполняющие функции "грамматики" и определяющие структуру и содержание каждого элемента в документе. Принят ISO в качестве стандарта в 80-е годы. Сложность этого языка помешала ему лечь в основу первой спецификации для Web —HTML, который стал производным от SGML.
 - UIML (User Interface Markup Language) — "Язык разметки пользовательского интерфейса": язык, являющийся XML-приложением, который определяет возможность визуализации HTML-документов на любом устройстве и в среде любой ОС. Разработка спонсируется с 1997 г. Пентагоном для формирования пользовательских интерфейсов сложных систем с длительным сроком эксплуатации. Применяется, например, при подготовке модулей управления ракетными комплексами Tomahawk, корабельных систем нового эсминца-"невидимки" DD(X) и др. Уже имеющиеся реализации UIML позволяют производить трансляцию модели интерфейса на языки Java, HTML, WML, VoiceXML, Python и виртуальный код приложений ".NET"
 - VoiceXML (Voice extensible Markup Language) —"Расширяемый язык разметки голоса": разработан Форумом VoiceXML (VoiceXML Forum), объединяющем более 40 крупных фирм, включая такие, как AT&T, Ericsson, France Telecom, IBM, Novell, Lucent Technologies, Motorola, Samsung Electronics, Siemens, Sun Microsystems и др., для облегчения передачи по Интернету информации голосом и по телефону (подробнее о Форуме VoiceXML. Первая версия языка (V.0.9) разработана в августе 1999 г., описание V. 1.00 вышло в марте 2000 г., текущая версия V.2.0 —в ноябре 2001 г. Последняя стала открытым стандартом консорциума W3C. Она предназначена для реализации ориентированных на Web и персонализированных интерактивных сервисов с речевым ответом и обеспечением телефонного и речевого доступа к интегрированным БД так называемых центров обработки вызовов (Call Center Databases), а также к контенту Web-узлов и в интрасети.
 - VRML (Virtual Reality Modelling Language) —"Язык моделирования виртуальной реальности" (сленговый термин — "вермел") предназначен для унификации и упрощения представления трехмерной и подвижной графики, в том числе синхронизации изображения и звука. VRML рассматривается разработчиками как язык, хотя и родственный, но альтернативный по отношению к HTML и взаимодействующий с ним. Впервые идея языка предложена Марком Песке (Mark Pesce) в 1993 г., а его первая спецификация (VRML 1.0) была подготовлена на основе формата Open Inventor фирмы SGI и представлена на второй конференции WWW в октябре 1994 г. в Женеве. Главной задачей было дальнейшее усовершенствование интерактивных интерфейсов с целью лучшего их восприятия человеком. Во второй версии, в разработке которой приняли участие и другие фирмы (например, Sony Research, Mitra и др.), его интерактивные возможности были расширены. В частности, VRML 2.0 стал поддерживать анимацию и звуковые эффекты, а также взаимодействия с Java и JavaScript. В августе 1996 г. принят его стандарт, а в декабре 1997 г. VRML 2.0 официально заменен на VRML 97, называемый также VRML Technical Symposium. Новый стандарт ISO/IEC 14772 построен на основе спецификациий VRML 2.0 с некоторыми поправками и дополнениями. В настоящее время ведется разработка очередной версии —VRML 2000.
 - WML (Wireless Markup Language) —язык создания гипертекстовых документов для мобильных телефонов и ПК. Является открытым стандартом, входящим в состав протокола Wireless Access Protocol (WAP). Используется при создании WAP-страниц и WAP-приложений. Аналогично HTML он основан на применении пар тэгов (<card> и </card>), разделяющих блоки данных, которые хранятся в памяти и отображаются по очереди на экране WAP-телефона. Тэги, применяемые для форматирования WML-документов, аналогичны используемым в HTML. Для осуществления работы с WML существуют тэги: <input> —для непосредственного ввода данных; <option> —для выбора из списка и <postfield> — для скрытых данных. Объем WWL-документа обычно не превышает 1-1,5 Кбайт, что соответствует объему памяти буфера первых WAP-телефонов.
 - XACML [XML Access Control Markup Language] — "Язык разметки управления доступом": связанный с SAML язык, позволяющий составлять правила доступа (включая наложение оговоренных ограничений) выбранных служб к определенным документам, написанным на XML.
 - XAML (extensible Application Markup Language) —"Язык разметки расширенного применения": разработан фирмой Microsoft на базе XML и ориентирован для использования при проектировании операционных систем и, в частности-модели новой версии Windows, получившей наименование Longhorn.
 - XHTML— XML-версия языка HTML 4.0. Является "смесью" HTML и XML. Предназначена для облегчения перехода от HTML к XML.
 - XML (Extensible Markup Language) — "Расширяемый язык разметки": предложен в 1996 г. консорциумом WWW Consortium (W3C) —ориентированных языков. Входит в подмножество SGML. Возник в результате необходимости создать более обобщенный язык разметки без соблюдения сложного и громоздкого для использования в Интернете стандарта SGML. Хотя XML и требует формально определять язык разметки, стадия проверки корректности стала не обязательной: наличие определений типов документов (DTD, Document Type Definition) не требуется, хотя и допускается. Кроме того, в XML используется лишь некоторое подмножество правил SGML, что облегчает его использование. Подобно SGML XML является метаязыком и содержит правила, по которым должно определяться множество "тегов", допустимых в документе. В отличие от HTML, XML позволяет описывать не только структуру документа, но и его содержание (контекст) а также обеспечивать разные способы отображения (например, учитывающие тип клиента и вид запрашиваемого документа). XML имеет ряд приложений, предназначенных для описания нетекстовых документов и их частей. Примерами могут служить: MathML — для описания математических формул, MusicML —для описания нотных записей. Пакет данных, описанный на XML, называют XML-документом.
На основе XML в настоящее время разработано значительное число стандартов, спецификаций, рекомендаций и технологий подготовки XML-документов. К ним можно отнести:
1. Спецификации, рекомендованные к использованию консорциумом W3C, включая: XML 1.0 и 1.1, Namespaces in XML 1.0 и 1.1.Canonical XML, Xlink (XML Linking Language), XML Base, XML Infoset, XML Schema (Part I и Part II), Datatypes, Xpath, Xpointer, а также стандарт OASIS RELAX NG (в 2003 г. он признан ISO);
2. Стандарты, относящиеся к обработке XML-документов: XSLT, DOM, Xquery, SOAP, WSDL и некоторые другие;
3. XML-спецификации, составляющие XML-приложения или словари: XHTML, Docbook, XSL-FO, SVG, VoiceXML, MathML, SMIL;
4. Отраслевые XML-форматы: XML-стандарты, предназначенные для описаний документов и данных, принятые в какой-либо конкретной отрасли деятельности, например OFX/IFX, FpML, MDDL, RIXML, SDMX, XML BSC, RSS и др.
 - XSLT (Extensible Stylesheet Language: Transformation) —расширяемый язык преобразований стилей. Предназначен для описания правил преобразований структуры документов.