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

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

Автореферат диссертации по теме "Тип-технология и её применение при разработке систем программирования и экспертных систем для высокопроизводительных вычислительных комплексов"

я

Ордена Трудового Красного знамени Институт точной механики и вычислительной техники . им. С. А. Лебедева АН СССР

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

САЮНОВ Владимир Олегович

УДК 681. 3.06

ТИП-ТЕХНОЛОГИЯ И ЕЕ ПРИМЕНЕНИЕ ПРИ РАЗРАБОТКЕ СИСТЕМ ПРОГРАММИРОВАНИЯ И ЭКСПЕРТНЫХ СИСТЕМ ДЛЯ ВЫСОКОПРОИЗВОДИТЕЛЬНЫХ ВЫЧИСЛИТЕЛЬНЫХ КОМПЛЕКСОВ

Специальность 05.13.11 - математическое и программное обеспечение вычислительных машин, комплексов, систем и сетей

АВТОРЕФЕРАТ диссертации на соискание ученой степени доктора технических наук

Москва - 1991

-У ...» > .

С V ^

Работа выполнена в НИИ математики и механики им. акад. Е И. Смирнова при Ленинградском государственном университете.

Официальные оппоненты: 1

Член-корреспондент АН СССР, доктор технических наук,

профессор

Б. А.'БАБАЯН

Доктор технических наук, старший научный сотрудник

' ЕА. СУХОМЛИН

Доктор технических наук

Г.Д.ЧИНИН

Ведущее предприятие - Институт систем информатики Сибирского отделения АН СССР.

Защита диссертации состоится " "_ 1991 года в

" " часов на заседании специализированного совета Д. 115.02.01 при Институте точной механики и вычислительной техники им. С. А. Лебедева АН СССР по адресу: 117914, Москва, Ленинский проспект, 51, актовый гад.

С диссертацией можно ознакомиться в библиотеке ИГМ и ЕГ АН СССР

Автореферат разослан 1991 г.

Ученый секретарь специализированного совета

К. т. н. , ст. Н. с. Б. и. УЛАНОВСШ

йддагж! 1

1 ОВЦАЯ ХАРАКТЕРИСТИКА РАБОТЫ

■ : ?

'Актуальность теш. Комплекс сло:яшх научно-технически проб-ем, связанши с создайте« и пр;:;.:эягпием технологи.! разрпбот.'С! ольших программ, по мере интенсивного разшггпя архптсстур ЭЕН, зыков и методов программирования, ве только сохрпилет, ко и уси-ивает свою актуальность, несмотря на обилие работ в даииоЯ об-асти.

В 70-х годах сло;етлась обзая ¡тащэпция л;зис!шого к-зша цикла разработки) лрограм>,и, состояпаго :<з этапов анализа требо-аннй, определения спецификация, проектирования. реапгепцпп, тес-ирования и сопровождения. Еылл выработаны основное припиши опл-ания и оОраОопш слогзшх структур данных (концепция гбстршстпьн штов данных - ЛТД), дексмпсшщии программы на относительно нева-ИС1КДЮ программные коьтопеиты («одудьпоз программирование), ср-анизации операторных частей программа (структурное програгаяро-аине). представления преграды в виде совокупности иггигиых ■заимодейстзухэди мезду собой объектов (объектно-ориэнт'лроз-аниоэ рограммировэние).

В связи с развитием методов слстеютизацяи разработка программ, сложилась тенденция рассматривать разработку программы ¡гак рсизводственныЯ технологический процесс, для которого когет быть ыработана технология, четко регламентирунгзя последовательность [ содер.чание всех технологических операция. Отсюда - взгляд на оллектив программистов как на "фабрику прогрев", а на сама рограымы - как на "програ^кную продукцию". Спет показал, что тот взгляд не в полной мере оправдан, так как используемые тех-ологии программирования оказались не з состояния учесть илтел-;ектуальную (творческую) компоненту труда прогрг.\с.ястов, которая

базируется на знаниях и опыте разработки программ ь конкретно? области. Кроме того, в процессе программирования (в отличие от промышленного производства) постоянно создаются инструментальные средства (модули, библиотеки и т.п.), которые затем используются на последующих этапах работы либо в других программных разработках. Их использование также базируется на знаниях о предметной области, структуре и семантике программ.

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

Характерной особенностью системного программного обеспечения. в частности - систем программирования и экспертных систем, является необходимость обработки сложных структур данных - таблиц, списков, стеков и др. В связи с этим представляется целесообразным подход к технологии разработки системного программного обеспечения "от данных", при котором программа рассматривается как последовательность операций над используемыми в ней структурами данных. Одним из таких подходов является концепция АТД. Однако,' в силу ряда причин, проанализированных в данной работе, принципы АТД до сих пор недостаточно используются в практике системного программирования, что приводит к аморфности и ненадежности больших программных систем.

Таким образом, второй важной проблемой развития технологии

программирования является выработка и использование в практике разработки больших программ систематического стиля программировании, основанного на развитии принципов АТД.

Цель работы состояла в развитии технологических концепций модульного, объектно-ориентированного программирования и АТД, разработке, на базе выработанных принципов, технологии программирования, предназначенной для создания больших программ, связанных с обработкой сложных структур данных, и обеспечиваххаей систематизацию этапов проектирования, реализации, оформления и сопровождения программ на основе использования знаний об их структуре и семантике их' компонент. Практическая цель работы состояла в применении разработанной технологии при выполнении крупного комплекса работ по созданию систем программирования и экспертных систем для высокопроизводительных вычислительных комплексов.

Для достижения этих целей в диссертации решались следующие задачи:

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

2) анализ концепции АТД и ее развитие с целью ее более широкого практического применения;

3) обоснование и детальная разработка нового технологического подхода, базирующегося на принципах разработки большой программной системы в виде иерархии технологических инструментальных пакетов (ТИП), при проектировании и реализации каждого из которых используется априорная схема горизонтального и вертикального слоения с предопределенной семантикой слоев;

