автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.11, диссертация на тему:Инструментальные средства поддержки обработки онтологической информации программных структур многокомпонентного программирования

кандидата физико-математических наук
Валькевич, Татьяна Арнольдовна
город
Киев
год
1994
специальность ВАК РФ
05.13.11
Автореферат по информатике, вычислительной технике и управлению на тему «Инструментальные средства поддержки обработки онтологической информации программных структур многокомпонентного программирования»

Автореферат диссертации по теме "Инструментальные средства поддержки обработки онтологической информации программных структур многокомпонентного программирования"

вг ш

Национальная академия наук Украины Институт кибернетики имени В. М. Глушкова

На правах рукописи

ВАЛЬКЕВИЧ Татьяна Арнольдовна

УДК 51:681.3.06

ИНСТРУМЕНТАЛЬНЫЕ СРЕДСТВА ПОДДЕРЖКИ ОБРАБОТКИ ОНТОЛОГИЧЕСКОЙ ИНФОРМАЦИИ ПРОГРАММНЫХ СТРУКТУР МНОГОКОМПОНЕНТНОГО ПРОГРАММИРОВАНИЯ

05.13.11 — математическое и программное обеспечение

вычислительных машин, комплексов, систем и сетей

Автореферат диссертации на соискание ученой степени кандидата физико-математических наук

Киев 1994

Диссертацией является рукопись.

Работа выполнена в Институте кибернетики имени В. М. Глушкова HAH Украины.

Научные руководители: доктор физико-математических наук,

профессор КАПИТОНОВА Ю. В.

кандидат физико-математических наук МИЩЕНКО Н. М.

Официальные оппоненты: член-корреспондент АН Украины

ЮЩЕНКО Е. Л.,

кандидат физико-математических наук ГРИНЧЕНКО Т. А.

Ведущая организация: Киевский национальный университет

имени Т. Г. Шевченко.

£3 ce^uutfs ,пп ^ -М

;-» -/— 199 ' г. в -

Защита состоится часов на заседании специализированного ученого совета Д 016.45.01 при Институте кибернетики имени В. М. Глушкова HAH Украины по адресу:

252650 Киев ГСП 22, проспект Академика Глушкова, 40.

С диссертацией можно ознакомиться в научно-техническом архиве института.

Автореферат разослан « »------1994 г.

Ученым секретарь специализированного ученого совета СИНЯВСКИЙ В. Ф.

- 1 -

ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ

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

Характер современной программистской деятельности иаме1 ллсп в связи с тем, что за несколько десятилетий ее развития в мир« накоплен огромный потенциал программного обеспечения. Единицей программирования стала программная компонента, и программист прекращает программировать изначально и начинает собирать (монтировать, комлоноезть, склеивать) решение своей задачи иа каталогов повторно используемых программных компонент. Интеллектуальный фокус программирования сосредоточен теперь на понимании, выборе и правильном и эффективном использовании компонент.

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

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

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

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

Перспективными направлениями разработки программного обеспечения для : эддержки покомпонентного программирования являются объектно-ориентированное программирование и мегапрограммирование.

В рамках объектно-ориентированного программирования (ООП) адаптирован и развит сборочный способ программирования, основанный на компонентах - объектах. Збъектно-ориентированная технология предлагает эволюционную разработку прикладных программных систем на основе пошагового программирования из предварительно созданного инкапсулированного программного обеспеченчя и дальнейшего его нар;?диваь..я, настройки и сборки.

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

Комплексный теоретигсо-ьрактическ.н! подход к проблемам автоматизированной обработки и хранения информации был предложен и развит академиком В.М. Глушковым и его учениками в математической теории проектирования »«числительных систем и подтвержден созданными под их руководством вычислительными системами, такими, км автоматизированная система совместного проектирования схемного у

