М.М. ГОРБУНОВ-ПОСАДОВ - Системное обеспечение пакетов прикладных программ (1184225), страница 29
Текст из файла (страница 29)
Следующее за скобкамимноготочие означает повторение их содержимого произвольное число раз.)Семантика фразы описывается путем задания расчетной цепочки, котораядолжна быть выполнена при ссылке на данную фразу. Раздел описаниясемантики определяет некоторый фрагмент этой цепочки и имеет формат:{ PROGRAMS / <логическое выражение> } ’ <список модулей> ’Список модулей представляет собой непустую последовательностьразделенных запятыми имен функциональных и сервисных модулей. Вслучае, когда раздел описания семантики начинается со служебного словаPROGRAMS, указанный в нем список модулей всегда включается в расчетную цепочку.
При задании в определении фразы нескольких возможныхвариантов расчетной цепочки используется второй формат раздела описаниясемантики. В этом случае указанный в разделе описания семантики списокмодулей включается в расчетную цепочку только тогда, когда результатвычисления логического выражения равен ИСТИНА.Описание уровня - это синтаксическая конструкция видаLEVEL <номер уровня>которая используется для указания уровня (в диапазоне от 1 до 4) фразы виерархии множества фраз, определяемых при разработке пакета.
Уровеньфразы существен только для определения уровня команды, который равенуровню самой первой входящей в нее фразы. При опущенном описанииуровня фразе присваивается так называемый пустой уровень.во-первых,определяетидентификатор,Описаниевеличины,посредством которого можно ссылаться на эту величину как в определениифразы, так и в операторах задания, содержащих определяемую фразу, и, вовторых, задает ряд атрибутов величины, обеспечивающих возможностьорганизации межоператорного интерфейса по данным и согласованиепредставления значений этой величины в задании пакету и вфункциональных модулях.Общая форма описания величины:[<тип>] [<масштаб>] [<адрес>]<имя> [<значение по умолчанию>]Тип определяет значения, которые может принимать описываемаявеличина, и форму их внутреннего представления. Если тип явно неопределен, то по умолчанию величине присваивается тип REAL (в смыслеФортрана).Масштабирование применяется для того, чтобы дать возможностьпользователю оперировать с величинами в удобных для него единицахизмерения, отличных от тех, на которые рассчитаны функциональныемодули.Все величины, которые могут использоваться в операторах языказаданий, размещаются в массиве связи.
Адрес указывает номер того элементамассива связи, в котором будут помещены значения величины (или первой еекомпоненты, если величина является одномерным массивом). Переменнаяфункционального модуля, соответствующая описываемой величине, должнабыть приписана с помощью средств базового языка программирования к тойже позиции непомеченного COMMON-блока, к которой приписан элементмассива связи с указанным в описании величины номером. Адрес можетбыть задан либо в виде целой константы, либо в виде арифметическоговыражения. Если адрес не задан, то считается, что величина приписана кэлементу, которыйследует непосредственно за элементом, указанным в предыдущем описаниивеличины.Имя величины - это слово, которое служит для идентификациивеличины в языке заданий и языке генерации.Значение по умолчанию - это стандартное значение величины, заносимоев соответствующий элемент массива связи, прежде чем в него будетзанесено начальное значение величины, т.е.
значение, которое может бытьприсвоено величине в разделе данных оператора, использующегоопределяемую фразу. Значение по умолчанию может быть задано либо вформе константы, либо в форме выражения.Операторы, задающие определения трех фраз (ДИСПЕРСИЯ,ЧАСТОТНАЯ и АМПЛИТУДНАЯ), которые были использованы в командахоператоров, п. 5.2.1, могут быть записаны следующим образом:ADD PHRASE: ДИСПЕРСИЯ, I(1) ОПЫТ, PROGRAMS 'MOD001';ADD PHRASE: ЧАСТОТНАЯ, Р+2 (2) БАЗА 30, ГЕНЕРАТОР,PROGRAMS 'MOD010,MOD011';ADD PHRASE: АМПЛИТУДНАЯ, (2) ШУМ=ШУМ*2, ФОН 10,ВОЗМУЩ, PRO 'MOD010,MOD030', (ВОЗМУЩ>ФОН*0.5) 'MOD020';Описание величины ОПЫТ включает указание типа (I -целый) и адреса(1).
Для величины БАЗА в определении фразы ЧАСТОТНАЯ указаномасштабирование значения в 100 раз (Р+2) и значение по умолчанию (30).Вычисление значения величины ШУМ задано в определении фразыАМПЛИТУДНАЯ арифметическим выражением. Заметим, что адреса длявеличин ГЕНЕРАТОР, ФОН и ВОЗМУЩ не указаны и определяются поумолчанию. Семантика команды ЧАСТОТНАЯ ДИСПЕРСИЯ состоит в том,что программа MOD010 осуществляет вывод данных, полученных в опыте сномером ОПЫТ, MOD011 вычисляет по ним среднюю частоту (см.определение ЧАСТОТНАЯ), а затем MOD001 рассчитывает ее дисперсию. Укоманды АМПЛИТУДНАЯ ДИСПЕРСИЯ семантика частично совпадает ссемантикой предыдущей команды (выполнение MOD001 и MOD010), но, вопервых, при слишком большом значении ВОЗМУЩ, которое проверяется влогическом выражении, задается сглаживание (модуль MOD020), и, вовторых, вместо частоты вычисляется амплитуда (MOD030).5.2.3.
Общая схема функционирования. Рассмотрим осно вные этапыфункционирования пакета, созданного с помощью PLAN'a (точнее говоря, спомощью его версии PLAN-БЭСМ-6), и работу основных программных компонентов анализатора наэтих этапах (рис.5.2).Запуск пакета осуществляется через мониторную систему Дубна,функционирующую в рамках операционной системы Диспак.
Поэтомунабор предложений запуска пакета состоит из паспорта ОС Диспак ипоследовательности управляющих предложений системы Дубна, в которуювходит специальное управляющее предложение, обеспечивающее вызовпакета. Следом за предложением вызова пакета должны располагатьсятексты операторов задания, которые последовательно вводятся иисполняются. Среди этих операторов могут быть и системные операторы,переключающие пакет на режим ввода с терминала. После такогопереключения операторы задания можно последовательно вводить стерминала. Предусмотрены также системные операторы, осуществляющиеобратное переключение.По умолчанию вывод результатов счета и системных диагностическихсообщений производится на устройство печати. Специальные операторыпозволяют переключить вывод данных и диагностики на терминал.Используемые при работе пакета модули базового системногообеспечения и модули функционального наполнения должны находиться вбиблиотеках, с которыми работает динамический загрузчик системы Дубна.Словарь фраз пакета располагается на магнитной ленте (диске), котораядолжна быть заказана в паспорте ОС Диспак.Перейдем к рассмотрению отдельных этапов, изображенных на рис.5.2.(A) Программа инициализации пакета, вызванная системой Дубна,загружает монитор и выделяет начальный участок памяти для массивасвязи.
Вся оставшаяся часть памяти (на рисунке она обозначена как областьпрограмм) в последующем используется для размещения функциональных исистемных модулей, реализующих операторы задания.(B) Монитор является единственным постоянно находящимся воперативной памяти программным компонентом системного наполненияпакета и занимает около 2К слов.
Одной из основных функций монитораявляется организация выполнения расчетной цепочки, реализующейоператор задания. При этом он использует стек управления, в которомразмещаются имена модулей, входящих в расчетную цепочку.В начале обработки очередного оператора интерпретатором языкапользователя в стек управления заносятся расчетные цепочки, выбираемыеиз определений фраз, входящих в данный оператор. Кроме того, именамодулей могутзаноситься в стек и в процессе исполнения расчетной цепочки, еслимежмодульный интерфейс по управлению осуществляется через сервисныемодули PLAN'а.Очередным подлежащим выполнению модулем всегда является модуль,имя которого указано в вершине стека управления. Загрузка модулей впамять и редактирование внешних связей осуществляется стандартнымзагрузчиком системы Дубна.
После загрузки модуля его имя удаляется изстека и инициируется его выполнение. В соответствии с регламентоммодуляризации каждый модуль завершает свою работу передачейуправления монитору, и это обеспечивает выполнение всех модулейрасчетной цепочки.(C) При пустом стеке управления (что имеет место сразу же послезагрузки монитора или после завершения обработки очередного оператора)монитор передает управление интерпретатору языка пользователя.Интерпретатор вводит очередной оператор задания с текущего устройстваввода, производит его проверку и интерпретацию. Для этого он находит всловаре фраз пакета определения всех фраз, использованных в командеоператора. Из определений фраз извлекаются содержащиеся в них заданиярасчетных цепочек и помещаются в стек управления.
По окончанииинтерпретации оператора управление возвращается монитору.(D) Процессор языка генерации работает при определении имодификации языка заданий пакета. В его функции входит проверкаправильности определения фразы, создание его внутреннего представленияи запись этого представления в словарь фраз пакета. Работа процессораязыка генерации инициируется в результате интерпретации определенийсистемных фраз ADD PHRASE, DELETE PHRASE и ALTER PHRASE,расчетные цепочки которых содержат ссылки на процессор языкагенерации.5.3. Разработка пакетов на основеанализатора PLAN-БЭСМ-бХотя анализатор PLAN-БЭСМ-б и является проблемно-независимойинструментально-базовой системой, тем не менее вряд ли имеет смыслговорить о единой процедуре разработки пакетов на его основе.Содержание и регламент такой процедуры в значительной степени зависяти от прикладной деятельности, которая будет обслуживатьсясоздаваемыми пакетами, и от чисто субъективных факторов, привносимыхразработчиками и пользователями пакетов.
Поэтому мырассмотрим здесь только основные принципы разработки пакетов,являющихся многоцелевыми системами обработки экспериментальныхданных. Эти принципы сжато отражают технологию использования PLANБЭСМ-б аналитиками и прикладными программистами ИПМ АН СССР,имеющими уже значительный опыт разработки многоцелевых систем спомощью штатных средств программного обеспечения машины БЭСМ-6[124].Разработка пакета на основе анализатора PLAN-БЭСМ-б проводится последующей схеме (см. рис.5.3).(A) В соответствии с постановкой задачи автоматизации обработкиданных физических экспериментов конкретного типа составляетсянеформальная модель процесса сплошной математической обработкиэкспериментальных данных, которая отражает логическую структуру,основные этапы (подзадачи) и объекты этого процесса.
Далее каждый изэтапов детализируется с целью выявления множества базовых макроопераций, соответствующих минимальным единицам действия, которыенеобходимо иметь возможность задавать на уровне языка пользователяпакета.(B) Создается терминологический словарь пакета: выделенным объектами макрооперациям процесса обработки экспериментальных данных ставятсяв соответствие величины и фразы языка пользователя, которыеидентифицируются имеющими содержательный смысл словами итерминами предметной области пакета.(C) Используя логическую схему процесса обработки, на множествевведенных фраз и величин задают правила составления пользовательскихкоманд, каждая из которых обычно соответствует одной из подзадачобработки экспериментальных данных.(D) Устанавливаются связи между величинами и командами (фразами)языка заданий пакета.