Создание новых языков

Создание новых языков

Хотя мы и говорим об XML, как о формате описания данных, на самом деле XML — это метаязык, язык, который описывает другие языки. Строго говоря, когда мы создаем XML-документ, мы создаем его не на XML, а в соответствии с XML-синтаксисом. XML — это всего лишь набор синтаксических правил, не более. Настоящим языком в этой ситуации является то, что мы понимаем под логической, семантической схемой создаваемого документа.

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

Что же касается семантики языка, то во многих случаях древовидные XML-структуры очень хорошо подходят для ее описания, будь это язык формата документа или язык программирования.

Главным недостатком XML является громоздкость синтаксиса. Например, арифметическое выражение 2*2 может быть выражено в XML приблизительно как:

<mul>

 <arg>2</arg>

 <arg>2</arg>

</mul>

Очевидно, что с человеческой точки зрения это не самый компактный и элегантный способ.

На данный момент существует великое множество языков, созданных на основе XML. Мы перечислим несколько наиболее известных из них:

? WML (Wireless Markup Language) — язык разметки для беспроводных устройств, основной формат данных для беспроводного протокола WAP;

? SVG (Scalable Vector Graphics) — язык описания масштабируемой векторной графики;

? XHTML — XML-совместимая версия языка гипертекстовой разметки документов;

? SOAP (Simple Object Access Protocol) — XML-протокол для обмена информацией в распределенных системах;

? RDF (Resource Description Framework) — система описания ресурсов;

? XML/EDI (XML/Electronic Data Interchange) — XML-язык для представления сообщений EDI в системах В2В и электронной коммерции;

? OML (Ontology Markup Language) — язык для описания онтологий и тезаурусов;

? VoxML (Voice Markup Language) — язык разметки для голосовых приложений;

? MathML (Mathematical Markup Language) — язык для описания математических выражений;

? CML (Chemical Markup Language) — язык для описания химических формул;

? UML exchange Format — XML-выражения языка UML (Unified Modeling Language);

? CDF (Channel Description Format) — язык для описания данных для автоматической доставки клиенту (технология push-каналов).

Несмотря на то, что XML это язык разметки, он вполне подходит для создания языков программирования. Самым лучшим примером является язык XSLT, которому посвящена эта книга. Кроме того, существует множество менее известных языков, например XML-версия функционального языка Lisp, язык HaXML и другие.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Программное создание новых доменов приложения

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю

Программное создание новых доменов приложения Напомним, что один процесс может содержать множество доменов приложения, И хотя вам в программном коде вряд ли понадобится вручную создавать домены приложения, вы имеете возможность сделать это с помощью статического


Создание новых записей в форме, связанной с данными

Из книги Обработка баз данных на Visual Basic®.NET автора Мак-Манус Джеффри П

Создание новых записей в форме, связанной с данными Для создания новой записи в связанном с данными приложении на основе Windows Forms нужно использовать метод AddNew объекта BindingContext. При выполнении этого метода любые связанные с данными элементы управления очищаются для ввода


8.1. Классификация языков

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

8.1. Классификация языков Все языки, представленные на рис. 8.1, описываются в учебных примерах этой или других глав данной книги. Описание универсальных интерпретаторов, показанных в правой части схемы, приведено в главе 14.В главе 5 рассматривались Unix-соглашения для файлов


8.3. Проектирование мини-языков

Из книги Основы AS/400 автора Солтис Фрэнк

8.3. Проектирование мини-языков В каких ситуациях целесообразна разработка мини-языка? Выше отмечалось, что мини-языки предоставляют способ перемещения спецификаций проблем на более высокий уровень, а в нескольких учебных примерах это наблюдение подтверждалось фактами.


8.3.2. Расширение и встраивание языков

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

8.3.2. Расширение и встраивание языков Один из фундаментально важных вопросов заключается в том, возможно ли реализовать мини-язык путем расширения или встраивания существующего языка сценариев. Нередко такой подход является правильным путем к императивному мини-языку,


Поддержка национальных языков

Из книги XSLT автора Хольцнер Стивен

Поддержка национальных языков Первый шаг в реализации Unicode на AS/400 был сделан в V3R1, где с его помощью кодировались имена объектов некоторых компонентов интегрированной файловой системы. Unicode поддерживает одновременное использование множества наборов символов


8.1. Классификация языков

Из книги Разработка приложений в среде Linux. Второе издание автора Джонсон Майкл К.

8.1. Классификация языков Все языки, представленные на рис. 8.1, описываются в учебных примерах этой или других глав данной книги. Описание универсальных интерпретаторов, показанных в правой части схемы, приведено в главе 14.В главе 5 рассматривались Unix-соглашения для файлов


14.1. Многообразие языков в Unix

Из книги Первые шаги с Windows 7. Руководство для начинающих автора Колисниченко Денис Н.

14.1. Многообразие языков в Unix В Unix поддерживается более широкий по сравнению с любой другой операционной системой диапазон языков прикладного программирования. Фактически Unix способна поддерживать больше различных языков, чем все вместе взятые операционные системы в


Элемент : создание новых элементов на этапе выполнения

Из книги Ubuntu 10. Краткое руководство пользователя автора Колисниченко Д. Н.

Элемент <xsl:element>: создание новых элементов на этапе выполнения Новые элементы можно создавать при помощи элемента <xsl:element>, который очень удобен для задания имени нового элемента на этапе выполнения.У этого элемента три атрибута:• name (обязательный). Имя


Элемент : создание новых атрибутов

Из книги Инфобизнес за один день автора Ушанов Азамат

Элемент <xsl:attribute>: создание новых атрибутов Аналогично тому, как вы можете создавать новые элементы при помощи <xsl:element> и устанавливать имя и содержимое элемента на этапе выполнения, при помощи элемента <xsl:attribute> это можно делать для атрибутов. У элемента два


14.3.1. Создание новых каталогов

Из книги UNIX — универсальная среда программирования автора Пайк Роб

14.3.1. Создание новых каталогов Создание новых каталогов выполняется очень просто.#include <fcntl.h>#include <unistd.h>int mkdir(const char * dirname, mode_t mode);Путь, определенный в dirname, создается как новый каталог с полномочием mode (что модифицируется umask процесса). Если dirname определяет существующий


5. Редактирование реестра и создание новых объектов в реестре

Из книги QT 4: программирование GUI на С++ автора Бланшет Жасмин

5. Редактирование реестра и создание новых объектов в реестре Редактирование реестра заключается в создании новых разделов, новых параметров, удалении уже имеющихся параметров и разделов, а также редактировании значений параметров. Все эти операции мы и рассмотрим в


17.3.1. Изменение макета слайда, создание новых слайдов

Из книги автора

17.3.1. Изменение макета слайда, создание новых слайдов Щелкните по любому слайду, а затем посмотрите на вкладку Макеты — будет выбран макет, используемый выбранным слайдом. Для изменения макета слайда щелкните двойным щелчком по нужному вам макету — будет изменен макет


4. Создание новых предложений (20 % времени)

Из книги автора

4. Создание новых предложений (20 % времени) Также 20 % времени вы тратите на создание новых предложений. Мы рекомендуем два часа в день уделять раскрутке вашего инфобизнеса, подписной страницы, бесплатных курсов и наращиванию подписной базы. Час в день посвятить всему, что