4) разработка принципов применения данного подхода з различных предметных областях (при создании систем программирования и экспертных систем) и на базе различных инструментальных языков

и систем программирования;

5) разработка принципов создания программной поддержки для повой технологии программирования;

6) разработка, на основе принятого технологического подхода, принципов построения конкретных систем программирования для ИВК "Эльбрус" и экспертных систем;

7) анализ технологий построения экспертных систем; разработка новых языковых концепций для представления знаний и построения экспертных систем.

:&толь) исследования базируются на использовании технологических принципов модульного программирования, объектно-ориентированного программирования, абстрактных типов данных и методов представления знаний.

Научная новизна работы состоит в следующем:

I) разработана новая технология программирования (ТИП-техко-догиа). основанная на развитии концепций ЛТД, модульного и объектно-ориентированного программирования и предназначенная для создания болыцик программ, связанных с обработкой сложных структур данных; разраОотаиа детальная методика применения ТИП-техно-логик;

аа осноас ШЬтехиологин спроектирован и реализован ря; ношх систем программирования (СП) для МВК. "Эльбрус", включая С1 СисюшЭльбрус (со входным язьмхом, являющимся расширением международного стандарта и икегдам Турбо-совместимый диалект) и СП Кл; -Эльбрус (персу» в СССР реализацию языка Клу и одну из первы: отечественных СП, обеспечивающую использование ЛТД);

3) разработан новый язи; представления знаний Турбо-Экс перт, основанный на принципах интеграции различных йорм представ донил знаний со средствами традиционного языка программирования.

- б -

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

1) создание систем программирован™ (СП) трах классов:

- СП на базе "статических" языков с развитыми средствшм типизации и модульного программирования (СП Паскаль-Эльбрус, СП Клу-Эльбрус, СП.Мэдула-Эльбрус) ;

- СП на базе специализированных языков, ориентированных на обработку символьной информации (СП АБВ-Эльбрус, СП Снобол-Эльбрус, СП Рефал-Эльбрус);

- диалоговые СП (СП ДИАШАГ. СП Бейсик-Эльбрус. СП Эльбрус-ФОРТ);

2) создание программной поддержи ТИП-технологии (разработан технологический ТИП-комплекс для 1£ВК ■ "Эльбрус"» ориентированный на инструментальный язык Эль-76).

Кроме того, под руководством автора был реализован по ТИП-технологии демонстрационный прототип специализированной экспертной системы на языке Турбо-Паскаль.

Общий объем программ, разработанных по ТИП-технологии, составил более 2С0 тысяч строк (в том числе лично автором разработано более 60 тысяч строк).

Таким образом, практическое применение ТИП-технологии для создания систем программирования и экспертных систем подтвердило ее перспективность. Программой работ по развитию общего системного программного обеспечения (ОСПО) НВК "Эльбрус" предусматривается на ближайший год проведение испытаний Т5Ш-комплекса; предполагается использование ТИП-технологии в качестве основной для создания больших программных комплексов на МВК "Эльбрус".

Разработанная по ТИП-технологии система программирования Паскаль-Эльбрус успешно прошла приемочные испытания и включена в состав общего программного обеспечения (ОГО) ЫВК "Эльбрус".

Система программирования Клу-Эльбрус прошла межведомственные испытания и передана заказчику.

Система программирования ДИАШАГ прошла испытания в ИТМ и ВТ АН СССР.

Шогие из разработанных систем нашли практическое применение в ряде организаций. К ним относятся прежде всего система программирования Паскаль-Эльбрус, ТИП-комплекс, системы программирования Нлу-Эльбрус и Эльбрус-ФОРТ. Наиболее широко используется система программирования Паскаль-Эльбрус, которая приобрела популярность в связи с активным использованием языка Паскаль на ПЭВМ, необходимостью переноса на МВК "Эльбрус" больших программ и обучения языку Паскаль. Система используется для решения производственных, научных и учебных задач во многих организациях, в том числе - в ИТЫ и ВТ АН СССР. Новосибирском филиале ИТМ и ВТ АН СССР, Вычислительном цен', ре коллективного пользования АН СССР, Научно-исследовательском институте радиоприборостроения, Институте кибернетики АН Эстонии, а также - в ряде других организаций.

