скачать рефераты
  RSS    

Меню

Быстрый поиск

скачать рефераты

скачать рефератыРеферат: Разработка конвертора из текстового формата nroff в гипертекстовый формат HTML

Реферат: Разработка конвертора из текстового формата nroff в гипертекстовый формат HTML

Задание.

    Разработать транслятор документов из формата nroff в формат HTML.

    1. Транслятор должен быть реализован средствами программ lex и yacc.

    2. Трансляции подлежит обособленный документ. (Один файл –один документ).

    3. В качестве тестовых примеров использовать документы из руководства ОС UNIX (man-файлы).

    4. В качестве среду разработки использовать ОС UNIX.


Введение.

В настоящее время все большее распространение находит использование для доступа к RISC‑серверам, на которых работают наиболее мощные системы САПР, вместо X-терминалов более дешевых и при этом более универсальных персональных компьютеров.

Для связи между персональными компьютерами и RISC‑серверам используются программы, эмулирующие на персональном компьютере работу X-терминалов. При этом на персональном компьютере, работающем под управлением Windows, запускается UNIX‑сессия с графическим интерфейсом пользователя (GUI). В качестве графического интерфейса может использоваться  как любой из доступных на сервере графический интерфейс, так и интерфейс Windows.

Объем данных, которыми обмениваются при этом персональный компьютер и RISC‑сервер, достаточно велик. Поэтому нередко возникает необходимость в том, чтобы выполнять часть задач не на удаленном сервере, а непосредственно на персональном компьютере. Особенно большое значение это имеет в ситуации, которая возникает в последние время все чаще - когда сервер и персональный компьютер находятся на большом удалении друг от друга и объединяются между собой не посредством прямого соединения, как это было в случае с X‑терминалом, и даже не посредством  локальных сетей, а при помощи международной сети Internet.

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

Документация в системе UNIX представлена в виде так называемых ‘manual pages’. Она просматривается с помощью команды системы UNIX ‘man’. При этом вызывается файл, содержащий требуемую документацию. Файлы, используемые командой ‘man’ написаны в текстовом формате nroff, являющимся стандартным форматом текста системы UNIX. Для чтения этих файлов также можно применять команду UNIX ‘nroff’.

Для чтения файлов, записанных в формате ‘nroff’, можно установить на персональном компьютере какую-либо из UNIX‑подобных систем и, скопировав документацию на персональный компьютер, читать ее с помощью средств системы. Но при этом теряется одно из важнейших преимуществ использования персонального компьютера – его универсальность, так как станет либо совершенно невозможно использование программ, работающих под управлением Windows (в случае полной замены операционной системы), либо для их использования потребуется перезагрузка компьютера (в случае установки двух операционных систем на одном компьютере).

Другой путь состоит в преобразовании файлов документации системы UNIX из формата nroff в какой-либо формат, чтение которого возможно на персональном компьютере. Возникает вопрос, какой формат выбрать.  К этому формату предъявляются следующие требования:

·     Тексты, записанные в выбранном формате, должны быть доступны для чтения, как минимум, на персональном компьютере под управлением Windows. Желательно также, чтобы эти тексты  можно было просматривать и на сервере под управлением UNIX.

·     Тексты должны сохранять форматирование, имеющееся в документах ‘manual pages’.

Представляется, что оптимальным будет выбор формата HTML. Этот формат просматривается с помощью программ, версии которых работают как под управлением Windows, так и под управлением UNIX. Формат HTML поддерживает широкие возможности форматирования. Кроме того, этот формат является стандартным форматом для документов во всемирной системе Internet, а, как уже говорилось, проблема, вызвавшая необходимость переноса части задач с сервера на персональный компьютер, приобретает наибольшую остроту именно при связи между сервером и рабочим местом пользователя посредством Internet. Используя формат HTML, можно сделать документацию, преобразованную из ‘manual pages’ UNIX, общедоступной, поместив ее в один из узлов сети Internet. И последнее – этот формат является открытым, в отличие от большинства форматов текста на персональных компьютерах под управлением Windows, таких как, например, формат тестового редактора Word, что делает его удобным для использования, так как тексты в открытых форматах легко создавать и редактировать при минимальной вероятности возникновения ошибки.

Существует несколько путей решения проблемы. В настоящее время созданы программы-трансляторы из формата nroff в формат HTML. Все они имеют свои преимущества и недостатки.

 Рассмотрим несколько существующих программ.

1.Программа "nroff2HTML" (автор - Р. Ричи).

Программа написана на языке "C", работает под управлением ОС "UNIX". При конвертации вставляет в текст конечного файла обязательные теги формата HTML (такие, как <HTML></html>, <HEAD></head>, <BODY></body>) и затем копирует предварительно отформатированный с помощью программы nroff текст, заключив его в пару тэгов <PRE></pre>.

