Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Непейвода Н.Н. -> "Основания программирования " -> 219

Основания программирования - Непейвода Н.Н.

Непейвода Н.Н., Скопин И.Н. Основания программирования — Институт компьютерных исследований , 2002. — 919 c.
Скачать (прямая ссылка): osnovanprogramm2002.pdf
Предыдущая << 1 .. 213 214 215 216 217 218 < 219 > 220 221 222 223 224 225 .. 316 >> Следующая

Еще одним шагом в развитии проекта, использующим язык XML может быть формализация используемого представления: ведь как только определен все теги представления, правила их вло ения и способы задания, тем самым получился новый язк (по аналогии с современными язками, построенными таким же образом, мы можем назвать его "automatML"). Пока теги и элементы XML используются исключительно ради удобства для вашего собственного проекта (как если бы вы использовали CSS на своей домашней страничке), то не имеет никакого значения, что в даете этим элементам и тегам имена, смсл которых отличается от стандартного и известен только вам. Если же, с другой стороны, вы хотите предоставлять данные внешнему миру и получать информацию от других людей, то это обстоятельство приобретает огромное значение. Элементы и атрибуты должны употребляться вами точно так е, как и всеми остальнми л дьми, или, по крайней мере, №i должны документировать то, что делаете.
ля этого придется использовать определения типов документов (Document Type Definition, DTD). Хранимые в начале файла XML или внешним образом в виде файла *.DTD, эти определения описывают информационную структуру документа. DTD перечисляют возможные имена элементов, определяют име-
иеся атрибут для кадого типа элементов и описва т сочетаемость одних элементов с другими.
Каждая строка в определении типа документа может содержать декларацию типа элемента, именовать элемент и определять тип данных, которые
624
ГЛАВА 10. МЕТОДЫ ПРОГРАММИРОВАНИЯ ОТ СОСТОЯНИЙ
элемент может содержать . О на имеет следующий вид:
<!ELEMENT имя_элемента (тип_цанныгх)>
апример, декларация
<!ELEMENT action (#PCDATA)>
определяет элемент с именем action, содержащий символьные данные (т. е. текст). Декларация
<!ELEMENT automat (state_1, state_2, state_3)>
определяет элемент с именем special_report, содержащий подэлементы state_1, state _2 и state_3 в указанном порядке, например:
<automat>
<state_1>XML: время пришло</state_1> <state_2>XML превосходит самое себя</state_2> <state_3>Управление сетями и системами с помощью XML</state_3> </automat>
осле определения элементов DTD могут так е определять атрибут с помощью команды !ATTLIST. О на указывает элемент, именует связанный с ним атрибут и затем описывает его допустимые значения. !ATTLIST позволяет управлять атрибутами и многими другими способами: задавать значения по умолчанию, подавлять пробелы и т. д. DTD могут также содержать декларации !ENTITY, где определяются ссылки на объекты, а также декларации !NOTATION, указываие, что делать с двоичными файлами не в формате XML.
Серьезное и несколько удивительное ограничение DTD состоит в том, что они не допускают типизации данных, т. е. ограничивают данные конкретным форматом (таким, как дата, целое число или число с плаваей точкой). Как вы, вероятно, у е заметили, DTD использу т иной синтаксис, не ели XML, и не очень-то интуитивно понятны. о названным причинам DTD будут, видимо, заменены более моными и простыми в использовании схемами XML, работа над которыми ведется в настоящее время.
Возможно, вам приходилось слышать определения 'правильно составленный' (well-formed) и 'действительный' (valid) применительно к документам
10.6.
625
XML. окумент является правильно составленным, если для кадого откр -вающего тега имеется соответствующий закрывающий тег, а накладывающиеся теги отсутствуют. (Таким образом, большая часть документов HTML составлена неправильно.) окумент является действительнм, если он со-дерит DTD и соответствует его правилам.
§ 10.6. ПЕРЕХОД ОТ ДАННЫХ К КОНЕЧНОМУ АВТОМАТУ
Таблиц переходов и состояний явля тся методом программирования не только для задач, сводящихся к конечным автоматам. При обсуждении синтаксических таблиц и XML/XSL подхода к задаче стандартизованного представления таблиц переходов были указаны возмо ности применения методики оперирования со структурными представлениями данных и программ для более ирокого класса алгоритмов.
Однако мы пока не решали задачи, когда какое-либо представление алгоритма зависит от входных даннх. Эта задача расклассифицирована для автоматов как задача динамического порождения автомата (см. § 10.5, пункт 3 на стр. 613). онечно е, под таким углом зрения мо но рассматривать трансляци : текстовый файл на входном язке есть часть данных, фиксирующая план обработки другой части данных, которая предъявляется для решения конкретной задачи. Задача специализации универсальной программы (см. § 3.9.3) также может рассматриваться как уточнение общего плана, исходя из частичного знания обрабатваемх данных. помянутые случаи ха-рактеризу тся тем, что представление алгоритма, зависяее от части входных данных, строится из заранее определенных заготовок. Например, для трансляции такими заготовками являются алгоритмы выполнения абстрактно-синтаксического представления программы.
В данном разделе показан иной метод построения алгоритма, зависяего от входных данных. Его идея не в компиляции некоего объектного кода из заготовок, комбинируемых по принципу домино, а прямом составлении такого представления алгоритма, которое допускает непосредственную интерпрета-ци . Естественный путь демонстрации метода — взять за основу известнй класс алгоритмов, конкретнй представитель которого вбирается, исходя из знания о входных даннх.
Предыдущая << 1 .. 213 214 215 216 217 218 < 219 > 220 221 222 223 224 225 .. 316 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100