AKDiplom (664591)

Файл №664591 AKDiplom (Разработка конвертора из текстового формата nroff в гипертекстовый формат HTML)AKDiplom (664591)2016-07-31СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла

Задание.

Разработать транслятор документов из формата 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 (такие, как , , ) и затем копирует предварительно отформатированный с помощью программы nroff текст, заключив его в пару тэгов

.

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 - пространство

- новая строка + пропуск

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

.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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

Характеристики

Тип файла
Документ
Размер
438,5 Kb
Тип материала
Учебное заведение
Неизвестно

Тип файла документ

Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.

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

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

Список файлов реферата

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6499
Авторов
на СтудИзбе
303
Средний доход
с одного платного файла
Обучение Подробнее