2. Программа "man2html", входящая в GUI * "Gnome".

        Программа написана на языке "C", работает под управлением ОС "Linux", тесно интегрирована с GUI (графический пользовательский интерфейс) "GNOME".

        Данная программа работает не с реальными файлами, а выступает как фильтр при выводе текста с помощью программы man на экран компьютера, перенаправляя вывод в окно HTML-броузера и снабжая его при этом всеми командами, необходимыми для форматирования. Полученный на экране текст выглядит наилучшим образом, т.к. в нем сохраняются все необходимые виды форматирования и поддерживаются перекрестные ссылки. Но данная программа не может работать без пакета "GNOME", для работы которого, в свою очередь, необходима ОС "Linux".

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

При создании проекта в первую очередь следует решить второй вопрос, и, затем, выбрав принципы реализации проекта, приступить к созданию программы, способной адекватно обработать, как минимум, весь объем стандартных команд и операций формата nroff.

Согласно условиям технического задания программа должна функционировать в вычислительных системах под управлением ОС "Unix" и совместимых с ней ("Linux"). Проблема состоит в том, что исполняемые файлы ОС "UNIX" могут быть неработоспособны в среде "Linux". В то же время, многие из UNIX-подобных систем поставляются пользователю в виде текстов исходных файлов (исходников), предназначенных для компилирования. Так же и в данном случае можно передавать программу в виде исходников, снабженных программой компиляции. Это, с одной стороны, повысит переносимость программы, а с другой - позволит вносить достаточно опытному пользователю необходимые поправки и корректировки, расширяя возможности транслятора в соответствии с потребностями пользователя. При этом необходимым условием становится написание программы при помощи таких средств, которые присутствовали бы в любой UNIX-подобной ОС.

Первым очевидным элементом, присутствующим во всех таких ОС, является компилятор языка "С", на котором, собственно, и написана ОС "UNIX". Но язык "С" является достаточно сложным языком и не все пользователи знакомы с ним. В то же время, в ОС "UNIX" существуют другие средства написания программ: это генераторы программ LEX и YACC. Описание их команд настолько просто и логично, что позволяет вносить коррективы в существующую программу не имея специальной подготовки, и, возможно, даже не будучи знакомым с описанием этих средств, имея только текст исходной программы.


