Реферат: Программное обеспечение удалённого доступа к технической документации

Наиболее известными и распространенными программами в настоящее время являются следующие:

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

Программа написана на языке “C”, работает под управлением ОС “UNIX”.

Работает с исходными текстами в формате nroff. При конвертировании вставляет в текст конечного файла обязательные теги формата HTML (такие, как , , ) и затем копирует исходный текст, уничтожая все команды nroff, предварительно отформатировав его с помощью тега

. В результате получается сплошной текст.

  1. Программа “gnome-man2html”, входящая в графический интерфейс пользователя “GNOME”.

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

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

  1. Программа “hypernroff” (автор К. Садовски).

Программа написана на языке “C”, работает под управлением ОС “UNIX”.

В качестве входного и выходного потоков используется стандартный поток ввода вывода. Позволяет принимать информацию из файлов и выводить ее в файл посредством перенаправления потоков, доступном в среде UNIX. Вставляет в текст конечного файла обязательные теги формата HTML. Поддерживает некоторые виды управления текстом, такие, как выравнивание (по левому и правому краям, по центру). Все форматирование осуществляется заменой пробелов, при помощи которых форматируется текст в формате nroff, на символ формата HTML “nbsp” - неразрывный пробел. Изменение шрифтов, подчеркивание, курсив не поддерживаются.

  1. Программа “man2html” (автор Р. Верховен).

Программа написана на языке “C”, работает под управлением ОС “FreeBSD”. Под управлением других разновидностей ОС “UNIX” не полностью работоспособна. Существует cgi-скрипт “vh-man2html” (автор М. Гамильтон), обеспечивающий вызов программы и выдачу результатов ее работы в html-броузере.

Работает с исходными текстами в формате nroff. Поддерживает макросы man-1.4 и формат BSD-mandoc (разновидность nroff). Вставляет в текст конечного файла обязательные теги формата HTML. Поддерживает различные виды управления текстом, в том числе таблицы. Замена шрифтов не производится. Не вставляются перекрестные ссылки, хотя скрипт “vh-man2html” сильно облегчает поиск необходимых файлов.

Ни одна из этих программ не удовлетворяет нашим требованиям, так как нам необходимо сохранять максимально полный объем форматирования (что дает нам программа “gnome-man2htmnl”), добившись переносимости программы и максимальной ее независимости от наполнения операционной среды (программа “gnome-man2htmnl” является непереносимой, она функционирует только под управлением системы Linux). Главным недостатком всех рассмотренных программ является их ориентация на работу непосредственно на одном рабочем месте, без использования сетевых технологий. Этим объясняется, например то, что ни одно из программ не поддерживает замену шрифтов X Window System на шрифты операционной системы Windows.

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

1.3 Выбор способа реализации транслятора.

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


Заключение.

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

2. Проектирование транслятора

Проектирование программы транслятора с использованием генераторов программ Lex и Yacc имеет свои особенности, независящие от конкретных форматов, с которыми будет работать разрабатываемый транслятор.

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

2.1 Схема разработки транслятора.

Сначала с помощью генератора программ Lex строится лексический анализатор. В задачу лексического анализатора входит полное поглощение входного файла (потока) и передача в синтаксический анализатор найденных лексем, а также некоторых необходимых данных. Например, может быть найдена некоторая лексема NUMBER, а в качестве данных будет передано числовое значение найденного числа или цифры, либо возможна ситуация при которой в качестве лексемы выбирается команда, а данные, сопутствующие этой команде, передаются не как лексемы, а каким-либо другим путем.

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

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

Компиляция модулей (лексического анализатора, синтаксического анализатора и головной программы) происходит в следующем порядке:

  1. Спецификация синтаксического анализатора с помощью генератора программ Yacc преобразуется в программу на языке C. При этом создается файл с описанием лексем, обрабатываемых синтаксическим анализатором.

  2. Спецификация лексического анализатора с помощью генератора программ Lex преобразуется в программу на языке C. Имена лексем определяются в подключаемом файле, полученном на предыдущем этапе.

  3. Компилируется с помощью компилятора языка C головная программа, вызывающая синтаксический анализатор. При компиляции подключаются лексический анализатор и синтаксический анализатор (программы на языке C). Компиляция происходит с использованием стандартных библиотек.

2.2 Принципы построения лексических анализаторов.

Лексический анализатор выполняет первую стадию трансляции - читает строки транслируемого текста, выделяет лексемы и передает их на дальнейшие стадии трансляции (грамматический разбор, синтаксический анализ).

К-во Просмотров: 205
Бесплатно скачать Реферат: Программное обеспечение удалённого доступа к технической документации