программного обеспечения ЭВМ и многопроцессорный вычислительный комплекс с макроконвейерной организацией вычислений. В рамках последнего разработан, реализован и оттестирован на ряде сложных задач язык МАЯК, представляющий собой согласованное семейство языков параллельного программирования высокого уровня, ориентированных на поддержу крупноблочных асинхронных координаци ¡иных схем вычислений в многопроцессорных вычислительных комплексах.

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

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

В работе решены следующие основные задачи:

- построение моделей параллельно функционирующей программной компоненты крупноблочного программирования в распределенной среде вычислений и разработка языковых средств представления моделей;

- разработка и реализация комплекса инструментальных средств для поддержи информационной обработки программных компонент;

- разработка элементов информационной технологии построения программного решения задзч в развитых программных среда: .

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

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

Практическая ценность состоит в создании комплекса универсальных средств поддержки словарной информационной обработки программных компонент произвольной природы на протяжении всего жизненного цикла программы и его применении в крупноблочном программировании - системе параллельного программирования (С1Ш) МАЯК агатного ¡истомного математического обеспечения многопроцессорного вычислительного комплекса и трансляторе языка системы алгебраического программирования APS. 'Разработана методика применения словарей программных компонент и развиты элементы информационной технологии в процессе построения программного решения с использованием объектно-ориентированной методологии. Информационная обработка программных компонент в виде словарей и их иерархий обеспечивает сопровождение компонент и поддержу их выполнения, улучшая управление обслуживанием задач и повышая производительность разработки и функционирования программных продуктов.

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

Апробация работы и публикации. Научные и практические результаты работы обсуждались на заседаниях республиканского семинара "Теория автоматов и ее применения" (Киев, 1984-1993), Всесоюзного семинара "Параллельное программирование и высокопроизводительные системы" (Уфа, 1900, Планерское, 1991), Всесоюзной конференции "Актуальные проблемы системного программирования" (Таллинн, 1390), Всесоюзной научно-технической конференции "Практическое применение современных технологий программирования, пакетов и прикладных программ" (Днепропетровск, 1990), Международного семинара молодых ученых "New Generation Computer Systems and Software" (Самарканд, 1990), рабочей группы по языкам и системам программирования комиссии СМО АН СССР "Языки, системы и методы программирования для суперкомпьютеров и параллельных ЭВМ" (Ленинград, 1991). Результаты диссертационной работы отражены в 8 статьях,, тезиса* 2 докладов и в коллективной монографии.

Структура и объем работы. Диссертация состоит из введения, четырех глав, заключения, списка литературы, включающего 167 наименований, и четырех приложений. Объем работы - 145 страниц текста, 16 страниц списка литературы и 58 счр-шиц приложений.

- 5 -

СОДЕРЖАНИЕ ДИССЕРТАЦИОННОЙ РЛБО'Ш

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

В первой хлаье предлагается аналитический обзор и сравнительный анализ параллельных средств в объектно-ориентированном программировании.

В разделе 1.1 ра^с^отрен параллельный аспект распределенных вычислений в объектно-ориентированных системах. Описаны три формы параллельности вычислений: энутримоду.чьная, межмодульная » делегирование. Приведена классификации языков, интегпирукгэдх объекты и параллелизм, по способу введения параллелизм,! в тезкой язык, на ортогональные, однородные и неоднородные. Исследованы средства параллельности широкого спектра объектно-ориентированных и объектно-базированных языков: Smalltalk и его разнообразные параллельные разработки (Concurrent Simltalk, Grient84/K, Distributed Concurrt.it Smalltalk), языки, погд^ржиьаодие акторную модель параллельных вычислений в объектах (ABCL/1, Actl. Act3 и др.), а также такие языки как Emereld, Trellis/Owl, Concurrent С-н, POOL, Hybrid, O^cam с объектами на транспьютерах. PROCOL и др.

Раздел 1.2 посвящен сравнительному анализу средств интеграции объектов и параллелизма. Описаны преимущества и недостатка трех основвых подходов к реализации параллелизма я языках с объектами. Прч ортогонально»/ подходе, хотя возможен теорэтичос.ш неограниченный параллелизм, может нарушаться целостность объекта. В параллельных ~зыках взаимоисключающее выполнение операций объекта поддерживается автоматически, сохранение целостности объекта происходит за счет ограничений параллелизма и дополнительных затрат.