Nroff.

    Nroff используется для форматирования текста в операционной системе UNIX при выводе на экран монитора или на принтер. Имеет достаточно простые команды, которые и будут дальше рассмотрены.

    Команды для управления шрифтом:

  .bd            - bold font

  .ft имя_шрифта   - устанавливает шрифт

  .ps n          - устанавливает размер символа

    Команды управления страницами:

  .bp            - начать новую страницу

  .pl            - установить длину страницы

  .pn            - установить номер страницы

  .rt            - вертикальный возврат для столбцов

    Команды управления текстом:

 .ad l (r,c,b,n) - выравнивание текста влево (вправо, по центру, по ширине, без выравнивания).

  .br            - следующая строка

  .ce            - центрирование

  .fi            - заполнение

  .na            - нет управления текстом (no adjust)

  .nf            - нет заполнения (no fill)

    Вертикальные пропуски:

  .ls            - пропуск строки

 .sp         - пространство

  <blank line>   - новая строка + пропуск

    Управление строкой:

  .in            - отступ

  .ll            - длина строки

  .ti            - временный отступ

    Уже установленные переменные:

  %          - номер страницы

  dw         - день недели (1-7)

  dy         - день месяца

  mo         - месяц

  yr             - год

  ln             - текущая строка

  .c             - текущая строка от ввода

  .f         - текущий шрифт

  .i         - текущий отступ

  .j         - текущая регулировка (adjustment) текста

  .l         - длина строки

    Использование числовых переменных:

  .nr R v [i]         - присвоить числовой переменной R значение v с необязательным инкрементом i

  .af R c        - установить формат числовой переменной (1,01,i,I,a,A)

  \nx            -использовать регистр x

  \n(xy      - использовать регистр xy – две буквы

  \n+x           - добавить инкремент, а затем использовать

  \n-(xy     - вычесть инкремент, а затем использовать

    Использование строковых переменных:

  .ds R str      - присвоить переменной R содержимое str

  .as R str      - дописать str в конец строковой переменной R

  \*x            - использовать регистр x

  \*(xy      - использовать регистр xy – две буквы

  \w’string’     - размер строки

    Комментарии:

  \” комментарий

    Макросы:

  .de xx     \” –начало определения макроса

  Today is \ \$1 the \ \$2.

  ..         \” –конец определения макроса

Использование макроса:

  .xx  Monday 14th

Получится: Today is Monday the 14th

 


                      HTML.

    Простота документов заключается в следующем: текст, который нужно обработать или применить к нему какое-то действие, находится между так называемыми тэгами, соответственно открывающим и закрывающим. Общий вид тэгов: <TAG_NAME> </tag_name>. Приведу основные тэги языка HTML. Поскольку обычно HTML-документ используется в качестве Web-страницы, то в дальнейшем вместо термина HTML-документ будет использоваться термин Web-страница.

    <COMMENT> </comment> - текст комментария. Существует ограничение – внутри комментария не должны располагаться другие элементы. Текст комментария не выводится браузером на экран. Также комментарий можно выделять следующим образом <!-- comment -->.

    <HTML> </html> - отличительный признак Web-страница. Имеет редко используемые атрибуты version, lang, dir. Этот тэг допускает вложение элементов HEAD, BODY, PLAINTEXT. Конечным тэгом </html> заканчиваются все гипертекстовые документы.

    <HEAD> </head> - область заголовка Web-страницы, служит для формирования общей структуры документа. Этот элемент может иметь атрибуты lang, dir и допускает вложения элементов TITLE, ISINDEX, BASE, META, LINK, NEXTID.

    <TITLE> </title> - элемент для размещения заголовка Web-страницы. Строка текста, расположенная внутри, отображается не в документе, а в заголовке окна броузера.

    <STYLE> </style> - описание стиля некоторых элементов Web-страницы. Например, элемент <STYLE> H2 {font-family: Arial;} </style> определяет стиль шрифта в элементе H2.

    <BODY> </body> - заключает в себе гипертекст, который собственно определяет Web-страницу, отображаемую броузером. Внутри этого элемента можно использовать все элементы, предназначенные для дизайна Web-страницы. Внутри стартового тэга можно располагать ряд атрибутов, обеспечивающих установки для всей страницы целиком. Атрибуты:

  background=”Путь к файлу фона”

  bgcolor=”#RRGGBB” – здесь три 2-разрядных 16-ричных числа, которые    определяют интенсивность красного, зеленого и синего цветов. 

  text=”#RRGGBB” – цвет текста страницы

  link=”#RRGGBB” – цвет гиперссылки

  vlink=”#RRGGBB” – цвет использованных гиперссылок

  alink=”#RRGGBB” – цвет последней выбранной пользователем ссылки

    <H1> </h1> - элемент заголовка. Существует 6 уровней заголовков, которые обозначаются H1..H6. Заголовок уровня 1 – самый крупный, уровень 6 – самый маленький. Для этого элемента можно использовать атрибут, задающий выравнивание влево, по центру или вправо:

  align=”left” (“center”, “right”).

    <HR> - горизонтальная линия. Этот элемент не имеет конечного тэга, но допускает ряд атрибутов:

  align=”left” (“center”, “right”, “justify”) – выравнивание влево, по центру, вправо, по ширине.

  size=толщина в пикселях – толщина линии

  width=длина в пикселях

  width=длина в процентах%

  color=”Цвет”

Варьируя параметры длины и толщины можно представлять линию в виде прямоугольника.

    <A> </a> - гиперссылки. Частный случай – шаблон для создания меток: <A name=”Метка”></a>

   

    <BASE> - элемент для создания базового адреса (UR) для ссылок.

   

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

    <P> </p> - элемент абзаца (paragraph). В принципе позволяет использовать только начальный тэг, так как следующий элемент Р обозначает конец предыдущего и начало следующего абзаца. Вместе с этим элементом используются атрибуты:

  align=”left” (“center”, “right”)

    <BR> - элемент, обеспечивающий принудительный переход на новую строку. Имеет только стартовый тэг. Строка заканчивается в месте его размещения.

    <NOBR> </nobr> - элемент противоположный предыдущему. Текст, заключенный между его тэгами, будет выведен в одну строку. Если строка будет слишком длинна придется использовать горизонтальную полосу прокрутки броузера.

    <PRE> </pre> - элемент для обозначения текста, отформатированного заранее (preformatted).

    <BLOCKQUOTE> </blockquote> - обозначение цитаты. Этот элемент требует наличия конечного тэга. Текст не претерпевает никаких изменений, но абзац располагается с отступом. В настоящее время существует сокращенное написание этого элемента: BQ.

    <CENTER> </center> - элемент для центрирования текста, а точнее любого содержимого. Принято, когда это возможно использовать вместо этого элемента атрибут align=”center”

    <DIV> </div> - элемент, похожий на предыдущий, позволяет выравнивать содержимое по левому, правому краю или по центру. Для этого стартовый тэг должен содержать атрибут:

  align=”left” (“center”, “right”)

    <B> </b> - выделение текста полужирным шрифтом.

    <BIG> </big> - увеличенный размер шрифта

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9


Новости

Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

  скачать рефераты              скачать рефераты

Новости

скачать рефераты

© 2010.