Реферат: Разработка конвертора из текстового формата nroff в гипертекстовый формат HTML
size=абсолютный размер шрифта – этот атрибут может принимать значение от 1 до 7.
Также размер шрифта может задаваться относительно базового:
size=+число (-число)
Атрибут цвета:
color=”Цвет”
Тип шрифта:
face=”название шрифта”.
Также в HTML можно использовать таблицы, списки, ссылки, рисунки, различные формы, а также подключаемые апплеты и некоторые другие элементы. Но поскольку nroff не поддерживает подобные элементы, они не рассматриваются в данной работе. Более подробно узнать о них можно в литературе, посвященной HTML.
Вид документа в разных форматах.
Для наглядности приведу пример текстового документа с различными приемами форматирования текста, а затем представлю его в обоих рассматриваемых форматах (nroff и HTML).
Результирующий текст (тот, который мы хотим видеть на экране):
Это пример текстового документа
Здесь показаны некоторые возможности форматирования текста
Пропуск строки
Работа с расположением текста:
Выровнять по левому краю
Выровнять по центру
Выровнять по правому краю
Есть также команды, позволяющие работать со шрифтами:
Обычный шрифт
Другой (вызванный) шрифт
Подчеркнутый текст
Подчеркнутый отцентрированный текст
Представим теперь этот текст в формате nroff.
.ft Times New Roman
.ad l
.nf
Это пример текстового документа
.br
Здесь показаны некоторые возможности форматирования текста
.sp
Пропуск строки
.sp
Работа с расположением текста:
.ad l
Выровнять по левому краю
.ad c
Выровнять по центру
.ad r
Выровнять по правому краю
.br
Есть также команды, позволяющие работать со шрифтами:
.br
Обычный шрифт
.br
.ft Arial
Другой (вызванный) шрифт
.ft Times New Roman
.br
.ul 1
Подчеркнутый текст
.ce 1
.ul 1
Подчеркнутый отцентрированный текст
Как видно из примера, каждой строке предшествует определенная команда. Команда отсутствует в том случае, если над текстом не надо производить никаких дополнительных действий. Поясню некоторые команды.
.ft Times New Roman – установка для документа определенного шрифта (а позже его временная смена на шрифт Arial)
.ad l (c, r) – выравнивание текста по левому краю (центру, правому краю)
.sp – пропуск строки
.br – начало новой строки
.ul 1 – подчеркивание следующей (одной) строки
.ce 1 – центрирование следующей (одной) строки
Это простейший пример, в принципе, возможности формата nroff значительно шире. Используя весь набор команд nroff, можно достаточно полно применять разные способы и приемы форматирования текста.
А теперь представим тот же документ, но уже в формате HTML.
<HTML>
<BODY>
Это пример текстового документа<BR>
Здесь показаны некоторые возможности
форматирования текста <BR>
<BR>
Пропуск строки<BR>
<BR>
Работа с расположением текста:
<P align="left">Выровнять по левому краю
<P align="center">Выровнять по центру
<P align="right">Выровнять по правому краю</p>
<BR>
Есть также команды, позволяющие работать со
шрифтами:<BR>
Обычный шрифт<BR>
<FON T face="Arial">Другой(вызванный)шрифт
</font><BR>
<U>Подчеркнутый текст</u>
<P align="center"><U>Подчеркнутый
отцентрированный текст</u></p>
</body>
</html>
Также как и с предыдущим форматом, поясню некоторые команды и конструкции языка.
<HTML> … </html> - эти тэги говорят о том, что мы имеем дело с документом в формате HTML
<BODY> … </body> - между этими тэгами находятся все команды, а также текст HTML-документа.
<BR> - начало новой строки
<P> … </p> - начало и конец нового абзаца
align=”left” (center, right) – используется для указания типа выравнивания текста: по левому краю, центру или правому краю.
<FONT> … </font> - между этими тэгами текст выводится другим шрифтом, указанным в конструкции:
face=”font_name”
<U> … </u> - выводит подчеркнутый текст
Аналогично с форматом nroff, возможности HTML намного шире представленных в этом примере.
Стоит также отметить тот факт, что в целом формат HTML богаче формата nroff. В связи с этим при разработке программы-транслятора использовалась лишь та часть HTML, которая необходима для создания конструкций, аналогичных конструкциям созданным в формате nroff.
Контекстно-зависимые и контекстно-независимые грамматики.
Задача разработки транслятора соприкасается с дисциплиной, именуемой лингвистическое обеспечение САПР, некоторые положения которой мы и рассмотрим.
Прежде всего стоит отметить, что различают два основных типа грамматик: контекстно-зависимые и контекстно-независимые.
Если порождающее правило имеет следующий вид:
aAb ::= axb,
то порождающее правило называется контекстно-зависимым, то есть замена нетерминального символа A на последовательность x может иметь место только в контекстах a и b. Соответственно, и грамматика, содержащая подобное правило, называется контекстно-зависимой.
Если порождающее правило имеет вид:
A ::= x, где A – нетерминальный символ, а x - терминальный или нетерминальный. То есть, если левая часть порождающего правила состоит из одного нетерминального символа, который в итоге (через ряд промежуточных шагов) может заменяться на последовательность x, стоящую в правой части, независимо от контекста, в котором этот нетерминальный символ встречается, то такое правило и, соответственно, грамматика называются контекстно-независимыми.
В нашей задаче грамматика является контекстно-независимой (или как ее еще называют контекстно-свободной), поэтому более подробно стоит остановиться именно на ее описании.
Контекстно-свободные грамматики.
Существует несколько основополагающих терминов в теории грамматик. Нетерминальный символ (нетерминал) – описываемые элементы. Например, при определении языков программирования нетерминалами служат <оператор>, <арифметическое выражение> и т.п. В контекстно-свободной грамматике может быть любое конечное число нетерминалов.
Слова из словаря языка играют роль терминальных символов (терминалов). Контекстно-свободная грамматика может также содержать любое конечное число терминалов. В языках программирования терминалами являются фактически используемые в них слова и символы: do, else, + и т.п.
Правила грамматики иногда называются продукциями и в общем виде выглядят так:
Один_нетерминал à любая конечная цепочка из терминалов и нетерминалов.
При этом цепочка справа от стрелки может быть и пустой. Например,
<A> à x
Иногда подобные правила называют эпсилон-правилами. Контекстно-свободная грамматика может содержать любое конечное множество продукций. В качестве иллюстрации вернусь к описанию языка программирования. Продукция тогда выглядит так:
<оператор> à IF <логическое_выражение> THEN <оператор>
Один из нетерминалов выделен как начальный нетерминал или начальный символ, с которого должны начинаться выводы цепочек языка. Для языков программирования таким нетерминалом может быть <программа>. Обычно начальный символ обозначают <S>.
Итак, контекстно-свободная грамматика будет задаваться:
1) конечным множеством нетерминалов;
2) конечным множеством терминалов, которое не пересекается с множеством нетерминалов;
3) конечным множеством правил вида <A> à a, где A – нетерминал, а a - цепочка терминалов и нетерминалов (возможно, пустая); нетерминал <A> называется левой частью правила, а a - правой частью;
4) одним нетерминальным символом, выделенным в качестве начального.
Если множество правил приводится без специального указания множества терминальных и нетерминальных символов, то предполагается, что грамматика содержит в точности те терминалы и нетерминалы, которые встречаются в правилах.
Для описания грамматик очень часто используют способ записи, получивший название формы Бэкуса-Науэра или БНФ. Здесь символ à заменяется символом ::=, за которым может следовать любое число правых частей, разделенных вертикальной чертой |. Здесь также нетерминалы заключаются в угловые скобки.
Правила грамматики используют для того, чтобы задавать способы подстановки или замены цепочек. Подстановка осуществляется путем замены некоторого нетерминала в какой-нибудь заданной цепочке терминалов и нетерминалов на правую часть правила, левой частью которого является этот нетерминал. Иногда говорят, что в таком случае правило применяется к нетерминалу цепочки.
Последовательность некоторых подстановок называется выводом. Каждая цепочка, встречающаяся в выводе, называется промежуточной цепочкой этого вывода.
Множество терминальных цепочек, которые можно вывести из начального символа грамматики, называется языком. Говорят, что язык определяется, грамматикой, порождается ею или выводится в ней. Язык, порождаемый контекстно-свободной грамматикой, также называется контекстно-свободным языком.
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15