Апробация работы. Результаты диссертации многократно докладывались на научных конференциях, школах и семинарах, в том числе:

- на всесоюзной научно-технической конференции "Архитектура и программные средства высокопроизводительных вычислительных систем" (Новосибирск, 1985 г.); '

- на всесоюзных школах-семинарах "Создание программного обеспечения вычислительных комплексов и систем новой архитектуры" (Новосибирск, 1988 г. и 1990 г.);

- на I и II всесоюзных научно-технических конференциях

"Практическое применение современных технологий программирования, пакетов прикладных программ в вычислительных системах и сетях ЭВМ" (г. Днепропетровск, 1988 г. и 1990 г.); на обеих конференциях доклады по ТИП-технологии бьши отмечены в числе лучших; в решении II конференции ТИП-технология отмечена как одна из перспективных технологий программирования;

- на всесоюзном научно-техническом семинаре "Семейство моделей многопроцессорных вычислительных комплексов "Эльбрус". Состояние и перспективы развития" (Мэсква, 1990 г.);

- на X всесоюзном семинаре "Параллельное программирование и высокопроизводительные структуры: методы представления знаний в информационных технологиях" (Уфа, 1990 г.);

- на всесоюзной конференции "Методы трансляции и конструирования программ" (Новосибирск, 1988 г.);

- на заседаниях рабочих групп по языкам и системам программирования, по выработке требований к системам программирования (Новосибирск, 1984 г.; Уфа, 1986 г.; Горький, 1988 г.).

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

Структура и объем работы. Диссертация состоит из введения, шести глав, заключения, библиографии и приложения. Объем диссертации составляет 246 страниц основного текста, объем библиографии - 92 наименования.

СОДЕРЖАНИЕ РАБОТЫ

Во введении обоснована актуальность темы, сформулирована цель работы, дан обзор ее содержания.

В первой главе, содержание которой рассмотрим более подробно

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

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

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

1) концептуальные средства - знания о структуре, семантике и процессе разработки программ;

2) организационные средства - приемы и методы организации работы коллектива программистов и отдельных разработчиков;

3) программные средства - программный инструментарий, используема на различных этапах жизненного цикла программы.

В разделе 1.2 дан аналитический обзор технологий программирования. Рассмотрены: Р-технология, технология вертикального слоения и РД-технология, технология „программирования в системе С01/2, ПРОМЕ^ЕП-технология, технология СУПЕРЯОРМАТ, технологии програ)УД]роьа!шя на базе языка СОРТ, технология промышленного программирования на базе АЯВУ Алгол-68. технология на базе языка ЯР!;Ю, технологическая система СЮД, технология сборочного программирования, ПРИЗ-технология, типовая технология программирования ¡ЗК "Эльбрус". В результате проведенного обзора сформулирован перечень средств и методов, имеющих большое значение для разработки прогрей.!, но развитых в существующих технологиях в недостаточной степени:

1) наличке средств систематизации вертикального и горизонтального слоеннл программы; предопределенная классификация горизонтальных и вертикальных слоев на основе их предполагаемой семантики;

2) использование принципов АТД при обработке сложных структур данных;

3) организация коллективной разработки программ по принципам:

- одинакового уровня компетенции всех разработчиков;

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

4) наличие и программная поддержка технологической дисциплины, обеспечивающей систематизацию стиля программирования и оформления программы;

5) наличие программных средств автоматического синтеза реализаций простых типовых модулей.

В разделе 1. 3 проанализирована концепция АТД, дан исторический обзор ее развития. Основными ее элементами, в той или иной степени выраженными в современных языках программирования (Модула-2, Ада, Клу. Эль-76, язьк манипулирования базами данных и знаний Атлант и др.) являются:

1) описание АТД (кластера, формы, капсулы и т. п.) в виде совокупности конкретного представления, интерфейса (набора операций) и реализаций этих операций;

2) генератор абстрактных объектов заданного типа;

3) описание параметризованного (родового) АТД, которое определяет класс родственных абстракций и из которого путем конкретизации (подстановки конкретных параметров) могут Сыть получены новые АТД;

4) описание и обработка исключительных ситуаций, возникающих в абстрактных операциях;

5) управляющие конструкции для последовательной выборки элементов сложных абстрактных объектов (итераторы).

Как отмечается в работе, до настоящего Бремени концепция АТД, несмотря на общепризнанную перспективность, в практике раз-

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

современными языками программирования и архитектурой ?ВМ); огра-

л

ниченность средств моделирования АТД при программировании на более ранних языках (Фортран, Ш1/1, стандартный Паскаль и др.); трудности при проектировании и реализации АТД ввиду отсутствия априорных методических рекомендаций программисту о предполагаемой структуре описания АТД, его горизонтальных и вертикальных слоях и юс семантике. Показано, что для более широкого применения концепции АТД в технологиях программирования необходимо ее развитие в следующих направлениях:

1) использование априорной схемы горизонтального слоения реализации АТД, состоящей из уровней абстракции, имеющих определенную семантику;

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

В качестве основы для развития концепции АТД в данной работе использованы принципы модульной декомпозиции программ, сформулированные Д. Парнасом, а также концепции языков Клу, Е1/1 и СО 1/2.

В разделах 1.4 - 1.7 излагаются основы ТИП-технологии программирования - нового технологического подхода, составляющего теоретическую базу данной работа ТИП-технология применяется в НИИ математики и механики при Ленинградском университете для разработки систем программирования и экспертных систем. Она является развитием концепции АТД и содержит ряд концептуальных, организационных и программных средств, которые, как показывает анализ различных технологических концепций, проведенный в разделах 1.2 -

- и -

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

В разделе 1.4 вводятся основные понятия ТЙП-технологии.

Будем называть объектом совокупность (структуру) данных и набор операций над ней PI..... PN, моделирующий некоторую абстрактную концепцию.

Конкретное представление объекта - это описание его структуры в терминах встроенных объектов (констант, переменных и т.п.) инструментального языка или ранее определенных объектов (будем называть их элементами конкретного представления).

Атрибутом объекта назовем операцию (Pi) или подмногество

множества операций Pi1.....Pik. Содергательно это означает, что

данные, составляющие объект, доступны лиеь через эти операции.

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

Значение атрибута - это результат применения некоторой операции Pi к объекту или к его компоненте. Состояние объекта - совокупность значений атрибутов.

Атрибуты объекта подразделяются на конкретные и абстрактные. Конкретные атрибуты - это атрибуты, обеспечивающие работу непосредственно в терминах конкретного представления (т.е. атрибуты, выдающие значения элементов конкретного представления, управляю

- 12 -

те их размещением в памяти, модификацией и т. п.).

Абстрактные атрибуты - это все остальные (более абстрактные) операции над объектом, реализация которых выражена в терминах конкретных или других абстрактных атрибутов (не использует непосредственно элементов конкретного представления). Содержательно абстрактные атрибуты моделируют промежуточные абстрактные понятия. вводимые в описании объекта.

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

Операции делятся на следующие группы (вертикальные слои):

а) Интерфейс генерации - совокупность операций создания объекта и его компонент. Генерация полностью или частично может неявно выполняться уже при описании объекта Для упрощения терминологии условимся к этому же классу относить также операции уничтожения объекта или его компонент (если такие требуются).

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

в) Интерфейс модификации - совокупность операций изменения состояния объекта.

г) Интерфейс вывода - совокупность операций преобразования состояния объекта в символьную мнемоническую форму или в другое представление для его дальнейшей обработки другими средствами.

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

Кроме описания уникальных объектов, атрибуты которых существуют в единственном экземпляре, возможно также описание класса (типа) объектов, в котором конкретное представление описывает

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

Далее определяется рекомендуемое ТЮЗ-технологией горизонтальное слоение пакета, представ«иное в виде совокупности уровней абстракции с предопредегзнпоЯ сенаятккой. Воаий уровень образует собственно описание конкретного представления. Каждый следующий уровень п представляет собой совокупность описаний операций, в реализации которых могут использоваться только операции уровней п или п-1. Информационные и управляете связи операций должны выражаться лишь через вызовы, аргументы, результаты н исключительные ситуации. Элементы конкретного представления могут непосредственно использоваться только в реализации операций самого низкого уровня. На верхнем уровне определяется пользовательский интерфейс пакета Бее остальные части описания пакета составляют его реализацию.

ТИП-технологией рекомендуется следующая предопределенная семантика уровней абстракции:

- уровень представления (уровень 0) - совокупность описаний операций-конкретных атрибутов;

- уровень определения (уровень 1) - совокупность описаний операций-абстрактных атрибутов объекта, скрытых от пользователя (промежуточных абстракций);

- концептуальный уровень (уровень 2) - совокупность операций абстрактных атрибутов, отражавших абстрактную концепцию объекта в целом (заметим, что часть из них могут быть скрытыми).

Основной концептуальной единицей ТИП-технологии является

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

Л

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

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

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

Одной из целей ТИП-технологии является также создание не только конкретных- программ, но и проблемно-ориентированных модульных сред (библиотек ТИП) для решения задач в различных проблемных областях. В настоящее время они созданы для разработки систем программирования на МВК "Эльбрус" (инструментальный язык Эль-76) и для разработки систем обработки знаний на ПЭВМ (инструментальный язык - Турбо-Паскаль).

В разделе 1.5 сформулированы требования к языкам и системам программирования, которым они должны удовлетворять для применения

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

Минимальные требования:

1) наличие описаний простых переменных и массивов;

2) наличие процедурного механизма;

3) наличие директивы переключения компилятора на трансляцию заданного текстового файла.

Максимальные требования (в дополнение к уже перечисленным):

1) наличие описаний типов или макросредств, их моделирующих;