Ка основе проведенного исследования выделены характеристик!;, существенные для систем параллельных распределенных вычислений. базирующихся на объектах:

- организация пара сдельности: виды парад.* эльности, ее pea 'и-эация, модель параллелизма, учет "параллельных ролей";

- организация распределенности: единица и масштаб распределенное ти, организация адресного пространства, возможность миграции о'Уьектон в сети-

- б -

- соотношение параллельности и распределеиности;

- организация взаимодействия.- виды взаимодействия, механнеш координации, количество партнеров, режим связи;

- управление вычислениями: управление ресурса?.«, защита, управление доступом, планирование поведения, расслоение вычислений.

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

Раздел 1.3 ¡юсвящея анализу языка параллельного программирования высокого уровня МАЯК, поддерживающего макроконвейерную ор-гаимзаци® вычислений, с позиции ООП, и перспективам его развития с использованием объектно-ориентированного подхода.

Лапа краткая характеристика языка МАЯК, его свойств м средств: модульность, ориентация на крупноблочную организацию вычислений по данным и по действиям, разнообраэк я параллельная об-работгд вычислений, строгая типизация, развитые структуры управ-, лекия вычислениями, оСработка исключительных ситуаций и др.

Основные конструкции языка МАЯК, связанные с организацией параллельных процессов, рассмотрены о точки зрения ООП. Объект изыка МАЯК - параллельно функционирующий экземпляр'модуля. Основой параллельной программной обработки является компонента (логический процессор). Главный инструмент для создания различных видов параллельных объектов - описание программного модуля, которое может рассматриваться как еадание класса или вида объектов одинаковой структуры. Объект образуется из класса, когда (явно или неявно) происходит связывание этого модуля с компонентой - ресурсом его исполнения. Взаимодействие между объе"тами-модулямк осуществляется с помощью запросов, которые в разных случаях (в вависи-мости от вида модуля) выражаются теми или иными средствами языка.

Исследованы разнообразные возможности представления объектов в МАЯКе. Инкапсуляция и экспортирование свойств поддерживаются Ь МАЯКе модулями, внешними типами, внешними процедурами, внешними функциями, внешними массивами, компонентами, сообщениями. Действия над объектом могут бчть заданы в операторе обработки сообщения, во внешних подпрограммах, в программах пакета. Внешний интерфейс объекта определяется, соответственно, структурой сообщения, спецификацией внешних подпрограмм, спецификацией программ пакета.

Свойство наследования в МАЯКе определяется отношением подчиненности модулей программы: каждый модуль аадает ресурсы, которыми могут воспользоваться все подчиненные ему модули. Наследование

имеет крупномасштабный характер, так как охватывает не только данные и действия, а физические и программные ресурсы. Иерархии классов формируется на основе связей подчиненности мо;<улей в программе и представлена структурой реализации языка - деревом статической подчиненности модулей многомодульной программы МЛЯКа. Существуют два типа иерархий в МАЯКе: горизонтальная иерархия связей подчинения модулей программы (внутрипрогпаммнсе наследование) и вертикальная иерархия функциональной структуризации программных продуктов системы по проблемно-связанным областям - ин-форматекам (межпрограммное наследование).

Подтверждена необходимость развития языка МАЯК на основе явного использования объектно-ориентированной методологии. Сформулированы принципы построения нового поколения языка, клк ойдеце-левого косрдинационого языка программирования, сохраняющего семантику языка МАЯК, в котором ООП становится оснсеным способом программирования, на основании чего язык поддерживает технологию генерации эффективных применений. Определен базовый элемент программирования - объект модульного типа, идентифицирующий параллельную единицу распределенных вычислений, в котором унифицированы основные понятия вычислительного процесса.

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

