diplom (664366), страница 4
Текст из файла (страница 4)
Для вывода в выходной поток тэга
- команда перевода строки – применяется специальная функция breakline(). Необходимость такого шага обусловлена тем, что в nroff существует команда ".ls", которая определяет, сколько пустых строк выводится по команде ".br" (аналогом которой является тег
). При поступлении лексемы, соответствующей команде ".ls" значение ее аргумента присваивается переменной LS, которая определяет сколько раз подряд выведется тэг
в выходной файл.
Замена шрифтов осуществляется при помощи функции fontchange(). В качестве аргумента ей передается имя шрифта, используемого в исходном документе. Имя шрифта, на который будет заменен данный шрифт определяется по специально созданной таблице, хранящейся во внешнем файле. В случае, если замена не определена, подставляется шрифт по умолчанию.
Особо надо оговорить обработку команды nroff ".ex". При получении лексемы, соответствующей этой команде, синтаксический анализатор завершает свою работу, возвращая в головную функцию значение "0", свидетельствующее о нормальном завершении работы.
3.3 Соответствие между командами форматов
nroff и HTML.
Точного соответствия между текстовым форматом nroff и гипертекстовым форматом HTML нет.
Главным отличием является то, что формат HTML ориентирован на использование его в локальных или глобальных сетях, а формат nroff - на использование только для чтения документов.
Формат HTML поддерживает больше видов форматирования текстов, гипертекстовые ссылки, включение в текст графики, запуск внешних программ и многое другое.
Формат nroff подразумевает постраничный вывод на экран, а формат HTML - вывод сплошным потоком с возможностью последующей прокрутки окна просмотра.
Так как нас интересует, прежде всего, преобразование команд формата nroff в команды формата HTML, то имеет смысл рассмотреть команды исходного формата и определить, какие команды им будут соответствовать в конечном формате:
nroff | HTML | Описание |
Комментарии | ||
\” | Комментарий | |
Команды для управления шрифтом | ||
.bd |
| Жирный шрифт |
.ul |
| Подчеркивание |
.ft font_name | Устанавливает шрифт | |
.ps n | Устанавливает размер символа |
nroff | HTML | Описание |
Команды управления текстом | ||
.br | Следующая строка | |
.ce |
| Центрирование |
.ad x | Выравнивание текста | |
.na |
| Нет управления текстом |
.sp | Пустое пространство |
В HTML не поддерживаются следующие команды, имеющиеся в формате nroff:
nroff | Описание |
Команды управления страницами | |
.bp | начать новую страницу |
.pl | установить длину страницы |
.pn | установить номер страницы |
.ll | длина строки |
Для вывода текста в виде, максимально близко к исходному, в конечном формате иногда необходимо использовать не одну команду, а комбинацию команд:
Nroff | HTML | Описание |
.rt |
| |
вертикальный возврат для столбцов
.nf
нет заполнения
.in
…
отступ
.ti
…
временный отступ
.ls
пропуск строки
При создании документа в формате HTML необходимо вставлять обязательные тэги:
HTML | Комментарий |
Признак HTML-документа. Весь текст, помещенный между этими тэгами обрабатывается в соответствии с форматом HTML. Закрывающий тэг служит признаком конца документа и выводится при нахождении команды nroff .ex | |
Область заголовка HTML-документа, служит для формирования общей структуры документа. | |
Заголовок HTML-документа. Вставляется имя конвертируемого файла. | |
Заключает в себе гипертекст, который, собственно и выводится в окне броузера. | |
Гиперссылка. Этими тэгами обрамляются ссылки на другие документы. Предполагается, что они располагаются в том же каталоге, что и открытый документ и имена файлов имеют расширение .html | |
Элемент для создания базового адреса для ссылок. Если документы и программа‑транслятор находятся в разных каталогах, то это тэг определяет местонахождение каталога с документами. |
3.4 Отладка лексического и грамматического анализаторов.
Отладка происходит в два этапа – отладка лексического анализатора и отладка системы из лексического и синтаксического анализаторов.
Для отладки используется метод пошагового просмотра работы анализаторов. Для этого создан специальный оператор (посредством команды #define языка С), выводящий сообщение о состоянии анализатора (имя обрабатываемой лексемы и состояние различных переменных).
При отладки лексического анализатора возможно использование тестовых пакетов – текстов в формате nroff, а также интерактивное тестирование, когда анализатор принимает информацию из стандартного ввода (с клавиатуры) и выдает результаты на стандартный вывод (экран монитора).
Для проверки правильности написания правил синтаксического анализатора генератор программ Yacc на этапе тестирования запускается с ключом ‑d по которому создается файл с деревом разбора.
Заключение.
Создана программа-транслятор из формата nroff в гипертекстовый формат HTML.
Программа выводит пустые обязательные теги формата HTML и преобразует текст из формата nroff в формат HTML. Полностью поддерживается стандартный набор команд формата nroff. Реализована большая часть команд различных пакетов макросов, наиболее полно реализован пакет макросов “man”.
Порядок работы с программой-транслятором ut4all таков: на вход программы подается текстовый файл в формате nroff, а на выходе получаем текстовый файл в формате HTML. Имена текстовых файлов передаются в качестве аргумента, причем первым аргументом является имя входного файла, а вторым – имя выходного. В случае отсутствия одного или обоих аргументов в качестве входного и выходного потоков используются стандартные потоки. Если входного файла не существует, то выдается сообщение об ошибке, если не существует выходного файла, то он создается.
Сообщения об ошибках направляются в стандартный поток ошибок.
4. Экономическое обоснование разработки НИОКР.
4.1 Расчет затрат времени на разработку транслятора.
4.1.1. Для начала необходимо определить продолжительность создания транслятора. Определим весь перечень работ по всем этапам разработки информационной системы.
Этапы создания транслятора:
Этап 1: | Техническое задание. |
Получение задания, его обработка, а также согласование задания и его деталей с консультантом. | |
Этап 2: | Техническое предложение. |
Изучение ОС Unix и ее компонент – lex, yacc. | |
Этап 3: | Эскизное проектирование. |
Изучение подходов к написанию трансляторов. | |
Этап 4: | Техническое проектирование. |
Разработка алгоритмов решения задачи. | |
Этап 5: | Рабочий проект. |
Разработка структуры программного обеспечения. | |
Этап 6: | Изготовление опытного образца. |
Непосредственно программирование. | |
Этап 7: | Испытание опытного образца. |
Отладка программы | |
Этап 8: | Оформление документации. |
Оформление документации. |
По формуле 1.1 рассчитывается ожидаемое время выполнения каждой работы .
- минимальная продолжительность работы, т.е. время, необходимое для выполнения работы при наиболее благоприятном стечении обстоятельств (час, дни, недели и т.д. );
- максимальная продолжительность работы т.е. время, необходимое для выполнения работы при наиболее неблагоприятном стечении обстоятельств (час, дни, недели и т.д. )
Для определения возможного разброса ожидаемого времени определяется дисперсия (рассеивание)
Составим таблицу значений
по каждой работе каждого этапа:
Таблица 1.1.
Этапы | дн | дн | дн | |
1 | 5 | 10 | 7 | 1 |
2 | 40 | 50 | 44 | 4 |
3 | 4 | 5 | 4,4 | 0,04 |
4 | 5 | 8 | 6,2 | 0,36 |
5 | 4 | 6 | 4,8 | 0,16 |
6 | 50 | 60 | 54 | 4 |
7 | 17 | 21 | 18,6 | 0,64 |
8 | 6 | 7 | 6,4 | 0,04 |
Всего | 131 | 167 | 145,4 |
Исполнитель для всех этапов один, т.е. возможно только последовательное выполнение всех работ.
4.2 Расчет стоимости основных фондов, используемых для разработки транслятора.
Первоначальная (балансовая) стоимость складывается из всех затрат, связанных с приобретением, сооружением и строительством основных производственных фондов.