2) наличие описаний макросов или открытых процедур;

3) наличие средств обработки исключительных ситуаций;

4) наличие средств описания пакетов (модулей) с инкапсуляцией их реализации.

В разделе 1.6 описана последовательность разработки программы по ТИП-технологии на различных этапах жизненного цикла.

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

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

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

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

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

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

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

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

Приведены эвристические рекомендации по разработке ТИП:

- целесообразно в первую очередь реализовать интерфейс доступа, так как при этом может быть обнаружена и своевременно исправлена неэффективность доступа к конкретным атрибутам;

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

Рассмотрены особенности разработки каждого вертикального слоя ТИП.

а) Интерфейс генерации в наиболее общем случае имеет следующую структуру:

- уровень представления - операции выделения (освобождения)

памяти для представления компонент;

- уровень определения - операции создания компонент объектов (без связывания их с обшей структурой объектов);

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

б) Интерфейс доступа:

о

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

- уровень определения - операции определения значений абстрактных атрибутов объекта и его компонент; часть этих операций может быть вынесена также на концептуальный уровень с целью обеспечения доступа пользователю ТИП к его абстрактным атрибутам; однако некоторые абстрактные атрибуты могут быть скрытыми;

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

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

- наличие "постоянных" (не модифицируемых) атрибутов объекта (например, атрибут "год рождения" объекта "анкета");

- наличие традиционной формы записи операций модификации -присваивания 'А(О):- V, где А - атрибут, 0 - объект. V - значение.

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

Т 3 set_A (О, V), где Т - тип объекта 0, set_A - имя операции модификации, которая должна быть определена над типом Т. В языке Эль-7б операция доступа А(0) определяется в виде текстового макроса, использование которого в выражении (для доступа) трактуется как значение атрибута, а в левой части присваивания (для модификации) - как его имя. Для остальных инструментальных языков операции модификации определяются в процедурной форме.

Уровни абстракции интерфейса модификации имеют следующую структуру:

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

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

взаимосвязей отдельных компонент (без контроля сохранения корректности стру|стуры объекта); последние на концептуальный уровень не выносятся;

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

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

- уровень представления - разрабатывается в виде отдельного ТИП проблемно-независимого вывода, используемдго в нескольких аналогичных системах и обеспечивающего вывод в терминах базового набора типов данных инструментального языка (чисел, строк, логи-

ческих значений, символов и т. п.); он абстрагирует разработчика от конкретных устройств и файлов вывода и от форматов выводимых данных;

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

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

ТИП-технология рекомендует три основных подхода к разработке интерфейса вывода.

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

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

3) В более широком смысле вывод трактуется как преобразование информации об объекте в другую форму: например, запись в файл (с предварительным преобразованием в ¡{юрмат, исключающий явное

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

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

- имя ТИП, его назначение, перечень используемых ТИП;

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

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

Описаны различные мнемонические формы обозначения операций

ТИП.

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

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

- интерфейс вывода в мнемонической форме, обеспечивающий трассировку изменения состояния объекта;

- статусы (скрытые переменные, с помощью которых контролируется корректность последовательности вызовов операций);

- сценарии (скрытые последовательности, множества или ссылочные структуры, описывающие допустимые соотношения вызовов операция).

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

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

1) относительная простота и наглядность;

2) надъязыковый характер ТИП-технологии; ее ориентация на существующие инструментальные языки и системы программирования;

3) наличие концептуальных средств систематизации вертикального и горизонтального слоения программы, развивающих принципы АТД (предопределенная структура ТИП, его горизонтальные и вертикальные слои с предопределенной семантикой);

4) технологическая дисциплина, обеспечивающая систематизацию стиля программирования и оформления программы, и, тем самым, высокое качество конечного программного продукта (в других рассмотренных технологиях решение этих задач полностью возлагается на инструментальные системы программирования);

5) организация коллективной разработки программ по принципам одинакового уровня компетенции всех разработчиков, совместного проектирования и строгого соблюдения интерфейсов между программными компонентами (большинство других рассмотренных технологий ориентировано на разработку программ "сверху вниз" и распределение задач проектирования интерфейса и собственно программирования между специалистами разной квалификации, что снижает качество щограмм);

6) программная поддержка (ТйП-комплекс), обеспечивающая раз-

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

Вторая глава содержит описание особенностей применения ТИП-технологии при разработке программ в системах программирования Эль-76 (на МВК "Эльбрус") и Турбо-Паскаль (на ПЭВМ типа IBM PC), для которых имеется опыт ее использования. Рассмотрены возможные формы описания ТИП v сборки программы из ТИП, особенности указанных инструментальных языков с точки зрения применимости ТИП-технологии (статическая и динамическая типизация, средства структурного и модульного программирования, средства обработки - ситуаций и др.). Приведены содержательные примеры разработки программ по ТИП-технологии на языках Эль-76 и Турбо-Паскаль.

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

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