В разделе 2.1 введена информационная модель программной кса поненты в виде иерархии словарей и определено информационк ■ отобрал^лие программной компоненты в словари.

Словарь - информационный объект, связывремый с некотор-й именованной программной областью и содержащий совокупность упоря доченных определений слов - программных элементов агтоциируемоЛ области. Элементом слоьаря является его статья, представляюсь я лобой пару: слово и его определение. Структура словаря включает заголово.. словаря, множество классов словаря и множество характеристик слов словаря; она зависит от специфики обработки программной информации и различна для разных применений. Словарная мод? " программной компоненты представляет ее онтологию - терминологии, концепцию и парадигму интерпретации.

- б -

Информационное отображение программной области определено таким образом, что информация об элементах программно« области находится в словаре этой области, размещаясь в его опоеделенном классе так, что каждый класс словаря представляет собой носледо-вательност* разноименных слов п характеристиками.

Информационная модель многокомпонентной программ представлена иерархией словарей, в которой отражена компонентная структуре программы. Конструкция иерархии словарей моделирует область видимости (действия или среду функционирования) компоненты программы ив словарей компонент, которым о) л подчинена (от которых зависит). На основе иерархии можно проводить разнообразные исследования и управлять средой функционирования программных ко>то-нент. Создание словарей для компонент многокомпонентных программ и классификация программных элементов г словаре делают поиск информации, во-первых, корректчым, су-ая область поиска информации до определенного иерархического подмножества всего множества словарей - области видимости; во-вторых, эффективным, сужая область помета до некоторого искомого множества объектов - класса(-ов) словаря. Динамическое построение области видик^сти любой компоненты программы из предварительно созданных словарей всех ее ком-псеит и исследование области видимости обе печивают независимую трансляцию и раздельное выполнение любой компоненты программы.

Раздел 2.2 посвящен технологии работы со словарям"-, описаны объектно-ориентированные среда и функциональность словарей.

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

Действия, определяющие функциональность объектов - словарь и иерархия словарей, сгруппированы по сппсосу обрабоТ|Л информации на операции по работе со словарями, по формированию информации в словаре и по использованию информации из словарей иерархии. Технология создания словарей охватывает цикл от создания "пустого"

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

Раздел 2.3 посвящен реализации словарного инструментального комплекса. Разработанный комплекс инструментальных сре^ст? реализован в расширяющейся системе программирования ТЕРЕМ в виде универсального пакета семантических действий Конструирования и Использования Словарей (КИС), настраиваемого на конкретное применение. КИС - инструментарий для формирования и исследования смто-логии программной компоненты, обеспечивающий интеллектуальную поддержку процесса программирования. Первая версия словарей была реализована на ЕС ЭВМ и внедрена в С1Ш МАЯК. Вторая его реализация была осуществлена на ПЭВМ и использована в трансляторе языка системы алгебраического программирования APS.

В разделе 2.4 изложена методика применения словарного инструментария. Рабочий цикл состоит из трех стадий: предварительная программно-текстовая настройка словаря на конкретное применение, создание словарей и их использование. Предусмотрены два режима работы со словарями: специфицируемый, охватывающий минимальный объем стандартной работы по созданию любых словарей, и программируемый, предлагающий широкие возможности по формированию разнообразной информации в специфических словарях и по использованию накопленной информации.

В разделе 2.5 выполнен количественный и качественный анализ обработки информации в виде словарей и их иерархий. Проведены теоретическая оценка поиска информации в словаря" и сравнение словарной организации информации с известными -аОличными методами, такими как последовательные, упорядоченные и таблицы с не-поср.дственным доступом. Словари являются обобщением таблиц символов в трансляторах. Преимущество организации информации в виде словарей состоит в следующем:

• гибкое структурирование разнообразной программной информации, ориентированное на семантику обработки программных элементов в распределенной среде вычислений, а именно, структуризация информации по областям программы (словарям) и по специфике ее обра-

