Блог → Группы базовых функций для текстовых процессоров

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

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

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



Нижний уровень иерархии составляют редакторы (ТП уровня 1) для ввода и сборки текстов программ. Основное требование пользователя на этом уровне, прямо влияющее на производительность труда - удобные средства работы с блоками текста, позволяющие быстро размножать повторяющиеся фрагменты программ, и составлять её из частей других программных файлов. Этими средствами вполне обладают текстовые редакторы Personal Editor II (IBM), Kedit (Mansfield Software Group), Norton Editor (S. Reifel & Co.), Ted Programming Editor (Morgan Соrp.), а также встроенные редакторы систем программирования Turbo (Borland International), Quick (Microsoft) и многие другие.

Для подготовки статей с однородным текстом (без графики и сложных формул) нужно дополнить функции текстовые процессоры первого уровня, как минимум, средствами форматирования абзацев (включая перенос и выравнивание по правому краю текста) и разбивки текста на страницы (до или во время печати). Хороший пример - многофункциональные редакторы MultiEdit 2.01 (American Cybernetics) и MultiMate (Ashton-Tate). Отмечу также чрезвычайно популярный WordStar 2000 v.2.0 (MicroPro Int. Corp), который умеет выравнивать строки по правому краю при наборе текста, и популярный некогда в России процессор Lexicon (ВЦ АН СССР), качественно переносящий слова по правилам русского языка.

Оформление статей со сложными рисунками и формулами, газетных полос уже требует ТП более высокого класса, которые помимо функций второго уровня, обеспечивают, по крайней мере, средства включения в текст графики и поддержки нескольких алфавитов. Смешивание текста и графики обеспечивает, например, редактор Write, входящий в состав операционной системы Microsoft Windows (Microsoft), Word (тоже Microsoft), обладающий функциями и более высоких уровней, а также ChiWriter v.2.12 (Horstman Software Design). В то же время фирма Valid Logic, предпочла путь создания сервисных средств к существующим процессорам текста. Для уже упомянутого редактора WordStar 2000 (MicroPro Int. Corp.) этой фирмой разработан специальный интерфейс, позволяющий включать графики и рисунки в текст. Графический редактор этой фирмы дает возможность корректировать графику после внесения ее в текстовый документ.

Добавление к возможностям второго уровня, поддержки особых файлов с адресными данными, как, например, в ТП "Документ 16" (совместный советско-болгарский институт Интерпрограмма), упрощает работу по составлению приказов и деловых писем с повторяющимся содержанием. Пример подобной специализации - редактор MathCAD (MathSoft Inc.), в котором не только обеспечивается богатый набор математических символов, но и предусмотрен режим автоматического построения графиков поязаданным функциям и включения их в текстовый файл.

Текстовые процессоры четвёртого уровня предназначены для подготовки книг, журналов в целом, и должны обеспечивать обработку больших файлов и сборку оглавления. Подобные функции предусмотрены в развитых продуктах, таких как T3 (ADA Computer und Periphery), Microsoft Word, MultiEdit, Lexicon.

Последний в предлагаемой иерархии уровень связан с составлением научно-технической документации (по объёму часто сравнимой с книгами). Помимо возможностей предыдущих уровней способен вносить в текст колонтитулы, поддерживать листы изменений и составлять предметные указатели. Пример - настольные издательские системы, типа Xerox Ventura Publisher (Xerox Corp.). Ими обладают также упомянутые ранее мощные процессоры текста, такие как Microsoft Word и MultiEdit.

Приведенная мной структура, безусловно, не содержит всех необходимых свойств проектируемого софта, и в конкретных случаях, требует дополнения. Так, для первого уровня весьма желателен выход в Turbo- или Quick-компилятор. Третий уровень предполагает возможность работы со структурным текстом (гипертекстом), а уровни 4 и 5 - связь с фотонаборным оборудованием.

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

Приведу пример. Давайте оценим, в соответствии с предложенной иерархической структурой, возможности распространённого экранного редактора Personal Editor II (IBM). Для краткости обозначим его как РЕ2. Данный редактор обладает всеми функциями ТП первого уровня и позволяет удобно набирать тексты программ, а также конструировать их из фрагментов готовых программ. Средства форматирования абзацев, печати текста и обращения к функциям DOS из среды редактирования позволяют работать с данным редактором, как с текстовым процессором уровня 2, в частности - готовить деловые бумаги и статьи, без сложных формул и графики. Однако для полного соответствия второму уровню, необходимо выполнение ещё как минимум, двух функций: выравнивания строк по правой границе поля и автоматического разбиения текста на страницы.

Для реализации недостающих функций разработана сервисная утилита-форматизатор TF (по объёму составляет 3% от "веса" редактора), которая позволяет работать с редактором РЕ2, как с текстовым процессором второго уровня. Утилита TF обрабатывает текст, подготовленный редактором РЕ2 и помещенный в файл с расширением .TXT, при этом все строки текста выравниваются по правому краю за счет вставки дополнительных пробелов, равномерно распределенных между словами строки. Не выравниваются однострочные предложения; последние строки абзацев; строки, помеченные пользователем точкой в первой позиции. Точка -единственный управляющий символ форматизатора TF. Таким образом, форматизатор не усложняет общую структуру управления редактором РЕ2. Обработанный текст помещается в файл с расширением .LST, причем точки первой позиции заменяются пробелами.

Командная строка для запуска форматизатора имеет вид: tf filename, где filename - имя файла (без расширения) с исходным текстом. Указав в командной строке для форматизатора TF ключ /Р, можно получить текст, разбитый на страницы. После каждой страницы в текст включаются символы перевода формата (X'OC'), а в начале второй и следующих страниц - помещается номер страницы.

Форматизатор получает в начале работы два параметра: правую границу поля текста и число строк на странице. Параметры вводятся пользователем в ответ на запрос. При этом можно задать новые значения либо оставить стандартные (70,58). Первый параметр должен совпадать с установленной для редактора РЕ2 правой границей текста. Если форматизатор TF обнаружит строчку большей длины, то на экране появится текст строки вместе с сообщением об ошибке.

Каждая строка текста, требующая выравнивания, просматривается форматизатором дважды. В среднем текстовый файл из 500 строк обрабатывается за 50 с на относительно слабом компьютере, и за 30 секунд - на компьютере типа IBM PC/XT. Размер файла TF.EXE составляет всего 2480 байт.

Какие же выводы можно сделать? Я предложил иерархический принцип классификации текстовых процессоров, соотносящий область приложения и основной набор необходимых пользователю функций текстового процессора. Такой подход при разработке новых продуктов, на мой взгляд, помогает разумно ограничить возможности проектируемого изделия и, следовательно, стоимость разработки. В соответствии с этим подходом дана оценка распространенного редактора текстов Personal Editor II (IBM) для машин типа IBM PC. Предложен простой и компактный форматизатор TF, который превращает редактор РЕ2 в процессор текста более высокого уровня.