Далее рассмотрена разработка по ТИП-технологии экспертной системы, создаваемой из ТИП. реализующих диалоговый процессор, подсистемы управления базой знаний, логического вывода, объяснения, а также расчетные проблемные блоки. Описаны особенности интерфейса и реализации ТИП при разработке экспертной системы по ТИП-технологии. В частности, к облей схеме вертикального слоения ТИП при разработке экспертной системы по ТИП-технологии добавляются два новых слоя - интерфейс логического вывода И' интерфейс объяснения (последний предназначен для реализации с^дств объяснения пользователю хода рассуждений системы). Для организации ввода-вывода табличной информации, используемой экспертной системой для выдачи экспертных рекомендаций, применяется описанный выше метод концептуально-визуального интерфейса. Этот же метод используется и для организации логического вывода; таким образом, пользователь имеет возможность гибкого управления в диалоговом режиме выбором правил из базы знаний в процессе консультации. Опыт применения ТИП-технологии для разработки описанного в работе демонстрационного прототипа специализированной экспертной системы на язже Турбо-Паскаль подтверждает целесообразность и эффективность применения ТИП-технологии в данной области <( полученные данные по производительности труда аналогичны приведенным показателям для Эль-76).

В четвертой главе рассмотрена организация программной поддержки ТИП-технологии - технологического комплекса ТИП (ТИП-комплекса). ТИП-комплекс обеспечивает разработку программы по ТИП-технологии в диалоговом режиме. Он поддерживает этапы спецификации, проектирования, реализации, тестирования и сопровождения (модификации) программы по ТИП-технологии. Первая версия ТИП- комплекса реализована для МВК "Эльбрус" и ориентирована на инструментальный язык Эль-76. В диалоге с ТИП-комплексом используются меню, подсказки пользователю, наглядное многооконное представление ТИП на экране, шаблоны (фреймы) проектирования и реализации ТИП и его компонент. Комплекс обеспечивает разработку программной системы как иерархии ТИП. Информация о системе (спецификации и тексты программ) хранятся з библиотеке ТИП. Структура ТИП отрага-на в тексте программы в виде стандартизованных комментариев, которые автоматически вставляются ТИП-комплексом в текст конечного программного продукта. Таким образом, ТИП-комплекс обеспечивает также систематизацию оформления программы. Предусмотрен "обратный" режим - анализ текста со стандартизованными комментариями и преобразование его во внутреннюю форму библиотеки ТИП, что позволяет использовать при разработке уяе существующие ("внегаие") ТИП. Комплекс обеспечивает возможность перехода к любому этапу разработки в лкбой ее момент (в том числе н при незавершенности выполнения предыдущих этапов). На этапе реализации ТИП-комплекс контролирует соблюдение технологической дисциплины (соответствие уровней абстракции; корректность использования операций, в соответствии с семантикой вертикальных слоев). Важной особенностью ТИП-комплекса является релим автоматизированной генерации (синтеза) фрагментов конечного программного продукта ТИП-кскплеис выполняет (по указанию пользователя) автоматизированный синтез описания конкретного представления ТИП (на основе встроенных

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

В пятой главе описаны две конкретных системы программирования (СП), разработанные по ТИП-технологии, - СП Паскаль-Эльбрус и СП Клу-Эльбрус. СП Паскаль является одной из наиболее используемых на МВК "Эльбрус", наряду с СП Эль-76 и «Хортран. В главе описаны принципы ее разработки и наиболее существенные этапы развития, в котором ТИП-технология играет весьма важную роль. Первая версия СП Паскаль-Эльбрус была разработана в 1982 г. для МБК "Эльбрус-1". Ее входной язык соответствовал авторскому описанию языка Паскаль 1978 г. При ее создании не было использовано каких-либо специализированных технологий, что привело к Сравнительно невысокому качеству программ, серьезным недостаткам стиля программирования и. как следствие. - к трудностям на этапе сопровождения. Вторая версия СП Шскаль-Эльбрус. разработанная в 1986 г., создавалась с самого начала по ТИП-технологии и представляет собой фактически новую систему программирования, входным языком которой является расширение международного стандарта языка Паскаль. Система полностью спроектирована и запрограммирована по ТИП-технологии и сусэственно расширена по своим возможностям, по сравнении с первой версией (в главе приведено описание ее пользовательских режимов). Применение ТИП-технологии значительно повысило производительность труда В главе приведены статистические данные о разработке, подтверждаедие это. Благодаря применению ТИП-технологии, трудозатраты на разработку снизились приблизительно в 2

раза, а производительность труда каждого программиста возросла в б раз и составила 15 - 20 тысяч строк в год; существенно сократились сроки отладки; в ряде крупных компонент системы отладка не выявила ошибок. В 1986 г. СП Паскаль -Эльбрус успешно прошла Государственные приемочные испытания. В период с 1987 по 1991 г. она была внедрена в ряде организаций. Далее в пятой главе описано дальнейшее развитие СП Паскаль-Эльбрус - разработка Турбо-совместимой версии, входной язык которой в значительной степени совместим со входным языком системы Турбо-Паскаль.

Во второй части глагы 5 рассматривается разработанная по ТИП-технологии экспериментальная версия СП Клу-Эльбрус. Язык Клу, созданный в Массачусетском технологическом институте (США) под руководством проф. Б. Дисков, является первым языком, основанным - на концепции АТД, и играет важнейшую роль для развития технологии программирования. Несмотря на то, что он, в силу своей нетрадиционности, не получил значительного распространения (в США имеются 3 его реализации), многие его концепции впоследствии были использованы в других более известных языках (например. Ада) и в технологиях программирования. В СССР язык Клу использован в качестве основы для разработки языка манипулирования базами данных Атлант. Система программирования Клу-Эльбрус, описанная в главе 5, является первой отечественной реализацией языка Клу. В главе дан обзор основных понятий и конструкций языка Клу (кластер, итератор, ситуация, параметризованный модуль). Далее рассмотрена организация СП Клу-Эльбрус, которая, как и СП Паскаль-Эльбрус, является конечным продуктом применения ТИП-технологии. Приведены статистические данные, подтверждающие эффективность применения ТИП-технологии при создании СП Клу-Эльбрус (полученные показатели аналогичны приведенным выше для СП Паскаль). Рассмотрены пользовательские возможности СП Клу-Эльбрус - режимы компиляции;

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

Отмечается, что практическим подтверждением высокого качества СП. разработанных по ТИП-технологии, является опыт использования текста СП Паскаль-Эльбрус в качестве технической документации в ИТМ и ВТ АН СССР при сопровождении программной компоненты ОСПО МВК "Эльбрус", распечатывающей стандартизованные словари вхождений идентификаторов. Результаты проведенного в НФ ИТМ и ВТ автоматизированного анализа текста СП Паскаль-Эльбрус, в сравнении с текстами других СП для МВК "Эльбрус", показали, что 33 X ее текста составляют комментарии (по этому показателю СП Паскаль более чем в 2 раза превосходит все остальные исследованные СП), а 65 X строк текста - самодокументируемы (т.е. содержат комментарии); для остальных СП этот показатель более чем в 2 раза ниже. Это подтверждает высокий уровень наглядности программ, разработанных по ТИП-технологии.

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

Показано, что при решении задач во многих областях экспертной деятельности требуется сочетание методов ИИ (обработка знаний, логический вывод) с традиционными алгоритмическими (численными) методами и, таким образом, ЭС для их решения носят гибридный характер, объединяя в себе блоки экспертных рассуждений'и

расчетные блоки. Такая организация ЭС влечет ряд серьезных проблем, связанных с выбором инструментального языка, постольку существующие инструментальные системы ("оболочки") для построения ЭС являются замкнутыми и ориентированы на собственные специфические языки представления знаний (как, например, распространенна1! в СССР система GURU), а для программирования расчетных блоков более удобны традиционные языки, например, Турбо-Паскаль.

В главе обосновывается подход к разработке SC. основанный на применении базсссго языка представления знаний Турбо-Эксперт -расширения языка Турбо-Паскаль. Обосновывается недостаточность сбъектно-орнентгроваиних средств Турбо-Паскаля для целей представления зпшп::! п гибридных ЭС.

Далее описываггсп основные понятия и конструкции языка Турбо -Экспорт. Он сод-эргпт разнообразные средства представления знаний, которые могут использоваться совместно в pat.r.tax одной системы (базы знаний):

- фреймы (фреймы-классы и ¿¡реЯмы-экзекпляры, Фасеты, дэкспы,

■ >

наследование, видимее п скрытие атрибуты);

- наборы правил (с возможностью управления приоритетами правил и стратегией логического вывода - от использования встроенных прямой и обратной стратегии до программирования собственной машины вывода);

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

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

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

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

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

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

- 31 -ЗАКЛЮЧЕНИЕ

На защиту выносятся следующие основные результаты, полученные в диссертации:

1) Разработана новая технология программирования (ТИП-технология), основанная на концепциях абстрактных типов данных, модульного и объектно-ориентированного программирования и предназначенная для создания больших программ, связанных с обработкой сложных структур данных; разработана детальная методика применения ТИП-технологии: структура ТИП, семантика его компонент, последовательность разработки ТИП, принципы разработки программы как иерархии ТИП, дисциплина взаимосвязей¡между уровнями абстракции ТИП. принципы организации коллективной разработки программ по ТИП-технологии (принцип равной компетенции, принцип совместного проектирования и соблюдения интерфейса ТИП), методы разработки программы по ТИП-технологии на различных этапах жизненного цикла (спецификация, проектирование, реализация, тестирование, сопровождение), требования к инструментальным языкам и системам программирования для применения ТИП-технологии, методы программирования по ТИП-технологии в системах Эль-76 и Турбо-Паскаль.

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

