автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.11, диссертация на тему:Организация пользовательских интерфейсов ибиблиотеки ввода-вывода в среде разработкипрограмм С-Talk
Автореферат диссертации по теме "Организация пользовательских интерфейсов ибиблиотеки ввода-вывода в среде разработкипрограмм С-Talk"
государственный комитет российской федерации _ по высшему образованию_
московский авиационный институт
ГБ ОД
На правах рукописи
8 МАИ 1995
РОГАНОВ Евгений Александрович
удк 681.03.06
Организация пользовательских интерфейсов и библиотеки ввода-вывода в среде разработки программ С~Та1к
Специальность 05.13.11 "Математическое и программное обеспечение вычислительных машин, комплексов, систем и сетей"
Автореферат диссертации на соискание ученой степени кандидата физико-математических наук
Москва 1995
Работа выполнена d Московском автомобилестроительном институте.
Научный руководитель: Официальные оппоненты:
Ведущая организация: Защита состоится
кандидат физико-математических наук, доцент Кикоть П.Б.
доктор физико-математических наук, профессор Жоголев Е.А.
кандидат физико-математических наук, доцент Чернышев Л.Н.
Вычислительный Центр Российской Академии Наук
1995г. в
часов на
заседан.ш специализированного Совета К 053.18.09 в Московском авиационном институте им. Серго Орджоникидзе.
С диссертацией можно ознакомиться в библиотеке МАИ.
Адрес института: 125871, Москва, А-80, Волоколамское ш., 4. Автореферат разослан "_"_ 1995г.
Ученый секретарь Совета кандидат физ.-мат. наук, доцент / _ ..,/ М.В. Ротанина.
Общая характеристика работы
Актуальность темы. Предметом диссертационной работы является разработка и реализация библиотеки пользовательских интерфейсов и системы ввода-вывода среды С-Talk. С Tall: — многоязычная среда, предназначенная для разработки больших программных систем и обучения программированию. Она состоит из одноименного объектно-ориентированного языка, подсистемы разработки и сопровождения программ и обширной библиотеки классов, включающей средства создания текстового и графического интерфейсов, объектно-ориентированную распределенную СУБД, средства многопоточной обработки, алгоритмы численных и символьных вычислений.
Задача создания пользовательских интерфейсов является одной из важнейших задач, возникающих при разработке современного программного обеспечения. Она приобретает ряд особенностей при разработке среды, позволяющей организовать эффективный процесс обучения объектно-ориентированному программированию на рабочих станциях с большим числом алфавитно-цифровых и графических терминалов, связанных в локальную сеть и функционирующих, как правило, под управлением ОС UNIX.
В объектно-ориентированной среде библиотека классов пользовательских интерфейсов должна предоставлять возможности для создания специализированных средств визуализации и редактирования объектов системных и прикладных типов. Необходимы обеспечение возможности конструирования интерфейса сложных объектов из имеющихся в библиотеке классов и независимость этой библиотеки от используемой оконной системы.
При создании подобной среды неизбежно встает вопрос о системе ввода-вывода в целом. Весьма желательным свойством является возможность ее работы на базе стандартной оконной системы, например, X Window System. Однако, реальное использование в учебном процессе невозможно без наличия встроенной оконной системы, обеспечивающей работу при жестких ограничениях па такие критические ресурсы, как оперативная память и процессор. Эффективный вывод в перекрывающиеся окна, богатый набор текстовых и графических примитивов, поддержка работы с мышью — вот лишь некоторые из требований, налагаемых на оконную систему для обеспечения практической применимости. При работе с АЦ терминалами необходимы обеспечение максимальной гибкости в настройке на конкретный тип терминала и
поддержка широкого множества шрифтов в сочетании с высокой производительностью ввода-вывода.
Этим требованиям удовлетворяют разработанные в диссертации система ввода-вывода и библиотека пользовательских интерфейсов среды разработки программ (СРП) C~Talk.
Цели и задачи работы. Основные задачи диссертации могут быть сформулированы следующим образом:
• анализ требований, предъявляемых к системе ввода-вывода в объектно-ориентированной среде С-Talk,
• создание библиотеки классов на языке C~Talk, обеспечивающей функционирование системы ввода-вывода на рабочих станциях с большим числом терминалов;
• разработка оконной системы, поддерживающей работу как с графическими так и с АЦ терминалами;
• разработка библиотеки классов пользовательских интерфейсов СРП С-Talk, предназначенной для создания специализированных средств визуализации и редактирования объектов простой и сложной структуры.
Методы исследования. При выполнении работы были использованы методы объектно-ориентированного программирования, теории алгоритмов, вычислительной геометрии, баз данных, динамического программирования, теории индуктивных функций на пространстве последовательностей, теории языков, общей теории перевода и нозврат-ных конечных преобразователей.
Научная новизна. Научная новизна работы заключается в следующем:
• разработка архитектуры системы ввода-вывода, базирующейся на схеме "Командный процессор — Редактор — Хранилище — Визуализатор - - Окно";
• разработка и реализация объектно-ориентированной базы данных описания АЦ терминалов Gawinf о в виде библиотеки классов на языке С Talk,
• решение задачи оптимизации вывода графической информации на матричный принтер;
• разработка алгоритма инкрементального отображения документов сложной структуры при редактировании их текстового описания;
» создание оригинального программного обеспечения, обеспечивающего функционирование системы ввода-вывода СРП С- Talk.
Практическая ценность. Объектно-ориентированная среда разработки программ С-Talk, включающая в себя систему ввода-вывода и средства создания текстового н графического интерфейсов, реализована на графической рабочей станции БЕСТА-90 под управлением ОС UNIX System V и UNIX BSD. В настоящее время она активно используется студентами 1 - 3 курсов специальности Программное обеспечение вычислительной техники и автоматизированных систем Московского автомобилестроительного института. На основе предыдущей версии среды С-Talk была разработана доведенная до уровня исследовательского прототипа система автоматизации деятельности лечебного учреждения "Доктор КОМП".
Апробация работы. Основные результаты диссертации докладывались и обсуждались на:
в научно-исследовательском семинаре "Теория и практика программирования" в МАСИ (1990-1994гг.);
• научном семинаре механико-математического факультета МГУ (1993г.);
» научно-исследовательском семинаре в МАИ (1994г.); в научном семинаре факультета вычислительной математики и кибернетики МГУ (1994г.);
• научном семинаре ВЦ РАН (1991г.).
Публикации. По теме диссертации опубликовано б научных статей.
Объем работы. Диссертация состоит из введения, 5-и глав, заключения, списка литературы, содержащего 83 наименования, и двух приложений. Машинописных страниц основного текста — 162, рисунков -- 17, таблиц — 16, объем приложений — 36 страниц.
Содержание работы
Во введении диссертации обосновывается актуальность работы, описываются ее основные пели и задачи. Здесь же излагается общая структура диссертации.
Первая глава посвящена исследованию систем ввода-вывода в объектно-ориентированных средах и тех требований, которые налагаются на систему ввода-вывода в многоязычной СРП C~Talk.
РИС. 1. Модель функционирования пользовательских интерфейсов, положенная в основу системы ввода-вывода среды разработки программ С-Та\к. Простыми и двойными стрелками показаны, соответственно, отношения "один к одному" и "один ко многим" между компонентами системы. Так, например, одно Хранилище (называемое также Информационной Моделью) может взаимодействовать одновременно с несколькими Влзуялиза.тор;шл и Редакторами, а с одним Окном могут быть ассоциированы сразу несколько Визуилизятороз
При рассмотрении особенностей систем ввода-вывода в объектно-ориентированной среде вводится ряд фундаментальных понятий. Э то прежде всего понятия события, входного, оконного п конфигурационного запросов, запроса на изменение данных. Описывается принцип управления событиями if реализованная в языке G Taifcua базовом уровне модель подписки на получение сообщений об изменениях указанных объектов.
Обосновывается целесообразность расширения классической схемы "Model — View — Controller', впервые использованной при разработке системы программирования на языке Smalltalk-80. Конструируется расширенная модель функционирования пользовательских интерфейсов, положенная в основу системы ввода-вывода СРП C-Talk (рис.1) и дается характеристика ее основным компонентам (Командный процессор, Окно, Редактор, Визуализатор, Хранилище или Информационная Модель). Основной задачей Командного Процессор a (Input Processor) является получение входных л оконных запросов от оконной системы и передача их тем потребителям, которым они адресованы. Под Окном в этой модели понимается абстрактный протокол области вывода, реализуемый некоторой оконной системой.
Основным достоинством этой схемы является независимость взаимодействия компонент тройки "Редактор — Хранилище — Визуализатор" от используемой оконной системы, дающая возможность разработки универсальной библиотеки пользовательских интерфейсов. Отделение визуализатора от окна позволяет экономить такой потенциально дорогостоящий ресурс, каким является окно, так как несколько визуализаторов могут быть ассоциированы с одним и тем же окном. Командный процессор обеспечивает гибкий механизм передачи запросов приложениям и возможность настройки на конкретную аппаратуру-
Выделяются три уровня системы ввода-вывода: оконная система, командный процессор вместе с универсальным интерфейсом к оконной системе и библиотека классов пользовательских интерфейсов, предназначенная для создания специализированных средств визуализации и редактирования.
Создастся концепция рабочего места (Workstation), включающего в себя клавиатуру, один или несколько экранов (на физически различных или совпадающих устройствах) и, возможно, мьгшь. Описывается класс WindowJSystem, позволяющий объединять несколько рабочих мест в одно целое (рис.2).
РИС. 2. Основные компоненты системы ввода-вывода
Подробно рассматривается механизм работы командного процессора. Описываются его компоненты, осуществляющие клавнатурно-занисимое преобразование, обработку повторителя команды, определение и выполнение клавиатурных макросов, запись последовательности входных запросов в файл, пакетное выполнение программы на языке С-Та1к, содержащей входные запросы и получение клавиатурно-зависимой помощи.
Обосновывается необходимость наличия встроенной оконной системы, позволяющей работать с АЦ п графическими терминалами. Разрабатывается библиотека классов, предназначенная для решения задачи вывода информации па различные устройства (рис.3).
ВТОРАЯ ГЛАВА содержит описание оконной системы, реализующей построенный в первой главе универсальный (не зависящий от операционной системы и оборудования) протокол окна для различных устройств вывода.
Здесь конкретизируются понятия шрифта, палитры, пользовательской палитры, текстового и графического контекстов (табл.1). Описывается структура шрифта и конструируется множество стандартных шрифтов, которые могут быть поддержаны низкоуровневой библиотекой вывода на большинстве АЦ терминалов (обеспечивающих возможность загрузки символов).
При реализации оконной системы особое внимание уделяется ее эф-
РИС. 3. Иерархия основных протоколов оконной системы СРП C-Talk. Для каждого из протоколов может существовать несколько различных классов, его реализующих. Кроме того, классы, реализующие данные протоколы, могут образовывать совсем иное дерево наследования. Так, например, в существующей версии оконной системы класс screen выведен из window
Класс Описание
color Ц»к;г, ирсдсгаслеггньт в вида тройки байт (КГЗВ).
palette Палитра — множество допустимых цветов, представленное в виде массива (array of color). С помощью палитры цвет задастся как индекс ооотвот-пвующего элемента в г>гом массиве.
ioat Шрифт описывает множество символов (вообще говоря, 16Сигиы\) некоторого алфавита. Шрифты с символами переменной ширины содержат наряду с шириной, высотой и глубиной каждого символа курсивную поправку и kerning (поправку к расстоянию между двумя рядом стоящими символами).
font .diet Множество доступных шрифтов. В данной реализации оконной системы всегда содержи! код множество шрифтов, которые могу г бить показаны на стандартном ЛЦ терминале.
usr_palette Определенная пользователем палитра, представляющая собой массив (array of char). Каждый элемент палитры сол^ржит три компоненты, идентификатор шрифта (u ioiit^dict), цвет символа и цвет фона (как индексы в palette).
t .ctx Текстовый контекст окна. Залает палитру, множество шрифтов, пользовательскую палитру и используемый по умолчанию индекс в пользовательской шиш г ре.
g-ctx Графический контекст окна —- расширение t_ctr.
ТАБЛ. 1. Вспомогательные классы оконной системы.
фсктивности. Для оптимизации вывода в перекрывающиеся окна используется известный алгоритм вычислительной геометрии — алгоритм плоского заметания. С матричным принтером, рассматриваемым как частный случай дисплея (protocol Display на рис.1), связана другая задача оптимизации, решение которой представляет собой основной теоретический результат данной главы.
Объем графической информации, которая должна быть послана на принтер для получения максимального для большинства существующих 9-игольчатых матричных принтеров разрешения 240x216dpi (точек на дюйм), достаточно велик. Это приводит к большим временным затратам на печать одной страницы. Для решения задачи оптимизации процесса печати строится математическая модель, в которой битовый образ (битовая карта) выводимой страницы S рассматривается как последовательность строк графической информации.
Определение 1. Пусть si+1..., 6 5 — группа последовательных строк битовой карты, где G к sj 7. Назовем стоимостью вывода C(S{, si+1..., Sj+fc) этой группы строк время, необходимое принтеру для се вывода.
Стоимости вывода легко могут быть определены экспериментальным путем для любого конкретного принтера.
Пренебрегая временем, затрачиваемым на вертикальное перемещение головки принтера, получаем следующую задачу.
Задача оптимизации. Для последовательности £> = з2,..., л',„ строк найти представление множества М - {1,2,...,т} в виде объединения непересекающихся множеств М{ такое, что для всех /
(1) Мг Ф 0,
(2) сагс1(ДЛ) ^ 8,
(3) (а е Л-Л- Л в е -V/;, а < /?) (У7 :0'<-у<р 7 е М,-).
(4) ^С(М) —ппп,
г
где сагс1(Л/;) — количество последовательных строк в множестве М{, а С{М{) — стоимость вывода группы строк М,- в смысле определения 1.
Для решения поставленной проблемы применяется теория индуктивных функций на пространстве последовательностей.
Определение 2. Функция /: Т17* —► У, определенная на пространстве последовательностей, называется индуктивной, если существует такое отображение <9: У х IV —» У, что /(шох) = 0^(и)),х) для всех иI е IV* их £
Основным результатом теории индуктивных функций является утверждение о существовании минимального индуктивного расширения для любой функции па пространстве последовательностей, что с программистской точки зрения эквивалентно существованию однопроходного алгоритма, вычисляющего значение функции на заданной последовательности.
После определения ряда вспомогательных понятий, среди которых можно выделить пространство Ргп допустимых представлений множества {1,..., т} в виде объединения непересекающихся подмножеств, стоимость С(р) допустимого представления р последовательности ги и отношение линейного порядка на пространстве допустимых представлений фиксированной последовательности ю, вводится следующее определение функции / на пространстве последовательностей
Определение 3. Для последовательности ли = ..., зада-
дим отображение /: IV* —► V х К соотношением
/И = (ас),
где г = rnitipC-pw С'{р), а р — это то представление множества, на котором этот минимум достигается.
Показывается, что исходная задача оптимизации равносильна вычислению значения так определенной функции /. После проверки неиндуктивности функции / строится ее индуктивное расширение --■- функция F.
Определение 4. Для последовательности w = sb s2> ■ ■ ■, sm построим отображение F: W* —* (V x R)8, полагая
F{w) = {{p\c?\...,(/,c7)},
где р> = ■Ki(f(trJ{w))), d = тг2(/(1гДш))), i =0.....7.
Проекция декартова произведения РхИна его первую составляющую обозначена здесь через щ (tti : V х R —♦ Р), а на вторую — тг2 (л"2: V х R —+ R). Выражение tr7-(tu) представляет из себя цепочку, получаемую из w 6 И7* путем удаления из нее j хвостовых символов, где j £ Z+.
После этого доказывается следующая теорема.
Теорема. Функция F, задаваемая определением 4, является индуктивной функцией на пространстве последовательностей W*.
Основным практическим результатом решения задачи оптимизации вывода графической информации на матричный принтер является однопроходный алгоритм, позволивший реализовать эффективную программу печати.
В третьей главе описывается реализация низкоуровневой библиотеки ввода-вывода, предназначенной для работы с АД терминалами под управлением ОС UNIX. Разработана и реализована объектно-ориентированная база данных терминалов Gawinfo. обеспечивающая эффективный способ настройки на конкретный тип терминала.
Реализация библиотеки выводи основана на использовании двухфазной схемы обработки запросов оконной системы. Первая фаза - — накопление информации о полученных запросах (буферизация), вторая — приведение реального состояния экрана терминала в соответствие с накопленной информацией. При этом на первой фазе сохраняется максимальное количество информации о запросах оконной системы, позволяющее на фазе переизображения применять различные виды оптимизации.
База данных Gawinfo представляет из себя библиотеку классов, описывающих методы работы с терминалами, реализованную на языке С -Talk. Объектная ориентированность базы данных позволяе т легко
добавлять описатели терминалов, лишь слегка отличающихся от уже имеющихся (вплоть до учета индивидуальных дефектов конкретных терминалов).
В отличии от стандартной для операционной системы UNIX библиотеки Curses, предлагаемая библиотека ввода-вывода обладает гораздо большей гибкостью, так как при работе с терминалом происходят динамические вызовы полиморфных методов классов базы данных. Для повышения эффективности используется динамическая конкретизация полиморфных вызовов, а методы классов, описывающих наиболее распространенные терминалы, реализованы как примитивы на языке (7++.
С терминалами, описатели которых отсутствуют в базе данных Gawinfo, обеспечивается корректная работа на основе информации о терминале, хранящейся в одной из стандартных для ОС UNIX баз данных терминалов (Terminfo, Termcap).
Для терминалов, поддерживающих возможность загрузки символов, разработана и реализована система вывода множественных шрифтов, использующая LRU алгоритм замещения при переполнении таблицы загружаемых символов.
Система ввода позволяет единым образом порождать события, возникающие в результате нажатий на клавиатуре, перемещениях мыши и приходе сообщений по сети.
В четвертой главе разработана библиотека классов, обеспечивающая создание текстового и графического пользовательских интерфейсов. Разработанная библиотека отличается от ряда существующих систем, предоставляющих графические пользовательские интерфейсы (GUI), прежде всего независимостью от оконной системы, поддержкой работы с АЦ устройствами и функционированием в многоязычной среде. каковой является СРП C-Talk.
Как это следует из общей архитектуры системы ввода-вывода СРП С-Talk, рассмотренной в первой главе (рис.]), каждому редактируемому объекту ставится в соответствие тройка — информационная модель, визуализатор и редактор. В соответствии с этим классы библиотеки пользовательских интерфейсов подразделяются на три группы. При этом все базисные протоколы и классы являются параметризованными. Так, например, основные классы, соответствующие информационным моделям, визуализаторам и редакторам строки и текста, параметризованы типом символа. Библиотека обеспечивает универсальный механизм передачи сообщений внутри тройки "Информаци-
онная модель — Визуалпзатор — Редактор" с помощью объектов типа ecLcmd of S, представляющих команды редактирования.
В данной главе произведена классификация редактируемых объектов. Введены понятия простых (atomic), составных (complex) и групповых (group) типов. Примерами объектов простых типов являются числа (целые и плавающие), логические величины, перечисления. Объекты составных типов сводятся к простому набору однородных объектов более простой структуры. Примерами являются строки символов и символов с атрибутами, тексты (простые и содержащие фор- -мяльное описание документа). Объект группового типа объединяет в одно целое ряд более простых объектов (списки, таблицы, деревья, графы, формы ... )
Основой множества разнообразных информационных моделей являются модели простого объекта (scalar-model of X), строки объектов (string_model of S) и текста (text_model of S). Для информационной модели может существовать много различных визуализаторов и редакторов. Так, например, целое число может "показываться" в обычном формате, записанное цифрами в какой-то системе счисления, в текстовой форме, в виде круговой или линейной диаграмм. Кроме того, каждый из этих вариантов может быть модифицирован мнцгнмн различными способами: добавление рамки и заголовка, изменение масштаба и цветовой палитры и т.д. При этом, однако все эти классы будут реализовывать один и тот же протокол — протокол визуализатора целого числа. Вот еще ряд протоколов, входящих и библиотеку классов пользовательских интерфейсов наряду с протоколом int.viewer: f loat.viewer, enum.viewer, diagram-viewer, form.viewer, ...
При разработке библиотеки была существенным образом использована двойственность представления текста в виде одномерной и двумерной структур, что позволило упростить структуру библиотеки и реализовать универсальный филътр для поддержки откатки (undoer of S). Схема взаимодействия основных компонент библиотеки изображена на рисунке 4.
' Отделение визуализатора от редактора позволяет существенно сократить число классов в библиотеке. Достаточно реализовать то различных редакторов и п визуализаторов для того, чтобы получить гпп различных комбинаций. Выделение информационной модели, как отдельной сущности дает аналогичный результат. Объектная ориентированность библиотеки позволяет не только комбинировать уже имеющиеся в ней классы, но и легко строить новые, обладающие нужными
Input Processor
str_editor
"фи
-o-
str_model
undoer
text_editor
-----------1
text_model
J
str view
text view
I IL _
I Г
Vi inflow System
Рис. 4. Схема взаимодействия основных компонент библиотеки создания пользовательских интерфейсов. На схеме изображены ссылки на компоненты (тонкие пунктирные линии) и маршруты следования сообщений. Входные и выходные запросы, связывающие оконную систему с библиотекой интерфейсов обозначены жирными пунктирнымп линиями, а запросы на изменение данных и сигналы об их изменении — -сплошными жирными и тонкими линиями соответственно
свойствами. Для этого достаточно вывести новый класс, используя в качестве базы один хоти несколько из имеющихся. В дальнейшем предусматривается разработка системы автоматической генерации и настройки интерфейсов, основанной на двойственности интерфейса как программы и структуры данных.
В пятой главе рассмотрен процесс подготовки документов сложной структуры. Построены грамматики выходного языка и языков внутреннего представления, предложены алгоритм глобальной оптимизации разбиения итогового документа на страницы и алгоритм инкрементального отображения документа при редактировании его текстового описания. Последний алгоритм является основой для построения пользовательского интерфейса редактирования и визуализации сложных документов, содержащих математические формулы с индексами, таблицы диаграммы и рисунки.
Рассмотрены два подхода к редактированию таких документов. Первый из них предлагает редактирование в терминах итогового изображения документа, как правило скрывая от пользователя детали внутренней структуры. Этот подход реализуется обычно в так называемых WYSIWYG (what-you-sec-is-what-you-get) системах и хорош при подготовке простых документов, например, объявлений. Для подготовки больших и сложных документов обычно используются системы, в которых текстовое представление документа содержит формальное описание его структуры на некотором языке (markup language), и редактируется такой документ в терминах этого текстового представления. Примером подобной системы является хорошо известная система подготовки текстов TjvX. Основным достоинством данного подхода является возможность разработки, сложных документов, содержащих выделенные формулы, таблицы и диаграммы, а очевидным недостатком — отсутствие инкремепталыгости процесса визуализации итогового документа при редактирования его текстового описания.
Обработка документа системой подготовки текстов сводится, no-существу, к переводу с входного языка текстового описания документа на некоторый выходной язык. Задача инкрементального отображения документа при редактировании его текстового описания в терминах теории перевода может быть сформулирована как задача перевычисления выходной последовательности при изменении входной.
Для решения этой задачи конструируются грамматики внутреннего представления документа (G;„/,Pr, G,:crt) и выходного языка {Goat).
Определение 5. GinUr = где N - {II,V,V,H.S},
Е = а тожество правил V .шест
вид
S-(n)S|(iOS|c
V" - (H)V\tlc':;*V\e
H->(V)H№iJH\e.
Определение G. G\,CT{ = (Лг, S, Р, 5), где N = {П, S}, множество терминалов Е = {(,), chud. v™fl ,;>„}, а V есть
S (П)5|е П - П|с.
Определение 7. Gout = (Ar,£,P,S), где ;V = {P,V,#,S}, S = а множество правил V имеет вид
S-+PS |е Р-* (V)
V(H)V\t^JV\e H-+(V)H\t*riJH\e.
Грамматика Gintrr задает язык, соответствующий еще полностью ^отформатированному документу, a Gvert - ■ документу, в котором каждый из абзацев уже отформатирован, но еще не произведено разбиения на страницы. Грамматика Gout рекурсивно описывает множество прямоугольников, размещенных на страницах итогового документа.
Обозначая входной язык документа, через /,,-„, перевод г, осуществляемый системой подготовки текстов, можно представить в виде композиции трех отображений:
П Т2 ТЗ
1 Linter * Lverl * I~Jont •
Перевод тх преобразует цепочку лексем входного языка на язык внутреннего представления, осуществляя при этом такие действия, как автоматическая обработка лигатур, корректировка расстояния между соседними буквами (kerning), добавление небольших пробелов в конце предложений, увеличение растяжимости и сокращение сжимаемости
после знаков пунктуации, добавление отступа в первой строке абзаца, и др. Если перевод т\ является простым СУ-переводом, он может быть реализован с помощью преобразователя с магазинной памятью (МП-преобразователя).
Наиболее содержательными задачами, решаемыми в процессе переводов т2 и г3, являются родственные друг другу задачи нахождения разбиения абзаца на строки и документа в целом на страницы, минимизирующего некоторую функцию разбиения. Показывается, что они аналогичны разобранной во второй главе диссертации задаче оптимизации вывода графической информации на матричный принтер и могут быть решены с привлечением теории индуктивных функций. Это позволяет предложить алгоритм глобальной оптимизации разбиения итогового документа на страницы.
Далее приводятся некоторые необходимые факты теории возвратных конечных и МП-преобразователей.
Определение 8. Преобразователь с магазинной памятью Р — называется возвратным, если существует отображение 6: <5 х Г* х (Д* \{е}) х Е —► ф х Л* х Г* такое, что из условий %,а,£) = (г,7,у) пу=х2 следует 6{г,у,у,а) = (<2,х,г).
С использованием теории возвратных МП-преобразователей показывается, что для случая простого СУ-перевода т, возможна реализация инкрементального перевода на язык внутреннего представления.
В ЗАКЛЮЧЕНИИ сформулированы основные результаты, полученные в диссертационной работе.
ПРИЛОЖЕНИЯ содержат краткое описание языка С-ТаШ, лежащего в основе одноименной среды разработки программ и фрагменты библиотеки классов пользовательских интерфейсов.
Основные результаты работы
1. Разработана архитектура системы ввода-вывода в объектно-ориентированных средах, включающая независимое от оконной системы расширение модели функционирования пользовательских интерфейсов.
2. В рамках этой архитектуры разработаны и реализованы оконная система среды С-ТаО: и библиотека классов для создания пользовательских интерфейсов. Создана объектно-ориентированная база данных классов-описателей АЦ терминалов.
3. Разработан и реализован эффективный алгоритм оптимизации вывода графической информации на матричный принтер.
4. Предложен алгоритм инкрементального отображения документов сложной структуры при редактировании их текстового описания.
Среда разработки программ C-Talk, содержащая библиотеку классов для создания пользовательских интерфейсов, оконную систему, обеспечивающую работу с графическими и алфавитно-цифровыми терминалами, и базу данных классов-описателей АЦ терминалов, реализована на графической рабочей станции БЕСТА-99 под управлением ОС UNIX. Эта среда внедрена в учебный процесс Московского автомобилестроительного института и в настоящее время актнвно используется студентами 1-3 курсов.
Общий объем реализованного автором программного обеспечения составляет более 11 тысяч строк на языках С++ и C-Talk.
Опубликованные работы по теме диссертации
1. И.В. Абрамов, К.А. Книжник, Е.А. Роганов. С~Та1к — среда разработки программных систем f j В сб.: Базовое программное обеспечение — Москва, МАСИ, 1993.
2. И.В. Абрамов, К.А. Книжник, Е.А. Роганов. Справочное руководство по языку программирования C-Talk // В сб.: Базовое программное обеспечение — Москва, МАСИ, 1993.
3. И.В. Абрамов, Е.А. Роганов. Оптимизация вывода.графической информации на матричный принтер // В сб.: Базовое программное обеспечение — Москва, МАСИ, 1993.
4. И.В. Абрамов, Е.А. Роганов. Архитектура системы ввода-вывода в объектно-ориентированных средах // В сб.: Базовое программное обеспечение — Москва, МАСИ, 1994.
5. Е.А. Роганов. Инкрементальное отображение документов сложной структуры при редактировании их текстового описания // В сб.: Базовое программное обеспечение — Москва, МАСИ, 1994.
6. Е.А. Роганов. Оконная система и библиотека ввода-вывода среды разработки программ C-Talk //В сб.: Базовое программное обеспечение — Москва, МАСИ, 1994.
Адрес: E-mail:
Лаборатория информатики и технологии программирования кафедры общей и прикладной математики МАСИ, Москва, Автозаводская, 16.
-
Похожие работы
- Графическая модель для спецификации и синтеза интерфейса пользователя автоматизированных информационных систем
- Методы проектирования эффективных экранных интерфейсов систем электронного документооборота
- Библиотека пользовательского интерфейса для встроенных и мобильных вычислительных устройств
- Разработка и исследование методов генерации и сопровождения WIMP-интерфейсов
- Программный комплекс пользовательского интерфейса на базе манипуляционных устройств ввода
-
- Системный анализ, управление и обработка информации (по отраслям)
- Теория систем, теория автоматического регулирования и управления, системный анализ
- Элементы и устройства вычислительной техники и систем управления
- Автоматизация и управление технологическими процессами и производствами (по отраслям)
- Автоматизация технологических процессов и производств (в том числе по отраслям)
- Управление в биологических и медицинских системах (включая применения вычислительной техники)
- Управление в социальных и экономических системах
- Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей
- Системы автоматизации проектирования (по отраслям)
- Телекоммуникационные системы и компьютерные сети
- Системы обработки информации и управления
- Вычислительные машины и системы
- Применение вычислительной техники, математического моделирования и математических методов в научных исследованиях (по отраслям наук)
- Теоретические основы информатики
- Математическое моделирование, численные методы и комплексы программ
- Методы и системы защиты информации, информационная безопасность