бсг-кк (классам « характеристикам), пользовательская программно-текстовая настройка структуры информации на применение, автомати-чегчи': сбор информации е соответствии с выбранной структурой;

- естественный, >лифицированный и эффективный способ обработки инфэрузцик в виде- словарей, точнее, однородная обработка осноьной~информации как слов класса, однородная обработка различной дополнительной информации как характеристик слов, текстовая интерпретация закодирова.чяой информации, устойчивое хранение словарей, локализа^я области поиска информации в пределах от области видимости (иерархии словарей) до искомого подмножества . информации (класса), конструирование различных стратегия поиска на основе структуризации;

- небольшой дополнительный оЗ^ем памяти:

- открытость, расширяемость, универсальность системы словарей;

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

Б свази с инфицированной, разнообразной и гибкой обработкой информации в виде словарей возможен широкий диапазон применения предлагаемого инструментального комплекса, прежде всего в раслре-дел-чной архитектуре вычислений. В общем случае он может быть использован в системах моделирования процесса покомпонентного . программирования для поддержки информационной обработки программных компонент от проектирования до реализации, например, в ыега-программировании как средство сопровождения ыегамод. лей л поддержки выполнения мегапрограмм, при проектировании программ, основанном на знаниях. КИС может быть использован также в традиционных трансля'>'орах - для статического семантического контроля.

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

Третья глава посвящена информационной обработке в мегапрог-раммированпи - современной концепции крупноблочного программирования, введенной на Западе в 19Э0 году для проведения исследований по проблематике крупномасштабного проектирования программ, как инженерии программного обеспечения, основанной на готовых компонентах и управлении жизненном циклом. Проведен анализ технологии макроконвеИерного программирования в языке МАЯК с позиции ме ^.программирования.

В разделе 3.1 проведен, краткий обзор парадигмы мегалрсграм-ыировакия: описаны ее отличительные черты, ключевые злементы программной поддержки мегапрсгрзширования, его программные компоненты - мегамодуди и требования к языкам мегвпрограммированил.

Раздел 3.2 посвящен анализу системного математического обеспечения многопроцессорного выделительного комплекса о шкро-конзейеркой организацией вычислений (CMC МВК) с позиции мегппрог-раымирования. Анализ показал, что а процессе реализации мачрокон-вейерного принципа организации вычислений в середине 8&->: годов были получены основные компоненты мегапрограммирозания: язи , определяющий крупномасштабный компонентно-базированный способ программирования, и инфраструктура, поддерживающая парам ?льное функционирование сети программных модулей.

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

Сопровождение и выполнение программ МАЯКа поддерживалось его программным обеспечением: СПП обеспечивала подготовку модулей к исп' лнешяо, операционная • система - выполнение модулей з разнородном окрг*ении, информЕ.:еки - хранение программных продуктов, функционально структурированных по областям применений, словари -1тфоршционк_то обработку распределенных кемп-нэнт.

В .азделе 3.3 рассмотрена информационная обработка в мегап-рограммировании. Описана информационная обработка в макроконзейе-рном програшировании на примере реализации, языка 5.iAHK о помочь» предложенного в главе 2 словарного инструментального комплекса.

Проблема коордкн- цяи информации ь мегапрограммирозании свя -зана о ком озицией независимых разнородных компонент б мегаг хгг-рамме. Для координации разных языков, множественных парадигм программирования необходимо альтернативное информационное представление гетерогенных компонент.

Информационная обработка в мегапрогшммировакин включает

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

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