3) Разработаны методы использования ТИП-технологии для соз-

дания систем программирования и экспертных систем. По. ТИП-технологии разработан ряд крупных программных систем, в том числе:

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

- система программирования Клу-Эльбрус - первая отечественная реализация языка Клу, основанного на концепции абстрактных типов данных;

- система программирования Ыодула-Эльбрус, разработанная по ТИП-технологии на базе сущоствуюи^й реализации системы Паскаль- Эльбрус;

- технологический комплекс ТИП для МВК "Эльбрус";

- демонстрационный прототип специализированной экспертной системы на языке Турбо-Паскаль.

4) Разработан новый язык представления знаний Турбо-Эксперт, предназначенный для построения экспертных систем, являНдайся рас-сшрением языка Турбо-Паскаль и основанный на принципе интеграции традиционных средств программирования (описаний, операторов, процедур, модулей) с разнообразны}«! средствами представления знаний (фреймами, наборами правил, алгоритмическими моделями, нечеткими типами и множествами, коэффициентами уверенности).

ОСНОВНЫЕ ПУБЛИКАЦИИ ПО ТЕМЕ ДИССЕРТАЦИИ

По тематике, связанной с диссертацией, автором опубликовано

36 печатных работ, в том числе приведенные ниже работы [1 - 15].

