М.М. ГОРБУНОВ-ПОСАДОВ - Системное обеспечение пакетов прикладных программ (1184225), страница 37
Текст из файла (страница 37)
В приведенном примере диалога работа начинается стого, что из архива операционной системы считываются разделы,содержащие описание семантики модулей, правила вывода, представляющиезнания о геометрии, и тексты программ модулей. Затем задается оператор,описывающий ситуацию, чертеж которой изображен на рис. 6.4. На этомчертеже ставится задача: составитьпрограмму, вычисляющую площадь треугольника CDE при заданныхотрезках АВ, AF, FE и угле BAF, учитывая, что в качестве параметраоптимизации задано время. Далее выдается текст полученной программы,которая содержит обращения к модулям, начинающимся с операторов садресами: 1000, 1500, 1233, 1400 и 1600.
Модуль с адресом начала 1000вычисляет по двум сторонам и углу треугольника два других угла и третьюсторону. Модуль с адресом начала 1500 вычисляет угол, дополняющийданный до 180 градусов. Модуль с адресом начала 1233 осуществляетприсваиваниезначения одной величины другой в случае их равенства.
Модуль с адресомначала 1400 вычисляет разность двух отрезков. Модуль с адресом начала1600 по трем сторонам треугольника вычисляет его площадь. Такимобразом, эта программа реализует решение поставленной задачи, в соответствии с которым сначала вычисляются отрезок BF и угол AFB, далеепоследовательно вычисляются угол BFE, отрезок FC, отрезок ЕС, отрезок BEи угол BEF, отрезок ED, угол CED, отрезок DC и, наконец, площадьтреугольника CDE.Следующий оператор - это один из вычислительных операторов языкасистемы «ВОПРОС-ОТВЕТ-2», использование которого демонстрируетвозможность проведения промежуточных расчетов при работе срассматриваемым пакетом. Затем ранее сгенерированная программа дваждызапускается на счет с разными начальными значениями.Последующие операторы используются для получения сведений омодулях, входящих в функциональное наполнение пакета, и о предметнойобласти.
В частности, выдается текст программы одного из модулей изапрашивается информация о соответствии имен входов и выходов другогомодуля, использованных при описании его семантики, с программнымиидентификаторами. Далее распечатывается список углов, порожденных врезультате выполнения оператора описания ситуации. А затем выдаютсяответы на вопросы о свойствах некоторого треугольника и о том, какиеэлементы ситуации равны между собой по величине.Следующие два оператора задают постановку новой задачи в рамках тойже самой ситуации и запуск полученной программы на счет.Далее задается и выполняется программа на языке системы «ВОПРОСОТВЕТ-2», состоящая из 12 операторов, которая представляет сложныйзапрос к базе данных.
В результате выполнения этого запроса из базыданных извлекаются и распечатываются тексты комментариев, описывающих модули, вызываемые в сгенерированной программе с адресомначала 500. Эти комментарии выдаются в том порядке, в которомвыполняются описываемые ими модули, и, таким образом, поясняетсянайденный системой способ решения поставленной задачи.Затем база данных обновляется, т.е.
из нее выбрасываются сведения очертеже, представленном на рис.6.4, и выполняется оператор, задающийописание новой простой ситуации, чертеж которой представлен на рис.6.5.В новой ситуации ставится и просчитывается очередная задача. Припопытке решить следующую задачу обнаружива-ется, что она не имеет решения. И, наконец, при выполнении последнего вданном примере оператора устанавливается, что искомые величины ужеопределены при описании ситуации.6.3.6. Связь с экспертными системами. В заключение, необходимоотметить, что методический пакет МП явился одной из первых по времениразработок, получивших позднее название гибридных экспертных систем.От классических экспертных систем гибридные отличаются тем, чтоиспользуют по крайней мере два принципиально разных способапредставления знаний.
Как правило, это продукции или фреймы ипроцедуры. Именно такой подход используется в пакете МП, где знания опредметной области описываются двумя способами: в виде собственнорасчетных модулей (процедур), а также их семантики, заданной фактами иправилами вывода (продукциями). Подобный подход позволяетиспользовать расчетные и моделирующие программы в экспертныхсистемах или, иначе, применять декларативные знания в пакетахприкладных программ.
Это дает возможность существенно повыситьуровень компетентности и расширить сферу применения таких гибридныхпрограммных систем.В качестве примера сошлемся на проект HAL-1986 [140]. Эта гибриднаясистема предназначена для диагностики аварий на АЭС и анализируетпоказания примерно 1000 датчиков.
Экспертная часть системы используетпродукционную модель и реализована на языке Лисп на ЭВМ PDP-11.Экспертная часть будет соединена с системой численного моделирования,причем расчеты на модели будут проходить в десять раз быстрее реальныхпроцессов на АЭС. Для достижения такой производительности дляобработки процедурных знаний будут применены четыре процессора суперЭВМ Cray X-MP/24, каждый производительностью 500 миллионов операцийс плавающей запятой в секунду.Тенденция разделения аппаратных средств поддержки знаний разноготипа, как в проекте HAL-1986, находит свое развитие и в созданииэкспериментальных ПЭВМ с двумя процессорами, классическим «фоннеймановским» для процедурных знаний и специализированным (например,Лисп- или Пролог-машиной) для обработки продукций или фреймов.Наличие таких аппаратных средств позволяет надеяться на дальнейшееразвитие гибридных систем, подобных пакету МП.ЗАКЛЮЧЕНИЕАвторы далеки от мысли о том, что рассмотренными пакетамиисчерпывается все многообразие языковых и системных решений в областиприкладных программных разработок.
Несомненно, однако, что созданиеновых прикладных систем следует начинать со знакомства ссуществующими аналогами, избегая тем самым непроизводительных затрат,связанных с «изобретением велосипеда». Помочь такому знакомству и былапризвана настоящая книга.Для продолжения знакомства с отечественными разработками по даннойтематике можно рекомендовать ряд сборников «Пакеты прикладныхпрограмм», вышедших в издательстве «Наука» в серии «Алгоритмы иалгоритмические языки» (главный редактор - академик А.
А. Самарский) и вСибирском отделении издательства «Наука» (редакторы - академик В. М.Матросов и О.Г.Диваков).СЛОВАРЬ ТЕРМИНОВАктивная дисциплина - способ формирования расчетной программы,предусматривающий модификацию существующих или же создание новыхмодулей функционального наполнения пакета.Базовый язык - язык программирования, на котором пишутся модулифункционального наполнения.Безболезненное развитие - организация разработки функциональногонаполнения, позволяющая избежать изменений существующих программпри подключении к пакету новых модулей.Вычислительный эксперимент - метод изучения устройств илифизических процессов посредством построения их математической модели ипоследующего численного исследования этой модели, позволяющего«проиграть» их поведение в различных условиях.Дисциплина работы - система правил, соглашений, технологическихподходов и приемов, принятых при разработке, отладке и эксплуатациипрограмм.Инструментальный язык - язык, на котором пишутся программысистемного наполнения.Информационное обслуживание - удовлетворение информационныхзапросов, поступающих от пользователей или от программных компонентовпакета.Каркасное конструирование - способ формирования расчетныхпрограмм, при котором все многообразие их конфигураций достигается засчет заполнения гнезд фиксированного каркаса различными модулямифункционального наполнения.Конечный пользователь - эксплуатирующий пакет специалист впредметной области, не обязательно имеющий высокий уровень подготовкив области вычислительной техники и программирования.Межмодульный интерфейс - организация информационных иуправляющих связей между модулями.Модуль - конструктивный элемент, который может использоваться наразличных стадиях функционирования пакета.Модуляризация - разбиение функционального наполнения пакета намодули.Пакет прикладных программ (пакет) - комплекс взаимосвязанныхприкладных программ и средств системного обеспечения (программных иязыковых), предназначенный для автоматизации решения определенногокласса задач.Пассивная дисциплина - способ формирования расчетной программы,исключающий модификацию пользователем модулей функциональногонаполнения пакета.Планирование вычислений - определение состава и порядка выполнениявходящих в расчетную программу модулей функционального наполненияпри цепочечном конструировании программ.Покрытие (охват) предметной области - создание набора модулейфункционального наполнения, позволяющего для любой задачи из даннойобласти построить решающую ее программу, целиком сконструированнуюиз некоторого подмножества этого набора модулей.Предметная область - совокупность решаемых прикладных задач ииспользуемых при этом численных методов.Прикладная деятельность - круг работ, связанных с созданиемалгоритмов и программ решения задач, а также с подготовкой ипроведением расчетов.Регламент модуляризации - методы разбиения программного материалана модули, а также правила оформления модулей.Системное наполнение - совокупность программ, поддерживающихпринятую в данной прикладной деятельности дисциплину работы иобеспечивающих тем самым взаимодействие пользователя с пакетом.Функциональное наполнение - совокупность модулей пакета,отражающих специфику обслуживаемой им предметной области ииспользуемых как компоненты формируемых расчетных программ.Цепочечное конструирование - формирование расчетной программы ввиде цепочки выполняемых друг за другом модулей функциональногонаполнения.Язык заданий - средство общения пользователя с пакетом, позволяющееформировать запросы на различные виды работ, выполняемых в рамкахприкладной деятельности.Язык запросов - ориентированный на конечного пользователя языкзаданий пакета, позволяющий формировать запросы, указывающие, «чтонеобходимо получить» без явного указания того, «как это получить».Язык сборки - язык заданий пакета, обеспечивающий непосредственноеуправление процессами конструирования и исполнения расчетнойпрограммы, а также, возможно, предоставляющий средства развития илимодификации функционального наполнения.СПИСОК ЛИТЕРАТУРЫ1.
Самарский А. А. Вычислительный эксперимент и требования кпрограммным средствам // Промышленная технология создания иприменения программных средств в организационном управлении иНИОКР:Материалы Всесоюзного семинара.- Свердловск, 1984.2. Самарский А. А. Пакеты прикладных программ как средствообеспечения сложных физических расчетов // Перспективы системногои теоретического программирования: Труды Всесоюзного симпозиума.-Новосибирск: ВЦ СО АН СССР, 1978.3. Карпов В.Я., Корягин Д. А., Самарский А. А.