Информационная обработка л многопроцессорном вычислительном комплексе состоит ь предварительном ьоотроенги среды исполнения многомодульных программ МАЯКа и ее дальнейшем использовании в процессе их функционирования. Информационна среда исполнения программы модулируется в виде словарей ее модулей на этапе декомпозиции многомодульной программы - начальном этапе обработки программ в ОШ МАЯК. Словарь представляет собой онтологию модуля МАЯКа; он создается с помощью пакета КИС на основе внешних описаний модуля в виде расклассифицированной в зависимости от специфики обработки в МБК информации: входная ч выходная ин(эрмация, компоненты, внешние типы, внешние подпрограммы, внешние функции, сообщения, модули, непосредственно подчиненные данному, программы, пакеты. Задае ?ся текстовая интерпретация словарной информации. Словари модулей фиксируются в памяти. Использование информации происходит на основе динамически конструируемой иерархии словарей в процессе трансляции модулей программ. Словари модулей обеспечивают возможность распределенного, т.е. раздельного и не-вависимого, выполнения модулей МАйКа. На основе иерархии словарей реализован тшше объектно-ориентированный способ функционирования мода лей МАЯКа. Класс представлен посредством словаря модуля. Иерархия классов отражена п иерархии словарей. Наследование реализовано как хюиск и использование информации из'иерархии словарей, иа соответствующих словарных разделов,

В четвертой главе рассматривается транслятор процедурного подмножества входного языка APLAN системы алгебраического программирования APS в язык С. Транслятор включает словарный комплекс в качестве ключевой компоненты.

В разделе 4.1 зведены основные понятия системы алгебраического программирования: алгебра термов, множество первичных объектов и сигнатура ее операций, алгебраические программы и модули, алгебраические объекты, язык алгебраического программирования APLAN, процедуры языка API .AN. Обоснована необходимость трансляции процедурного подмножества интерпретируемого нетипиаирова..ного язмса APLAN п язык 0 для более эффективной работы б системе.

В разделе 4.2 сформулирована задача трансляции с оптимизацией языка L2B - процедурного подмножества язык APLA1J, в язык L2C3 - расширение языка С для обработки системных структур данных. Перечислены средства оптимизации выходного С-кода алгебраических выражений Ь2В-процедур APLAM-модуля, основным источником и средство.* которой являются сводимые пользователем иерархические рлчеб-раические спецификации типов и оптимизированных операций. Сфэрму-лировано правило перевода алгебраического выражения, согласно которому транслятор гарантирует перевод, соответствующий оСи.с.-и се-аятике APLANa, и осуществляет оптимизированный перевод алгебраического выражения, если для всех его отметок заданы оптимизированные операции, и типы, специфицируемые и реальные, ссйпадают.

В разделе 4.3 описаны расширение и ограничения APLANa в связи о трансляцией процедур. Иерзрхкчеасие алгебраические слецифи-каци •. вводятся с помощью специальных атомов и имен APLANa и образуют расширенный APLAN. Трансляция LTB-процедур с оптимизацией накладывает некоторые ограничения на имена целого типа, на алгебраические программы, на транслируемые процедуры.

В разделе 4.4 формально описаны этапы трансляции; предварительный этап построения среду трансляции, этап анализа, этап трансляции и этап модификации входного файла. Они определяют архитектур/ транслятора., которая состоит . з следующих компонент:

- словари алгебр лческих модулей и процедур - статические информационные структуры,

- матрица типов выражения - динамическая информационная структур'!, формируемая транслятором для каждого выражения,

- множество периодов операторов и выражений, которое ыино-чает ооший и оптимизированный варианты их трансляции.

' - 14 -

Базовыми действиями транслятора являются: построение словарей, построение матрицы типов выражения на базе словарной информации, контроль типов выражения на основе матрицы типов, статически Л семантический контроль на основе словарей, выбор способа перевода и перевод.

Трансляция языка LP.D ъ язык С производится на основе статической и динамической информационной среды, которые рассмотрены в разделе 4.5.

Статическая информационная среда трансляции представлена в виде словарей. Предметная область трансляции формально описана в виде множества первичных объектов и их разбиений, производимых иод действием спецификаций оптимизации. Структура информационной среды трансляции представляет со<">эй иерархию словарей, гостоящей из словаря глобальной информации л словаря локальной информации. Структура словаря отражает описанное разбиение множества первичных обьектов и учитывает выполняемый в процессе дальнейшей обработки семантический анализ. Классы словаря алгебраических программных компонент следующие: алгебраические объекты, глобальные целые, транслируемые процедуры, формальные параметры, локальные алгебраические объекты, локальные целые, отметки, бинарные отметки. внутренние процедуры. Информационная среда формируется и используется с помощью словарного инструментального комплекса КИС. Введен' функции анализа, в которых непосредственно используется словарная информации и которые участвуют в формальном описании трансляции (раздел 4.6).

Динамическая информационная срзда представлена ь виде матрицы типов выражения, входящего в оператор. Бе необходимость обусловлена неоднозначностью трансляции алгебраических выражений. Для определения способа перевода для каждого выражения «¡ормиру-ется матрица типов на основе статической информации словарей. Матрица типов - стоуктура данных, в которой заданы разные проекции типов обрабатываемого выражения: проекции на его внешние условия или контекст выражения, на язык С и на язык APLAN. В зависимости от их комбинации (соответствия выражения его контекстным условиям) выбирается общий или оптимизированный способ перевода алгебраического выражения. Введена и записана в виде системы соотношений функция перевода выражения.

В разделе 4.6 трансляция формально описана в виде основной системы соотношений transí) и нескольких вспомогательных. Виедены