В работах С1, 12] приведена полная библиография работ по данной тематике.

1. Сафонов К 0. я?ыки и метол.ч программирования в системе "Эль-

- 33 -

брус". - И.: Паука. 1989. - 332 с. 2. Вдовкин С. В. .Кубенский Л. Л. .Сафонов а а Транслятор Иду-Эльбрус // Программное обеспеченно вычислительных ютмплексов новой архитектуры. - Швосибкрос ВЦ СО АН СССР. 1986. С. 32-41.

а Вдовкин С. а . Одинцов Fl О.. Сафонов а а Язь« инженерии оканий Турбо-Эксперт // Кибернетика. 1931. М 5. L Вдовкин С. Е , Сафонов Е О. Абстрактные типы данных: технология программирования из языке Клу, реализация для ИВК "Эльбрус", использование в Клу-трансляторе // Программирование. - 1983. - N5. - С. 32-95.

5. Сафонов Е О. Технологические принципу создания программ обработки сложных структур данных // Есссокэ. ratiii

. "Технология программирования": Тез. £окд. - Ksreв: КК АН УССР. 1983. Ч 1. - С. 16l-16a

6. Сафонов ЕО. Применение технологических принципов обгекг-по-ориеитировашюго «одульмого программирования при разработке трансляторов //III Ecvcoko. кгч& "Автоматизация про-гаводства систем программирования": Тсэ. ujokjl - Таллинн: ЯК Iii ЗССГ, 19S5. - 0. .17-49.

7. CafoüQB Я О. n,0K»fri:'?KKs Tlii!-технологj;s? прогряисфсиа/шл г. системе "Эльбрус" // VII Dcecoro. семинар "Шраллэлыюо программирован'/з и высокопроизводительные системы": Тсэ. докл. - Киев: J3t АН УССР. 1083.

8. Сафонов а 0. Принципы к технология разработки трансляторов для.МВЯ "Эльбрус" в Ленинградском университете // Веесога. конф. "Изтоды трансляции и конструирования программ": Тез. 50КЛ. - Новосибирск: ВЦ СО АН СССР. 1988. Ч. 2. - С. 83-91.

9. Сафонов Е О. Программирование по ТШ-технологки ча языке Турбо- ГЬскаль // 11 Всесосз. конф. "Практическое пркиеке-

ние современных технологий программирования, пакетов прикладных программ в вычислительных системах и сетях ЭВМ": Тез. докл. - Днепропетровск: НПО "Орбита", 1990. 10. Сафонов Е О., Сафонова С. В., Соколинский Jl Е Технологический комплекс ТИП // I Всесоюэ. конф. "Практическое применение современных технологий программирования, пакетов прикладных программ в вычислительных системах и сетях ЭВМ": Тез. докл. - Днепропетровск: НПО "Орбита". 1988, Ч 1. - С. 24-27.

И. Сафонов ЕО. Технологические принципы программирования, основанные на концепции интерфейса // Программирование.

- 1989. - N5. - С. 69-79.

12. Сафонов ЕО. Технологические и практические аспекты разработки системного программного обеспечения МВК "Эльбрус". -

- Новосибирск: 1989, (Препринт / НФ ИТМ и ВТ АН СССР; N15).

- 37 с. J

13. Сафонов ЕО., Соколинский Л. Б. Применение знаний об интерфейсах в технологии разработки модульных надежных программ U Методы повышения качества программного обеспечения. - Владивосток: ДВО АН СССР , 1990. С. 58-60.

14. Сафонов Е О., Соколинский Л. Б. Технология разработки больших программ для МВК "Эльбрус" ( ТИП-технология ) // Всесоюе. семинар по МВК "Эльбрус": Тез. докл. - М., 1990.

15. Сафонов Е О.. Соколинский JL Е ТИП-технология программирования // Сборник научных трудов по технологии программирования. - Л.: ЛИЛА АН СССР. 1990.

ЛНПО '¿мвтгммм* Jan. З/i" Т»р. -fOO »u. /У, SO I960 г. Рот«лрш«т.