языки описания: входной язык 128, выходной язык Ь2С, язык транслятора ЦИ. Правила систем соотношений состоят из условий -анализа предметной области, левой части - транслируемой конструкции входного языка и правой части ~ результата трансляции. В основной системе соотношений 1гапз() представлены переводы всех 1.2В-операторов. Во вспомогательных системах соотношений описаны общий и специальный способы трансляции выражения, а также оптимизированный способ трансляции выражений целого типа и др.

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

В заключении приведе 1Ы основные реэуль аты работы и перспективы ее развития.

В приложениях приведены: аналитическая таблица кос~>динаичон-ных средств языков программирования, инти рирующих объекты и параллелизм, инструментальный комплекс программ информационной обработки программных компонент в виде словарей и их иерархий, труктура словаря модуля многомодульной программы МАЯКа, описание реализации и спецификация транслятора Ь2В-Ь?С, набор тестовых ан-гебраичес<чих программ и протокол работы транслятора с , емонстра-цией словарей алгебраических программ и процедур; документ, подт-верждаюций ист льзование результатов диссертационной работы.

ОСНОВНЫЕ РЕЗУЛЬТАТЫ РАБОТЫ

В работе получены слздуадие основные результаты.

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

2. Проведен анализ технологии макроконвейерного прогремшро-вания в языке МАЯК и его среды с учетом многопроцессорной архитектуры инструментальной ЭВМ о позиций объектно-ориентированного программирования и негапрограммирования. Локс-яако, что объектная

ориентация неявно присутствует в ваше, непротиворечиво интегрирована с параллельными средствами и имеет универсальный характер. МАЧЯ обладает достаточными языковыми средствами для представления концепции мегапрсграм>.гфования. Для превращения его в обцецелевой координациейный язык необходимо введение дополнительных средств с явным использованием понятия оогекта. Сформулированы принципы нового поколения я ем га кАЯК. и разработан общий вид базового элемента программирования в языке.

3. Построена информационная модель программной компоненты распределенных вычислений в виде иерархии "ловарей. Разработан и реали&ован словарный инструментальный комплекс поддержки информационной обработки программных компонент. Разработана технология применения словарей в процессе покомпонентного программирования, в ^"icthoct", в мегапрограммировании для поддержки сопровождения и выполнения программ и программных компогшт. Е системе параллельного ьрогрзммированил МАЯК разработан и реализован пакет информационной обработки модулей многомодульной программы для их независимой трансляции и объектно-ориентированного Ф^ акционирования.

4. Разработан и формально описан проект тгтлсдштора L28-L2C процедурного подмножества интерпретируемого нет.ишзированного языка APLAN системы алгебраического Л1юграм>"фОьания APS в язык С с оптимизацией управляемой с помощью иерархических алгебраических спец" фикаций.

5. На основании проекта реализован многова; :антный транслятор L2B-L2C с оптимизацией, осуществляемой с гомошью : ¡форуашюн-ной обработки на базе иерархии слоьарей алгебраических модулей и процедур.

Основные положения диссертации опубликованы в следа .лцих работах :

1. Балькевич Т.А., Дудко Б.А., Иищенко H.U. Декомпозиция мультимода'льных программ // Организация вычислений в многопроцессорных ЭВМ. - Киев:Ин-т кибернетики им. B.L-Глушкова АН УССГ, 1985. - С. 3-11.

2. Балькевич Т.А. Словари мультимодулъных п, эграмм // Проектирование многопроцессорных вычислительных систем. • Киев:Йн-т кибернетики им. С М.Глулкова All УССР, 1986. - С. 37-44.

3. Системное математическое обеспечение многопроцессорного вычислительного комплекса ЕС / ^.С. Михелевич, Т.А. Балькевич,

Ю. В. Капитонова, А. А. Летичевский и др. — М. : ВВИА им. проф.

Н. Е. Жуковского, 1986. — 390 с.

4. Валькевич Т. А. Объектно-ориентированный подход к построению словарей мультимодульных программ // Всесоюз. конф. «Актуальные проблемы системного программирования. Объектно-ориентированное программирование»: Тез. докл. (Таллинн, 16—18 яив. 1990). — Таллинн: Ин-т кибернетики АН Эстонии, 1990. — С. 76—77.

5. Валькевич Т. А., Мищенко Н. М., Федюрко В. В., Щеголева Н. Н. О внутреннем представлении мультимодульных программ в МВК // X Всесоюз. семинар «Параллельное программирование и высокопроизводительные системы. Методы представления знаний в информационных технологиях»: Тез. докл. (Уфа, 19—26 июня 1990). — Киев : Ин-т кибернетики им. В. М. Глушкова АН УССР, 1990. — С. 156—157.

6. Валькевич Т. А. Пакет процедур для обработки словарей мультимодульных программ // II Всесоюз. науч.-техн. конф. «Практическое применение современных технологий программирования, пакетов и прикладных программ в вычислительных системах и сетях ЭВМ»: Тез. докл. (Днепропетровск, 19—20 сент. 1990). — Днепропетровск: НПО «Орбита», 1990. — С. 86—88.

7. Валькевич Т. А. Объектно-ориентированный подход к работе с таб-лн"ами символов // Проблемы создания интеллектуальных систем поддержки принятия решений. — Киев : Ин-т кибернетики им. В. М. Глушкова АН УССР, 1990. — С. 51—55.

8. Валькевич Т. А. Словари мультимодульных программ и их применение в языковых процессорах // УСиМ. — 1991. — «Y°2. — С. 51—59.

9. Валькевич Т. А. О моделировании среды функционирования объектов в языке МАЯК И Методы и средства объектно-ориентированного программирования. — Киев : Ин-т кибернетики им. В. М. Глушкова АН УССР, 1991. — С. 7—13.

10. Валькевич Т. А. Об объектной ориентации в МАЯКе // Кибернетика. — 1993. — №2. — С. 159—165.

11. Валькевич Т. А., Гороховский С. С. Языки программирования с объектами и параллелизмом: анализ и характеристики. — Киев, 1993. — 19 с. — (Препр. / АН Украины. Ин-т кибернетики им. В. М. Глушкова; 93-27).

Подп. в печ. 15.06.94. Формат 60x84/16. Бум. тип. №2. Офс. печ. Усл. печ. л. 1,05. Усл. кр.-отт, 1,17. Уч.-изд. л. 1,5. Тираж 100 экз. Заказ 706.

Редакционно-издательский отдел с полиграфическим участком Института кибернетики имени В. М. Глушкова HAH Украины 252G50 Киев ГСП 22, проспект Академика Глушкова, 40